为了账号安全,请及时绑定邮箱和手机立即绑定

如何从.NET读取PEM RSA私钥

如何从.NET读取PEM RSA私钥

江户川乱折腾 2019-09-20 16:11:33
我有格式的RSA私钥PEM,是否有直接的方式从.NET读取并实例化RSACryptoServiceProvider解密用相应的公钥加密的数据?
查看完整描述

3 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

关于轻松导入RSA私钥,不使用BouncyCastle等第三方代码,我认为答案是“不,不是单独使用私钥的PEM”。


但是,正如Simone所提到的,您可以简单地将私钥(* .key)的PEM和使用该密钥(* .crt)的证书文件组合成* .pfx文件,然后可以轻松导入该文件。


要从命令行生成PFX文件:


openssl pkcs12 -in a.crt -inkey a.key -export -out a.pfx

然后正常使用.NET证书类,例如:


using System.Security.Cryptography.X509Certificates;


X509Certificate2 combinedCertificate = new X509Certificate2(@"C:\path\to\file.pfx");

现在,您可以按照MSDN中的示例通过RSACryptoServiceProvider进行加密和解密:


我遗漏了解密,你需要使用PFX密码和Exportable标志导入。(参见:BouncyCastle RSAPrivateKey到.NET RSAPrivateKey)


X509KeyStorageFlags flags = X509KeyStorageFlags.Exportable;

X509Certificate2 cert = new X509Certificate2("my.pfx", "somepass", flags);


RSACryptoServiceProvider rsa = (RSACryptoServiceProvider)cert.PrivateKey;

RSAParameters rsaParam = rsa.ExportParameters(true); 


查看完整回答
反对 回复 2019-09-20
  • 3 回答
  • 0 关注
  • 1337 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信