2016-12-19 6 views
0

Можно ли зашифровать файл в Java с помощью алгоритма AES с размером блока 128 бит и размером ключа 256 символов (байты)?Java AES 128 с 256-символьным размером ключа

В соответствии с references размер ключа может быть не более 256 бит или 32 символа.

У меня есть требование сделать с 256 символами, возможно ли это?

+0

Уверенный, вы можете использовать MessageDigest для хеширования пароля и взять столько бит, сколько потребуется от результата дайджеста. –

+1

Не используйте MessageDigest для получения ключа, этого недостаточно, и просто добавление соли мало помогает улучшить безопасность. Вместо этого перейдите по HMAC со случайной солью в течение приблизительно 100 мс и сохраните соль с хешем. Используйте такие функции, как 'PBKDF2' (aka' Rfc2898DeriveBytes'), 'password_hash' /' password_verify', 'Bcrypt' и аналогичные функции. Дело в том, чтобы заставить злоумышленника потратить много времени на поиск паролей грубой силой. Защита ваших пользователей важна, используйте безопасные пароли. – zaph

ответ

1

AES имеет один размер блока 128 бит и три ключевых размера 128, 192 & 256 бит.

Если у вас есть 256 символов, символы в зависимости от кодировки могут быть более 1 байта, вы можете использовать метод деривации ключа, такой как PBKDF2 (функция деривации пароля на основе пароля 2), чтобы получить ключ от символов.

См. Комментарий к вопросу.

+0

спасибо @zaph. Будет использовать ключевой вывод. –