Progress-servis55.ru

Новости из мира ПК
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Java security invalidkeyexception

java.security.Inval >

Я получил следующую ошибку и немного застрял: Исключение в потоке «main»

Я застрял, потому что все ответы, которые я нашел, говорят о расширении криптографии Java (JCE) , которое обычно включается в android SDK. Так что я думаю, что моя проблема не в этом.

Должно быть, я что-то забыл, но не могу найти, что именно. Возможно, мой код ошибочен (это мой первый подход к криптографии в Java, я не эксперт, и следующий код-это в основном некоторые копии учебников).

Я использую этот код для шифрования и расшифровки строки :

И следующий ключ :

Спасибо вам, ребята.

5 Ответов

private String cryptKey = «qkjll5@2md3gs5Q@FDFqf»;

По умолчанию Java поддерживает только 128-битное шифрование

Таким образом, cryptKey не может превышать 16 символов.

Default JDK поддерживает шифрование только через 128-битные ключи из-за американских ограничений. Поэтому для поддержки шифрования с 256-битным ключом мы должны заменить local_policy.jar и US_export_policy.jars в папке $JAVA_HOME/java-8-oracle/jre/lib/security, иначе это даст java.security.InvalidKeyException: нелегальный размер ключа или значение по умолчанию

Как с банками, так и с детальной концепцией можно ознакомиться по ссылке:

Спасибо, Сулабх Джейн

Там были обновления с Java 8/9

  1. Файлы политики юрисдикции неограниченной силы включены в Java 9 и используются по умолчанию
  2. Начиная с Java 8 Update 161, Java 8 по умолчанию использует политику юрисдикции неограниченной силы.

Начиная с Java 8 Update 151 , политика юрисдикции неограниченной силы включена в Java 8, но не используется по умолчанию. Чтобы включить его, вам нужно отредактировать файл java.security в /jre/lib/security (для JDK) или /lib/security (для JRE). Раскомментируйте (или включите) строку

Убедитесь, что вы редактируете файл с помощью редактора, запущенного от имени администратора. Изменение политики вступает в силу только после перезапуска JVM

Перед обновлением Java 8 151 вам необходимо загрузить файлы политики юрисдикции JCE Unlimited Strength и заменить их.

PS: выше ссылка идет на мой личный блог, который имеет дополнительную информацию.

Это решение только для кода. Нет необходимости загружать или возиться с конфигурационными файлами.

Это решение, основанное на отражении, протестировано на java 8

Вызовите этот метод один раз, в начале работы программы или во время запуска приложения.

Вы можете удалить максимальное ограничение ключа, заменив существующие банки JCE на банки политики неограниченной прочности.

( /usr/libexec/java_home-v, чтобы найти Java_HOME в Mac)

Скопируйте local_policy.jar и US_export_policy.jar , извлеченные из файла zip выше, в файл $JAVA_HOME/jre/lib/security

Похожие вопросы:

Привет, когда я пытаюсь добавить алгоритм шифрования защиты Sym в конфигурации spring ws, он дает следующее исключение : Caused by: org.apache.ws.security.WSSecurityException: Cannot encrypt data;.

Моя программа-это симметричный криптер, который использует длину ключа 256. Когда я использую его на компьютере, на котором не установлен JCE (без длины ключа), он падает со следующей ошибкой.

Когда длина ключа составляет 128 бит, все работает. Но я получил следующее исключение, когда я использую ключ длиной 192 или 256 бит. java.security.InvalidKeyException: Illegal key size or default.

Это моя основная программа симметричного шифрования. Как я учусь сейчас, я хочу знать, как это работает. И у меня есть следующее исключение: Исключение в потоке main.

Читать еще:  Как восстановить флешку которую не видит компьютер
Ссылка на основную публикацию
Adblock
detector