Я задавал вопрос по этому поводу ранее, но он не получил правильного ответа и ни к чему не привел.
Итак, я прояснил несколько деталей по проблеме, и мне очень хотелось бы услышать ваши идеи покак я могу это исправить или что я должен попробовать.
У меня 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 is: c.init(Cipher.DECRYPT_MODE, secretKeySpec);
Примечания:
* java.security на сервере 1.6.0.12 java-каталог почти полностью совпадает с 1.6.0.26 файл java.security.В первом списке нет дополнительных провайдеров.
* Предыдущий вопрос здесь .