【发布时间】:2011-04-30 21:07:15
【问题描述】:
我想为我的网站实现忘记密码功能。我使用 sha1 对密码进行哈希处理。我将如何为用户恢复它?
实现这个的最佳方法是什么?
【问题讨论】:
标签: php hash password-protection
我想为我的网站实现忘记密码功能。我使用 sha1 对密码进行哈希处理。我将如何为用户恢复它?
实现这个的最佳方法是什么?
【问题讨论】:
标签: php hash password-protection
【讨论】:
最好的方法是不要尝试恢复原始密码。如果用户丢失了密码,则生成一个新的随机密码并使用带外方法将其发送给他们(例如电子邮件)。请记住,散列密码的全部目的是为了防止恢复。
我知道,我知道,电子邮件不安全。但是,如果您要求用户立即更改生成的密码,那么风险就会降低。
顺便说一句,如果攻击者获得散列值,我不能建议您同时对密码进行加盐并迭代散列以防止暴力攻击。
【讨论】:
否
没有已知的将 sha1 哈希恢复为其原始文本的有效方法(因为它是一种单向函数设计)。如果您希望以后能够向用户显示他们的密码,您将必须将其存储在一种可逆的方法中(IE 加密,明文)。这仍然可能是个坏主意,请尝试查找better way of doing it。
【讨论】: