java aes 256 java.безопасность.InvalidKeyException: недопустимый размер ключа после установки политики [дубликат]
На этот вопрос уже есть ответ здесь:
У меня есть проблема с шифрованием байтов с ключом AES 256. Я уже установил этот полис. Вот что я сделал:
- загрузите файл: http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html Я переместил файлы local_policy и US_export_policy в каталог / Library / Java/JavaVirtualMachines / jdk1.7.0_40.jdk / Contents / Home/jre/lib / security
- я перезапускаю mac
Но все равно я получаю сообщение об ошибке со следующим кодом:
KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
keyGenerator.init(256);
SecretKey secretKey = keyGenerator.generateKey();
Cipher decryption = Cipher.getInstance("AES/CBC/PKCS5PADDING");
decryption.init(Cipher.DECRYPT_MODE, secretKey,
new IvParameterSpec(secretKey.getEncoded())); // <-- Illegal key size
Моя версия Java:
java version "1.7.0_40"
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode)
Что я должен сделать, чтобы использовать шифрование 256 AES?
3 ответа:
Файлы политики должны решить эту проблему. Проверьте переменную среды path, чтобы убедиться, что вы используете ту же jre, которая содержит файлы политик.
Важно: вы должны знать, что вы JRE местоположение. например: в моем вычислении есть
C:\Java\jre7\lib\security
иC:\Java\jdk1.7.0_02\jre\lib\security
, но eclipse показывает, что jre-этоC:\Java\jre7\lib\security
, поэтому вы должны скопировать два файла сюда.
Что я сделал загруженный файл политики из этого расположения http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html вставьте в место
jre/lib/security/
и это работает....