Одной из распространенных проблем, с которой могут столкнуться начинающие разработчики на Java, является ошибка «Illegal key size or default parameters». Эта ошибка обычно возникает при попытке инициализировать экземпляр класса javax.crypto.Cipher с ключом, размер которого превышает допустимые пределы.
String key = "слишком длинный ключ";
try {
Cipher c = Cipher.getInstance("ARCFOUR");
SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes("UTF-8"), "ARCFOUR");
c.init(Cipher.DECRYPT_MODE, secretKeySpec);
//...
} catch (InvalidKeyException e) {
// обработка исключения
}
В приведенном примере ключ имеет слишком большую длину, что вызывает исключение InvalidKeyException при попытке инициализации экземпляра класса Cipher.
Эта проблема связана с ограничениями на использование криптографии в Java. Версии Java до 1.8 поставлялись с ограниченной политикой криптографии, которая не позволяла использовать ключи размером больше 128 бит. Чтобы обойти это ограничение, необходимо установить более свежую версию Java или загрузить и установить файлы политики неограниченной силы шифрования JCE (Java Cryptography Extension).
Для установки файлов JCE следуйте этим шагам:
- Загрузите файлы JCE для вашей версии Java. Они доступны на официальном сайте Oracle.
- Распакуйте загруженный архив. Он должен содержать два файла:
local_policy.jarиUS_export_policy.jar. - Замените оригинальные файлы
local_policy.jarиUS_export_policy.jarв каталоге${java.home}/lib/security(для Java 8 и ниже) или в каталоге${java.home}/jre/lib/security(для Java 9 и выше) на файлы из загруженного архива.
После выполнения этих шагов ошибка «Illegal key size or default parameters» должна исчезнуть.
Перейти в телеграм, чтобы получить результаты теста



Забрать
Добавить комментарий