【发布时间】:2010-12-10 00:57:52
【问题描述】:
我正在使用由 makecert 生成的证书,该证书具有私钥和公钥。 Java 端使用此公钥加密数据,.net 将其解密。
我正在尝试解密 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);
即使在这里我也遇到了错误。我错过了什么吗?
证书看起来对公钥和私钥都有效。
【问题讨论】:
-
什么错误?在哪一行?
-
异常:错误数据.. 当 byte[] decryptedBytes = provider.Decrypt(encrypted, false); 时没有进一步的内部异常;被称为
标签: .net security cryptography encryption-asymmetric