我正在使用由具有私钥和公钥的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