我正在使用由具有私鑰和公鑰的makecert生成的證書。 java端使用這個公鑰來加密數據,.net解密它。rsacryptoserviceprovider使用x509證書c#
我想解密Java的加密的64位編碼的字符串,並獲取不良的數據。
要查看是否所有的.net結束,我首先嚐試使用公鑰進行加密,然後使用相同的證書與私人解密。我的代碼看起來像這樣。
X509Certificate2 cert = GetCert(key, StoreName.My, StoreLocation.LocalMachine);
RSACryptoServiceProvider provider = (RSACryptoServiceProvider)cert.PrivateKey;
RSACryptoServiceProvider publicprovider = (RSACryptoServiceProvider)cert.PublicKey.Key;
if (cert.HasPrivateKey)
MessageBox.Show("Got private key");
byte[] encrypted = publicprovider.Encrypt(Encoding.UTF8.GetBytes(text), false);
byte[] decryptedBytes = provider.Decrypt(encrypted, false);
即使在這裏,我得到的錯誤。我失去了什麼?
證書對於公鑰和私鑰都有效。
什麼錯誤?並在什麼線路上? – 2009-10-26 09:29:30
異常:錯誤的數據..沒有進一步的內部異常 當byte [] decryptedBytes = provider.Decrypt(encrypted,false);當證書返回時, 被稱爲 – bkhanal 2009-10-26 14:28:01