PHP密码恢复

时间:2011-01-21 20:56:04

标签: php passwords

我意识到,为了安全起见,密码不应该以明文形式存储在数据库中。如果我将它们哈希,我可以验证它们是否有登录目的。

但是如果我想建立一个密码恢复系统,那么最好的策略是什么,因为没有撤消哈希?

有人能否简要介绍一下存储和恢复密码的良好安全策略?

3 个答案:

答案 0 :(得分:38)

您无法恢复被哈希的密码,也不能。

你应该做的是:

  1. 对密码重置请求进行一些验证,如CAPTCHA。
  2. 创建一次性随机代码并将其链接发送到用户的电子邮件。
  3. 让此代码在一小时内过期。
  4. 使用后,此代码会立即过期。
  5. 在与代码的链接上,如果验证,则允许他更改密码。
  6. 通知他密码已更改,但通过电子邮件发送。

答案 1 :(得分:7)

您没有“恢复”密码。你做的是两件事之一。

  1. 向用户发送一个链接以创建新密码,覆盖当前密码
  2. 向用户发送随机生成的密码,然后让他们更改密码

答案 2 :(得分:1)

您可以为用户和md5创建新的(并随机生成的)密码,然后通过电子邮件发送给用户。