Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
17 Фев 2023
2 мин
216

Решение проблемы Java Security: Illegal key size or default parameters

Одной из распространенных проблем, с которой могут столкнуться начинающие разработчики на Java, является ошибка «Illegal key size or default parameters». Эта ошибка

Одной из распространенных проблем, с которой могут столкнуться начинающие разработчики на 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 следуйте этим шагам:

  1. Загрузите файлы JCE для вашей версии Java. Они доступны на официальном сайте Oracle.
  2. Распакуйте загруженный архив. Он должен содержать два файла: local_policy.jar и US_export_policy.jar.
  3. Замените оригинальные файлы 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» должна исчезнуть.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

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