我有md5加密密码,如何在用户使用时给用户提供密码"忘记密码"?

时间:2010-12-13 11:41:59

标签: php mysql md5 forgot-password

我有md5格式的密码数据库条目,但是当用户使用“忘记密码”时,我该如何向他/她提供所需的密码?

5 个答案:

答案 0 :(得分:12)

你不能从MD5哈希那样做;你也不应该。密码恢复应该是难以处理的。

通常的过程是将密码重设令牌(URL)发送到他们的电子邮件地址,以便用户可以选择新密码。

答案 1 :(得分:3)

你不能 - MD5只是一种“单向”哈希 - 而不是加密随后可以解密的数据的手段。

因此,一般的想法是:

  1. 向用户发送电子邮件至其注册地址,其中包含重置链接。 (为了证明它们实际上拥有地址。)重置链接应该包含基于其特定用户数据的某些方面的散列,因此不能轻易猜到等等(例如:帐户创建时间。)

    < / LI>
  2. 当用户点击链接时,他们登陆密码重置页面检查上面的哈希,生成一个新密码(理想情况下是上/下和一些数字字符的混合,虽然我总是倾向于省略字符等为了清楚起见,将其作为“0”,“o”,“O”等,然后在电子邮件中向用户发送新密码,告知他们应尽快更改此密码。

  3. 然后,用户可以按常规登录并访问该网站。

答案 2 :(得分:2)

如果不将密码放在数据库中就不能这样做,这是不可取的,但您可以为他/她生成一个新密码并将其发送给他们。或者是他们可以重置密码的链接。

答案 3 :(得分:2)

您必须向用户发送new password,然后再将其设置到数据库中。否则原密码可能无法恢复。

感谢。

答案 4 :(得分:1)

考虑到密码的长度,您有1/100的机会恢复该密码(字典方法)。我不会推荐它。

最好生成一个新的随机密码,并将其发送到用户的电子邮箱。