2016-12-28 25 views
0

Я хотел бы использовать имя пользователя Windows как ключ для шифрования и расшифровки текста.JAVA - Шифровать текст с именем пользователя Windows в AES 128

Но когда я пытаюсь, ключ слишком короток: Invalid AES длина ключа: 7 байт

я должен закодировать ключ перед использованием?

Заранее спасибо

+0

Вы пробовали заполнить ключ? –

ответ

4

Технически - ключевые потребности быть 128 бит длиной (или 192 или 256 бит). Самый простой способ - использовать прописку (добавьте некоторые постоянные значения, чтобы перейти к требуемой длине).

Этот подход ВЫСОКО ИНСЕКЦИЯ, вы можете рассматривать этот подход как кодирование, а не шифрование.

Правильное шифрование нужно будет

  • имея ключ секретный. На самом деле это очень сложно достичь, если код/​​конфигурация находится на рабочей станции пользователя, но использование имени пользователя звучит как ОЧЕНЬ плохая идея с точки зрения безопасности.

  • Соль ключ. Создайте ключ шифрования из пароля с использованием случайной соли и хеш-функции (например, PBKDF2).

+0

В дополнение к использованию сильного KDF используйте правильное количество итераций (так называемый «коэффициент затрат»), чтобы смягчить атаки грубой силы на производный ключ. PBKDF2 - хороший выбор, но ему нужно где-то между итерациями 10k - 100k для общей сети ([аппаратные аппаратные системы могут взломать около 68 миллиардов SHA-1 хэшей в секунду] (https://gist.github.com/epixoip/a83d38f412b4737e99bbef804a270c40)). Вы должны настроить свой KDF на работу в системе хостинга, сохраняя при этом задержку для злоумышленников. – Andy

+0

Спасибо вам за ваш ответ. Вы правы, вероятно, это кодирование, а не шифрование. Но целью является шифрование и дешифрование сообщений и настроек из приложения. Я буду искать заполнение ключа. – user3216533

+0

Спасибо, я попробую. Мне просто нужно зашифровать текст из файла для использования с известным программным обеспечением. И я знаю ключ, но у меня нет успеха в шифровании ... – user3216533

 Смежные вопросы

  • Нет связанных вопросов^_^