Задать вопрос
JackShcherbakov
@JackShcherbakov

Защита и хранение паролей. Как правильно?

Здравствуйте!

Суть:

Есть база данных с паролями. Все пароли хранятся в захешированном виде. Хеширование проводится при помощи функции password_hash PHP. Если пользователь введет "ПарольСекрет1123123", то в базу данных будет записано следующее:
$2y$10$Vo1rzCRf8gQSu3FZDvxeEu4EkhEIvyAF1BGWPbgim5OhRdTjqEqJm


Вопрос 1:

Насколько надежен этот хеш? Реально ли получить исходный пароль зная хеш? Возможно это в принципе?

Подбор пароля при помощи брутфорсинга:

Как бы ни хранился пароль, его все равно возможно подобрать. Поэтому нужно сделать защиту от брутфорсинга. Я хочу сделать так, что после 3-х неверных попыток пароль можно было ввести спусти 5 минут. Если даже тогда пароль был введен неверно, то пауза удвоится, и так далее. Я думаю это довольно надежная защита. Но как это реализовать?

Шифрование паролей:

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

Какие методы защиты паролей вы еще знаете?

Заранее выражаю огромную благодарность всем, кто поможет!
  • Вопрос задан
  • 1686 просмотров
Подписаться 2 Средний 8 комментариев
Решение пользователя Dmitry Alekseev К ответам на вопрос (4)
Zatmil
@Zatmil
Fullstack-разработчик
На самом деле, уже давно все придумали за нас =) Пароль пишешь в базу как хеш + salt и пароль уже будет сложнее подобрать. Далее вводишь каптчу на ввод пароля и допустим таймер, чтобы трудно было перебирать. Можно еще сделать блокировку пользователя после 5 неудачных вводов и требовать подтверждения разблокировки по email
Ответ написан