使用sha1密码哈希进行密码恢复

时间:2010-10-26 17:14:29

标签: php hash password-protection

我想为我的网站实施忘记密码功能。我使用sha1哈希密码。我该如何为用户恢复?

实施此方法的最佳方法是什么?

3 个答案:

答案 0 :(得分:29)

简短回答,你不能。

您希望实施密码重置功能,而不是密码检索功能。散列密码的重点在于您无法存储用户的密码,如果丢失则无法恢复。

This应该让您大致了解如何允许用户重置忘记的密码:

答案 1 :(得分:8)

最好的方法是不要尝试恢复原始密码。如果用户丢失了密码,则生成一个新的随机密码并使用带外方法将其发送给他们(例如电子邮件)。请记住,哈希密码的重点是防止恢复。

我知道,我知道,电子邮件是不安全的。但是,如果您要求用户立即更改生成的密码,则可以降低风险。

顺便说一句,我不能建议您在密码中加密并迭代哈希以防止攻击者获得散列值时的暴力攻击。

答案 2 :(得分:3)

没有已知的有效方法将sha1哈希恢复为原始文本(因为它是设计的单向函数)。如果您希望以后能够向用户显示其密码,您将 将其存储在可逆的方法中(IE加密,纯文本)。这仍然是一个坏主意,尝试找到better way of doing it