使用 RSA/ECB/PKCS1Padding 在 Java 中加密,无法在 .Net 中解密
我有一个使用 Java 中的一些加密类(RSA/ECB/PKCS1Padding)和我们提前交换的公钥进行加密的字符串。
我想使用我们的私钥解密该字符串,这是我拥有的代码。
X509Certificate2 cert = new X509Certificate2("c:\\test.pfx", "test");
string s = "very long encrypted data";
RSACryptoServiceProvider privateKeyProvider = (RSACryptoServiceProvider)cert.PrivateKey;
string decryptedTest = System.Text.Encoding.UTF8.GetString(privateKeyProvider.Decrypt(Convert.FromBase64String(s), true));
我收到带有错误消息的异常。
“System.Security.Cryptography.CryptographicException:解码 OAEP 填充时发生错误”
我做错了什么?
I have a string that's encrypted using some crypto classes in Java (RSA/ECB/PKCS1Padding) and a public key we exchanged in advance.
I want to decrypt that string using our private key and this is the code I have.
X509Certificate2 cert = new X509Certificate2("c:\\test.pfx", "test");
string s = "very long encrypted data";
RSACryptoServiceProvider privateKeyProvider = (RSACryptoServiceProvider)cert.PrivateKey;
string decryptedTest = System.Text.Encoding.UTF8.GetString(privateKeyProvider.Decrypt(Convert.FromBase64String(s), true));
I get an exception with error message.
"System.Security.Cryptography.CryptographicException: Error occurred while decoding OAEP padding"
What is that I'm doing wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
调用
Decrypt
并将第二个参数设置为false
。MSDN
Call
Decrypt
with the second parameter set tofalse
.MSDN
这是工作代码。
This is the working code.