Шифрование на основе пароля с использованием AES в java 5 (только JCE)

Я хотел бы использовать AES (192 или 256 бит), но я застрял на том, как сгенерировать ключ из пароля, введенного пользователем.

Я прошел через этот поток и могу запустить программу на Java 6. Однако Мне нужно запустить ту же программу на Java 5, а SecretKeyFactory для PBKDF2WithHmacSHA1 недоступен в JDK 5.

Итак, по сути, мне нужно сгенерировать 192 или 256 бит для SecretKey на основе пароля пользователя, и мне нужен безопасный способ сделать это в java 5.

Помощь приветствуется!

РЕДАКТИРОВАТЬ # 1 Чтобы не застрять, я теперь использую 128 бит из MD5 (пароль, введенный пользователем + фиксированная соль) в качестве ключа к AES. Я знаю, что это отстой, и изменю, как только я найду хороший способ сгенерировать ключ.


person Sripathi Krishnan    schedule 23.08.2010    source источник
comment
Это может помочь, если вы разместите код, который у вас работает на Java6.   -  person Jim Garrison    schedule 23.08.2010
comment
@Jim - см. Принятый ответ на этот вопрос - stackoverflow.com/questions/ 992019 / java-256bit-aes-encryption. Код отлично работает в JDK6, но у меня нет идей, пытаясь заставить его работать для JDK 5.   -  person Sripathi Krishnan    schedule 23.08.2010
comment
Так что возьмите код из более поздней версии Java 1.5 и создайте свой собственный API или сделайте то же самое с помощью Bouncy Castle. Не может быть так сложно.   -  person Maarten Bodewes    schedule 08.03.2013


Ответы (1)


По какой причине вы хотите использовать PBKDF2WithHmacSHA1?

SecretKeyFactory существовала в версии 1.4.2, поэтому вы можете посмотреть здесь .

person Dean J    schedule 23.08.2010
comment
SecretKeyFactory существовала в версии 1.4.2, но не реализует алгоритм PBKDF2WithHmacSHA1. Вставленная вами ссылка использует KeyFactory для генерации ключей, что не подходит для моих целей. Мне нужно сгенерировать ключ из пароля, используя какую-то функцию распределения ключей, но я не могу найти хороший способ сделать это в JDK 5. - person Sripathi Krishnan; 23.08.2010