Я задавал вопрос об этом ранее, но он не получил правильного ответа и ни к чему не привел.
Итак, я прояснил несколько деталей по проблеме, и мне бы очень хотелось услышать ваши идеи о том, как я могу это исправить или что я должен попробовать.
У меня установлена 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);
Примечания:
* java.security в java-каталоге сервера 1.6.0.12 почти полностью соответствует файлу java.security 1.6.0.26. В первом нет дополнительных провайдеров.
* Предыдущий вопрос здесь .
Caused by: java.security.InvalidKeyException: Illegal key size
(без «или параметров по умолчанию») в Java 8