私は以前これについて質問しましたが、それは正しく答えられず、どこにも導きませんでした。
だから私は問題のいくつかの詳細を明らかにしました、そして私はこれをどのように修正できるか、私が何をすべきかについてあなたの考えを本当に聞きたいです。
私が持っているのJava 1.6.0.12はちょうど完全に私のLinuxサーバと実行以下のコードにインストールされています。
String key = "av45k1pfb024xa3bl359vsb4esortvks74sksr5oy4s5serondry84jsrryuhsr5ys49y5seri5shrdliheuirdygliurguiy5ru";
try {
Cipher c = Cipher.getInstance("ARCFOUR");
SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes("UTF-8"), "ARCFOUR");
c.init(Cipher.DECRYPT_MODE, secretKeySpec);
return new String(c.doFinal(Hex.decodeHex(data.toCharArray())), "UTF-8");
} catch (InvalidKeyException e) {
throw new CryptoException(e);
}
今日、サーバーユーザーにJava 1.6.0.26をインストールしました。アプリケーションを実行しようとすると、次の例外が発生します。私の推測では、Javaのインストール構成と関係があるため、最初の構成では機能しますが、後のバージョンでは機能しません。
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 my.package.Something.decode(RC4Decoder.java:25) ~[my.package.jar:na]
... 5 common frames omitted
25行目:
c.init(Cipher.DECRYPT_MODE, secretKeySpec);
注:
*サーバーの1.6.0.12 javaディレクトリのjava.security は、1.6.0.26 java.securityファイルとほぼ完全に一致します。最初のプロバイダーには追加のプロバイダーはありません。
*前の質問はこちらです。
Caused by: java.security.InvalidKeyException: Illegal key size
ます