我有md5格式的密码数据库条目,但是当用户使用“忘记密码”时,我该如何向他/她提供所需的密码?
答案 0 :(得分:12)
你不能从MD5哈希那样做;你也不应该。密码恢复应该是难以处理的。
通常的过程是将密码重设令牌(URL)发送到他们的电子邮件地址,以便用户可以选择新密码。
答案 1 :(得分:3)
你不能 - MD5只是一种“单向”哈希 - 而不是加密随后可以解密的数据的手段。
因此,一般的想法是:
向用户发送电子邮件至其注册地址,其中包含重置链接。 (为了证明它们实际上拥有地址。)重置链接应该包含基于其特定用户数据的某些方面的散列,因此不能轻易猜到等等(例如:帐户创建时间。)
< / LI>当用户点击链接时,他们登陆密码重置页面检查上面的哈希,生成一个新密码(理想情况下是上/下和一些数字字符的混合,虽然我总是倾向于省略字符等为了清楚起见,将其作为“0”,“o”,“O”等,然后在电子邮件中向用户发送新密码,告知他们应尽快更改此密码。
然后,用户可以按常规登录并访问该网站。
答案 2 :(得分:2)
如果不将密码放在数据库中就不能这样做,这是不可取的,但您可以为他/她生成一个新密码并将其发送给他们。或者是他们可以重置密码的链接。
答案 3 :(得分:2)
您必须向用户发送new password
,然后再将其设置到数据库中。否则原密码可能无法恢复。
感谢。
答案 4 :(得分:1)
考虑到密码的长度,您有1/100的机会恢复该密码(字典方法)。我不会推荐它。
最好生成一个新的随机密码,并将其发送到用户的电子邮箱。