сделать хеш безопаснее с солью - PullRequest
0 голосов
/ 09 октября 2018

Я новичок здесь, поэтому, пожалуйста, поправьте меня во всем!

Мне поручили сделать базовую Java-программу, где я регистрирую и аутентифицирую пользователей, сохраняя имя пользователя и пароль в текстовом файле .txt.Пароль хранится в виде хеша MD5.Кроме того, мне нужно было создать другую программу, чтобы попытаться перебором файла .txt, чтобы найти пароли, и измерить время, необходимое для этого.

Мне удалось это сделать (немного страдая), иПоследний шаг - найти и реализовать способ снизить шансы этого грубого принуждения работать.Я много об этом искал, и кроме людей, которые говорили, что используют другой более безопасный метод хранения паролей, единственное, что я нашел полезным (о чем я слышал раньше, поэтому искал его), это использование солей, которые я знаю, что они объединеныв пароле перед хэшированием, а затем сохраняются и хеш, и соль.

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

Является ли это жизнеспособным способом сделать грубую силу более жесткой (по крайней мере, в этом задании, для целей обучения), так как на это требуется больше времени, или есть ли другие способы сделать это?заранее спасибо!

1 Ответ

0 голосов
/ 09 октября 2018

в первую очередь.md5-Hash устарел.Пожалуйста, используйте sha256 или sha512.

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

Теперь вы можете использовать свою секретную соль и пароль для генерации хэша.

hashedPw = sha256(salt + password)

Это позволяет избежать того, что злоумышленник сможет восстановить исходный пароль из поиска в таблице поиска.(https://crackstation.net/)

Кроме того, вы можете зашифровать свои пароли с помощью алгоритма AES.

...