使用c#进行Java RSA解密和加密

时间:2012-04-25 14:04:49

标签: c# java encryption rsa

我加密邮件然后解密它。这是要点:https://gist.github.com/2489899。 我必须将此密钥存储在xml方案中,因为该消息也应该能够在c#中解密。 (这只是我的数据库程序的“摘要”等)。但我总是得到例外:

javax.crypto.BadPaddingException: Data must start with zero
at sun.security.rsa.RSAPadding.unpadV15(RSAPadding.java:308)
at sun.security.rsa.RSAPadding.unpad(RSAPadding.java:255)
at com.sun.crypto.provider.RSACipher.a(DashoA13*..)
at com.sun.crypto.provider.RSACipher.engineDoFinal(DashoA13*..)
at javax.crypto.Cipher.doFinal(DashoA13*..)
at Main.decrypt(Main.java:50)
at Main.main(Main.java:24)

2 个答案:

答案 0 :(得分:2)

读取sun.security.rsa.RSAPaddingjavax.crypto.BadPaddingException的异常和JavaDoc,看起来您的Java代码需要PKCS#1 v1.5填充,但您的C代码不使用相同的填充。您需要确保双方使用的填充算法相同。

答案 1 :(得分:1)

很简单,您的RSAPrivateCrtKeySpec构造函数调用使用了不正确的参数顺序。