Ich hatte früher eine Frage dazu gestellt, aber sie wurde nicht richtig beantwortet und führte nirgendwo hin.
Daher habe ich einige Details zu dem Problem geklärt und würde gerne Ihre Ideen dazu hören, wie ich das beheben könnte oder was ich versuchen sollte.
Ich habe Java 1.6.0.12 auf meinem Linux-Server installiert und der folgende Code läuft einfach perfekt.
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);
}
Heute habe ich Java 1.6.0.26 auf meinem Serverbenutzer installiert und beim Versuch, meine Anwendung auszuführen, wird die folgende Ausnahme angezeigt . Ich würde vermuten, dass es etwas mit der Java-Installationskonfiguration zu tun hat, da es in der ersten Version funktioniert, in der späteren Version jedoch nicht.
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
Zeile 25 lautet:
c.init(Cipher.DECRYPT_MODE, secretKeySpec);
Hinweise:
* java.security auf Server 1.6.0.12 java Matches fast vollständig mit der 1.6.0.26 java.security Datei. Im ersten gibt es keine zusätzlichen Anbieter.
* Die vorherige Frage ist hier .
Caused by: java.security.InvalidKeyException: Illegal key size