Восстановление пароля с хэшированием пароля sha1 - PullRequest
5 голосов
/ 26 октября 2010

Я хотел бы реализовать функцию забытого пароля для моего сайта.Я хэши пароли, используя sha1.Как бы я восстановил это для пользователя?

Каков наилучший метод для реализации этого?

Ответы [ 3 ]

29 голосов
/ 26 октября 2010

Короткий ответ, вы не можете.

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

Этот должен дать вам общее представление о том, как разрешить пользователям сбрасывать забытые пароли:

8 голосов
/ 26 октября 2010

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

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

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

3 голосов
/ 26 октября 2010
нет

NO

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...