bkh*_*nal 7 .net security cryptography encryption-asymmetric
我正在使用由makecert生成的证书,该证书包含私钥和公钥.java端使用此公钥来加密数据,.net将其解密.
我试图解密Java的加密64位编码字符串并获取错误的数据.
为了看看是否一切都很好.在线端,我试图用公钥加密,然后使用相同的证书与私有解密.我的代码看起来像这样.
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);
Run Code Online (Sandbox Code Playgroud)
即便在这里我也收到了错误.我错过了什么吗?
证书看起来对公钥和私钥都有效.
我遇到了与自签名证书相同的问题,问题是我使用交换机生成证书-sky signature而不是-sky exchange(您使用签名进行签名和交换加密/解密)
这是我对makecert有效的完整命令:
makecert -r -pe -a sha1 -n "CN=MyName" -ss my -sr CurrentUser -sky exchange
Run Code Online (Sandbox Code Playgroud)