Как в JDK 1.4 API зашифровать пароль пользователя, введенный пользователем в текстовое поле? - PullRequest
0 голосов
/ 11 августа 2011

Мне нужно зашифровать пароль, который пользователь вводит в текстовое поле в пользовательском интерфейсе, сохранить его, а затем расшифровать при вызове метода getPassword ().

Что такое правильный API JDK 1.4 Iследует использовать?

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

Ответы [ 3 ]

1 голос
/ 11 августа 2011

Если вы хотите защитить свои пароли, вы можете использовать алгоритм хеширования, такой как MD5 или SHA1. Вы не хотите расшифровывать сохраненный пароль, чтобы сравнить его с тем, который указан при входе в систему, а вместо этого хешировать предоставленный пароль и сравнивать хэши

вот некоторая документация о методах, которые вы можете использовать для хэширования: https://www.owasp.org/index.php/Hashing_Java

1 голос
/ 11 августа 2011

Здесь приведен пример использования Java 1.4 Crypto-интерфейса для шифрования MD5:

http://download.oracle.com/javase/1.4.2/docs/guide/security/jce/JCERefGuide.html#HmacEx

Blowfish: http://download.oracle.com/javase/1.4.2/docs/guide/security/jce/JCERefGuide.html#BlowKeyEx

0 голосов
/ 12 августа 2011

Просто используйте Cipher с механизмом «AES / CBC / PKCS5Padding» (в getInstance ()).Вы можете использовать 128-битный (16-байтовый) ключ AES, созданный с использованием SecretKeySpec (это уже ключ!).Более высокие битрейты потребуют установки файлов политики шифрования без ограничений.Как я отметил в качестве замечания, обратите внимание, что это только скрывает данные, так как ключ необходимо будет сохранить вместе с приложением, чтобы люди, которые знают, что делать, могли получить как пароль, так и ключ, и расшифровать информацию вне приложения..

Если вы храните несколько паролей с одним и тем же ключом, убедитесь, что вы генерируете и храните отдельные случайные IV для каждого пароля.Совет в этом последнем параграфе - больше, чтобы вы знали, как правильно шифровать данные, так как получить ключ легче, чем дешифровать данные без него.

...