0

自分の PC でアプリケーションを実行しようとしましたが、この問題が発生し続けます。一部のライブラリが不足している可能性はありますか?

fabsam.crypto.CryptoException: java.security.InvalidKeyException: No installed provider supports this key: javax.crypto.spec.SecretKeySpec
    at fabsam.crypto.RC4Decoder.decode(RC4Decoder.java:37) ~[bin/:na]
    ... (skipped my projects stack trace)
    at java.lang.Thread.run(Thread.java:662) [na:1.6.0_25]
Caused by: java.security.InvalidKeyException: No installed provider supports this key: javax.crypto.spec.SecretKeySpec
    at javax.crypto.Cipher.a(DashoA13*..) ~[na:1.6]
    at javax.crypto.Cipher.init(DashoA13*..) ~[na:1.6]
    at javax.crypto.Cipher.init(DashoA13*..) ~[na:1.6]
    at fabsam.crypto.RC4Decoder.decode(RC4Decoder.java:27) ~[bin/:na]
    ... 5 common frames omitted

Caused by: java.security.InvalidKeyException: No installed provider supports this key: javax.crypto.spec.SecretKeySpec
    at javax.crypto.Cipher.a(DashoA13*..) ~[na:1.6]
    at javax.crypto.Cipher.init(DashoA13*..) ~[na:1.6]
    at javax.crypto.Cipher.init(DashoA13*..) ~[na:1.6]
    at fabsam.crypto.RC4Decoder.decode(RC4Decoder.java:25) ~[fabsam-08.05.11.jar:na]
    ... 5 common frames omitted

コード:

cipher.init(Cipher.DECRYPT_MODE,
                    new SecretKeySpec(key.getBytes(DEFAULT_CHARSET), ALGORITHM));

ALGORITHM 変数でRC4notを使用しているためでしょうか? ARCFOURARCFOUR を試すと、次のようになります。

fabsam.crypto.CryptoException: java.security.InvalidKeyException: Illegal key size or default parameters
    at fabsam.crypto.RC4Decoder.decode(RC4Decoder.java:37) ~[bin/:na]
    ... (skipped my projects stack trace)
    at java.lang.Thread.run(Thread.java:662) [na:1.6.0_25]
Caused by: java.security.InvalidKeyException: Illegal key size or default parameters
    at javax.crypto.Cipher.a(DashoA13*..) ~[na:1.6]
    at javax.crypto.Cipher.a(DashoA13*..) ~[na:1.6]
    at javax.crypto.Cipher.a(DashoA13*..) ~[na:1.6]
    at javax.crypto.Cipher.init(DashoA13*..) ~[na:1.6]
    at javax.crypto.Cipher.init(DashoA13*..) ~[na:1.6]
    at fabsam.crypto.RC4Decoder.decode(RC4Decoder.java:27) ~[bin/:na]
    ... 5 common frames omitted

さて、問題はコードではありません。サーバーでは、これはエラーなしで正常に実行されます。ただし、私のPCでは、そのInvalidKeyException例外がスローされます。それで、それはjvm関連のものです..何かアイデアはありますか?

編集: 両方の例外が発生していることがわかりました。一度ではありませんが、最初は不正なキー サイズで、次にプロバイダーがインストールされていません。プロジェクトを実行するときに、アルゴリズムを「ARCFOUR」に設定しました。

4

2 に答える 2

0

多くの苦労と検索とすべての後、私は正しい答えを得ました。ここで私の質問を確認してください: Java Security: Illegal key size or default parameters? この問題が発生している場合!

于 2011-06-26T11:33:50.590 に答える
0

@DaveHowes が示唆しているように、最初のスタックトレースの場合はサードパーティの JCE プロバイダーを使用している可能性が高く、2 番目のスタックトレースの場合はキーサイズが無効です。

Sun には、パラメータがここに記載されている複数のプロバイダが含まれています。SunJCE プロバイダーのドキュメントによると、アルゴリズムの名前は「RC4」ではなく「ARCFOUR」であることに注意してください。私の推測では、「RC4」を指定すると、「fabsam」プロバイダーの実装が得られたということです。'ARCFOUR' を指定すると、Sun の実装が得られます。「ARCFOUR」のキーサイズは 40 ビット以上 1024 ビット以下 (5 バイト以上 128 バイト以下) でなければならないというキーサイズの制限にも注意してください。プログラム内の String オブジェクトkeyが小さすぎるか大きすぎる可能性があります。これを確認してください。

于 2011-05-09T11:09:24.477 に答える