我正在使用由makecert生成的既有私钥又有公钥的证书。Java端使用此公钥加密数据,而.NET则将其解密回来。
我正在尝试解密Java加密的64位编码字符串并得到了坏数据。
为了查看在.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);
即使在这里我也遇到了错误。我错过了什么吗?
证书看起来具有公钥和私钥,是有效的。