PHP解密密码

PHP解密密码,php,database,security,password-protection,Php,Database,Security,Password Protection,嗯。很明显,必须将散列密码存储在数据库中,但如果用户不记得密码并希望检索回来,那么用户显然不喜欢使用散列密码。如果密码是用md5或salt和sha1等附加字符散列的,那么如何检索密码。只有一个简单的答案:你不能。 理论上可以,但是如果每个密码足够长的话,可能需要很多年的时间。毕竟,这就是散列密码的首要目的:使数据对攻击者毫无用处(或者至少保护用户的明文密码,这是敏感数据) 只需让网站发送一封“更改密码”电子邮件,其中包含一个链接,该链接指向用户可以更改其密码的页面。这就是大多数专业网站处理这一困

嗯。很明显,必须将散列密码存储在数据库中,但如果用户不记得密码并希望检索回来,那么用户显然不喜欢使用散列密码。如果密码是用md5或salt和sha1等附加字符散列的,那么如何检索密码。

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

理论上可以,但是如果每个密码足够长的话,可能需要很多年的时间。毕竟,这就是散列密码的首要目的:使数据对攻击者毫无用处(或者至少保护用户的明文密码,这是敏感数据)


只需让网站发送一封“更改密码”电子邮件,其中包含一个链接,该链接指向用户可以更改其密码的页面。这就是大多数专业网站处理这一困境的方式。

这意味着难以解决。因此,您通常必须提供一些方法来重置它。向用户的电子邮件发送特殊链接是常见的,尽管这会降低您的电子邮件帐户的安全性


请参阅。

哈希而不是加密密码的安全性在于,您无法反转哈希。如果您可以取消密码加密并将其明文密码提供给用户,那么任何黑客都可以撤销您用于注册和登录的哈希密码,并将其“解密”以获取用户密码。
这是一个特性,而不是bug。

哈希本身代表“无法检索回来”

如果用户记不住自己的密码,他们肯定不需要这个密码。
只需创建另一个随机文件并发送即可。

没什么大不了的。

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

请始终注意那些可以通过电子邮件向您发送您使用的密码的网站。这意味着任何有权访问密码数据库的人都很容易看到您的密码,如果您重复使用密码,这尤其危险

对于密码重置,我建议使用“安全问题”,并对答案进行加密


所有运营网站的人都有责任合理地保护其客户免受黑客攻击。

这就是为什么大多数专业网站的密码强度与您注册时使用的电子邮件帐户的密码强度相等!这是真的:)尽管如此,它还是胜过了安全问题。md5哈希反向工具。但是,数据库中可能不存在好的密码。@Ben该网站可以作为密码筛选过程的一个组成部分。也就是说,如果新密码的MD5哈希在数据库中,让用户创建一个更安全的如果你使用每个用户的随机盐,像这样的网站是不相关的。散列就像绞肉机。你可以把牛变成碎牛肉,但你不能把碎牛肉变成牛。