Безопасное хранение имен пользователей и паролей

В настоящее время я создаю собственное веб-приложение и реализую функцию входа в систему. Я читал, что использование функции входа в Google является хорошим вариантом, поэтому я включил это.

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

Я нашел аналогичный вопрос здесь, но ему 6 лет, и я думаю, что более свежий ответ может быть более полезным.

0
0
61
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

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

При этом обзор стандартных источников показывает, что SHA-512 и SHA-3 являются наиболее предпочтительными кандидатами, если вы собираетесь реализовать свою собственную аутентификацию. Что снова я не рекомендую.

Этот ответ помог. Я знаю, что это не совсем безопасно, это было просто то, над чем я хотел провести некоторое исследование. Спасибо

a.nolan 10.08.2018 17:10

Изобретать колеса для исследовательских целей - неплохая идея. Это хороший способ научиться делать красивые круглые колеса. Веселиться!

Jon Kiparsky 10.08.2018 19:32

Насколько я знаю, SHA256 еще не сломан, и времени вычислений все еще достаточно. Если вы используете достаточно большую соль, это должно быть безопасно.

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

Также убедитесь, что к паролю установлены минимальные требования, чтобы предотвратить атаки методом грубой силы.

Проверить это сообщение ;-)

https://crypto.stackexchange.com/questions/52571/computational-requirements-for-breaking-sha-256

Надеюсь это поможет.

С уважением, Кен

Я посмотрю на эту ссылку, спасибо.

a.nolan 10.08.2018 17:11

Конечно, вы также можете перестраховаться и вместо этого использовать SHA-512 :-)

crimmy68 10.08.2018 17:20

Для тех, кто катится самостоятельно: есть некоторые детали, на которые стоит обратить внимание.

Храните не пароль, а цифровой отпечаток пароля. Это предотвращает кражу паролей в случае нарушения базы данных. В качестве альтернативы некоторые базы данных знают поля пароля, которые проверяются базой данных. Убедитесь сами, что в базе данных используются достаточно надежные пароли.

И против отслеживания вирусов в памяти JVM не используйте PreparedStatement.setString, но см. здесь для некоторых мер безопасности.

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

Другие вопросы по теме