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