3

メッセージを暗号化してから復号化します。要点は次のとおりです: https://gist.github.com/2489899。メッセージは c# でも復号化できるはずなので、このキーを xml スキームに格納する必要があります。(これは、データベースなどを使用した私のプログラムの「要約」にすぎません)。しかし、私は常に例外を受け取ります:

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)
4

2 に答える 2

2

sun.security.rsa.RSAPadding およびjavax.crypto.BadPaddingExceptionの例外と JavaDoc を読むと、Java コードは PKCS#1 v1.5 パディングを想定しているように見えますが、C コードはこれと同じパディングを使用していません。両側で使用されるパディング アルゴリズムが同じであることを確認する必要があります。

于 2012-04-25T14:22:18.107 に答える
1

簡単です。RSAPrivateCrtKeySpec コンストラクターの呼び出しで、パラメーターの順序が正しくありません。

于 2012-04-27T23:04:57.983 に答える