У меня есть запись базы данных для пароля в формате md5, но когда пользователь использует «Забыли пароль», то как я могу дать ему / ей желаемый пароль?
Вы не можете сделать это из хэша MD5; и вы не сможете это сделать. Восстановление пароля должно быть трудноразрешимым.
Обычный процесс – отправить маркер сброса пароля (URL) на свой адрес электронной почты, чтобы пользователь мог выбрать новый пароль.
Вы не можете – MD5 – это просто односторонний хэш – не средство шифрования данных, которое впоследствии может быть дешифровано.
Таким образом, общая идея заключается в следующем:
Отправьте пользователю электронное письмо на свой зарегистрированный адрес с ссылкой на него. (Чтобы доказать, что они действительно владеют адресом.) Ссылка сброса должна содержать хэш на основе некоторого аспекта их конкретных пользовательских данных, поэтому его нельзя легко угадать и т. Д. (Например: время создания учетной записи).
Когда пользователь нажимает на ссылку, они приземляются на странице сброса пароля, которая проверяет вышеупомянутый хеш, генерирует новый пароль (в идеале это сочетание верхних / нижних и некоторых числовых символов, хотя я всегда склонен игнорировать символ, такой как «0», o ',' O 'и т. д. для ясности), а затем отправляет пользователю новый пароль в электронном письме, сообщая им, что он должен как можно скорее изменить этот пароль.
Затем пользователь может войти в систему и получить доступ к сайту, как обычно.
Вы не можете сделать это, не помещая пароль в базу данных, что нежелательно, но вы можете создать ему новый пароль и отправить его им. Или ссылку, в которой они могут сбросить свой пароль.
вам необходимо отправить new password
пользователю, а затем установить в базу данных. в противном случае исходный пароль может не восстановиться.
Благодарю.
У вас есть шанс 1/100 восстановить этот пароль (метод словаря) с учетом длины пароля. Я не буду рекомендовать его.
Лучше создать новый случайный пароль и отправить его на адрес электронной почты пользователя.