gpt4 book ai didi

c# - 将私钥导出为字节数组的最佳方式

转载 作者:行者123 更新时间:2023-11-30 16:27:29 25 4
gpt4 key购买 nike

我编写的应用程序必须从用户那里获取私钥,然后将其作为 base64 发送到另一个应用程序,我想允许用户插入带有私钥的 X509Certificate2。现在我的大问题是如何将私钥从 AsimetricAlgorithm 对象转换为包含所有私钥的 bate 数组?我看到我可以使用 openSSl - 将所有证书转换为 pem 文件,然后转换为 RSA 文件 - 并读取私钥,但我不想使用它,因为:我不想在文件上使用,3P 库,它不是安全等等..有谁知道另一种方法吗?

提前致谢!

最佳答案

您从 X509Certificate2PrivateKey 属性中获得的 AsymmetricAlgorithm 对象实际上是从非对称算法,例如RSACryptoServiceProviderDSACryptoServiceProvider等...

您需要确定您正在处理的私钥类型,并适本地转换它。转换后,您应该能够调用 ExportCspBlob(true) 来获取私钥数据。

示例(假设一个 RSA key ):

public string GetRSAPrivateKeyBase64(X509Certificate2 certificate)
{
var privateKey = certificate.PrivateKey as RSACryptoServiceProvider;
if (privateKey == null) throw new Exception("Not an RSA private key");
// Export the CSP blob, including private key parameters
var cspBlob = privateKey.ExportCspBlob(true);
return Convert.ToBase64String(cspBlob);
}

关于c# - 将私钥导出为字节数组的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7874405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com