小编典典

如何从.NET读取PEM RSA私钥

c#

我有一个格式的RSA私钥PEM,是否有一种直接的方法可以从.NET读取私钥,并实例化一个,RSACryptoServiceProvider以解密使用相应公钥加密的数据?


阅读 700

收藏
2020-05-19

共1个答案

小编典典

我解决了,谢谢。如果有人感兴趣,bouncycastle会骗人的,只是由于我缺乏知识和文档,我花了一些时间。这是代码:

var bytesToDecrypt = Convert.FromBase64String("la0Cz.....D43g=="); // string to decrypt, base64 encoded

AsymmetricCipherKeyPair keyPair;

using (var reader = File.OpenText(@"c:\myprivatekey.pem")) // file containing RSA PKCS1 private key
    keyPair = (AsymmetricCipherKeyPair) new PemReader(reader).ReadObject();

var decryptEngine = new Pkcs1Encoding(new RsaEngine());
decryptEngine.Init(false, keyPair.Private);

var decrypted = Encoding.UTF8.GetString(decryptEngine.ProcessBlock(bytesToDecrypt, 0, bytesToDecrypt.Length));
2020-05-19