13
我试图使用非对称加密来加密然后解密文件。我已经使用makecert创建了一个测试证书并将其安装到我的个人localmachine商店中。将来我将不得不在多台服务器上安装此证书,这就是为什么我使用“-pe”标志创建它的原因,即使用可导出的私钥。证书已成功创建并安装,我在mmc中看到“您有与此证书对应的私钥”注释。带有可导出私钥的证书的“Bad key”例外
现在我试图使用.NET 3.5中的RSACryptoServiceProvider加密数据。它成功了。但是当我试图解密它时,我得到“坏钥匙”异常。
如果我创建没有“-pe”选项的证书,相同的代码对解密很有效。 下面是代码:
RSA rsaKey = (RSA)myCertificate.PrivateKey;
RSACryptoServiceProvider rsaCsp = (RSACryptoServiceProvider)rsaKey;
byte[] plainText = rsaCsp.Decrypt(encryptedText, true);
而且我已经试过另一种方法,使用System.Security.Cryptography.Pkcs命名空间:
EnvelopedCms envelope = new EnvelopedCms();
envelope.Decode(encryptedText);
envelope.Decrypt();
byte[] plainText = envelope.ContentInfo.Content;
的结果是一样的... 谁能帮助?
谢谢先生,正是我失踪 – KodeKreachor 2016-03-07 18:17:49
这节省了一天..感谢您的答案和解释。 – granadaCoder 2016-10-20 23:44:52