可能重复:
忘记密码:实现忘记密码功能的最佳方法是什么?
我正在编写一个社区网站。
我想建立一个“忘记密码”功能。
环顾不同的网站,我发现他们采用了以下三种选择之一:
向用户发送一封电子邮件,其中包含指向唯一隐藏 URL 的链接,该 URL允许他更改密码(Gmail 和 Amazon)
向用户发送一封带有随机生成的新密码的电子邮件(Wordpress)
向用户发送他当前的密码(www.teach12.com)
选项#3对用户来说似乎是最方便的,但由于我将密码保存为 MD5 哈希,我看不到选项#3 对我来说如何可用,因为MD5 是不可逆的。这似乎也是不安全的选项,因为这意味着网站必须在某处以明文形式保存密码,并且至少明文密码是通过不安全的电子邮件发送给用户的。或者我在这里错过了什么?
因此,如果我不能执行选项#1,选项#2似乎是最简单的编程,因为我只需要更改用户的密码并将其发送给他。尽管这有点不安全,因为您必须通过不安全的电子邮件传达实时密码。然而,这也可能被麻烦制造者滥用,通过输入随机电子邮件和不断更改各种用户的密码来纠缠用户。
选项#1似乎是最安全的,但需要一些额外的编程来处理过期的隐藏 URL 等,但它似乎是大型网站使用的。
您使用/编程这些不同的选项有什么经验?有什么我错过的选择吗?