2010-09-01 128 views
5

好的。这清楚地表明必须在数据库中存储散列密码,但是如果用户不记得密码并且想要取回密码,那么显然用户不希望具有散列密码。如果密码被md5散列或像salt和sha1那样附加,那么如何找回密码。PHP解密密码

+3

散列就像一台绞肉机。你可以把牛变成碎牛肉,但是你不能把碎牛肉变成牛。 – 2013-10-30 22:21:53

回答

17

只有一个简单的答案:你不能。

那么,理论上你可以,但如果他们足够长,可能需要多年的密码。毕竟,这首先是哈希密码的要点:使数据对攻击者无效(或至少保护用户的明文密码,这是敏感数据)。

只需将网站发送给“更改密码”电子邮件,其中包含指向该用户可以更改其密码的页面的链接。这是大多数专业网站如何处理这种困境。

+6

这就是为什么大多数专业网站的密码强度相当于您用来注册的电子邮件帐户的密码强度! – 2010-09-01 06:16:20

+0

这是真的:)它仍然胜过这个安全问题。 – hb2pencil 2010-09-01 06:19:41

+1

http://tools.benramsey.com/md5/ md5散列反向工具。然而好的密码可能不会存在于数据库中。 – 2010-09-01 06:21:50

3

散列而不是加密密码的安全性是您不能反转散列。如果您可以解密密码并为用户提供纯文本密码,那么任何黑客都可以将您用于注册和登录的散列密码反转,并“解除”它以获取用户的密码。
这是一个功能,而不是一个错误。

1

散列本身代表“无法取回”。

如果用户不记得他们的密码,他们确实不需要这个密码。
只需创建另一个随机发送。
没什么大不了的。

0

是的..可能忘记了他/她的密码..使用散列密码的好习惯是让用户键入想要重置密码的帐户的电子邮件地址,然后系统将重置用户密码与另一个生成的密码。 MD5像散列密码几乎不可能从散列的密码中检索原始密码

0

请务必小心可以通过电子邮件向您发送您使用的密码的网站。这意味着任何有权访问密码数据库的人都可以轻松地看到您的密码,如果您重复使用密码,这是特别危险的。

对于密码重置,我建议您使用“安全问题”,同时加密的答案也是如此。

它应该让所有经营网站的人保持合理的安全,防止黑客入侵。