5

我有 md5 格式的密码数据库条目,但是当用户使用“忘记密码”时,我怎样才能给他/她所需的密码?

4

5 回答 5

12

你不能从 MD5 哈希中做到这一点。你也不应该能够。密码恢复应该是棘手的。

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

于 2010-12-13T11:43:14.480 回答
3

你不能 - MD5 只是一种“单向”哈希 - 不是一种加密数据的方法,这些数据随后可以被解密。

因此,总体思路是:

  1. 向用户发送一封电子邮件到他们的注册地址,其中包含重置链接。(以证明他们确实拥有该地址。)重置链接应包含基于其特定用户数据的某些方面的哈希,因此不容易被猜到等(例如:帐户创建时间。)

  2. 当用户单击链接时,他们会进入一个密码重置页面,该页面会检查上述哈希值,生成一个新密码(理想情况下是大写/小写和一些数字字符的混合,尽管我总是倾向于省略诸如“0”、“ o'、'O' 等),然后通过电子邮件向用户发送新密码,建议他们尽快更改此密码。

然后,用户可以照常登录并访问该站点。

于 2010-12-13T11:47:33.910 回答
2

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

谢谢。

于 2010-12-13T11:46:13.937 回答
2

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

于 2010-12-13T11:44:22.997 回答
1

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

最好生成一个新的随机密码,然后发送到用户的邮箱。

于 2010-12-13T11:45:08.820 回答