我想为我的网站实施忘记密码功能。我使用sha1哈希密码。我该如何为用户恢复?
实施此方法的最佳方法是什么?
答案 0 :(得分:29)
答案 1 :(得分:8)
最好的方法是不要尝试恢复原始密码。如果用户丢失了密码,则生成一个新的随机密码并使用带外方法将其发送给他们(例如电子邮件)。请记住,哈希密码的重点是防止恢复。
我知道,我知道,电子邮件是不安全的。但是,如果您要求用户立即更改生成的密码,则可以降低风险。
顺便说一句,我不能建议您在密码中加密并迭代哈希以防止攻击者获得散列值时的暴力攻击。
答案 2 :(得分:3)
否强>
没有已知的有效方法将sha1哈希恢复为原始文本(因为它是设计的单向函数)。如果您希望以后能够向用户显示其密码,您将 将其存储在可逆的方法中(IE加密,纯文本)。这仍然是一个坏主意,尝试找到better way of doing it。