可能重复:
忘记密码:实现忘记密码功能的最佳方法是什么?
我正在编写一个社区网站.
我想构建一个"忘记密码"功能.
环顾不同的网站,我发现他们使用以下三个选项之一:
向用户发送一封电子邮件,其中包含指向唯一隐藏网址的链接,该网址允许他更改密码(Gmail和亚马逊)
向用户发送一封包含新的随机生成密码的电子邮件(Wordpress)
向用户发送他当前的密码(www.teach12.com)
选项#3似乎对用户来说最方便,但由于我将密码保存为MD5哈希,我不知道选项#3是如何可用的,因为MD5是不可逆的.这似乎也是一种不安全的选择,因为它意味着网站必须在某处以明文形式保存密码,并且至少明文密码是通过不安全的电子邮件发送给用户的.或者我在这里遗漏了什么?
因此,如果我不能做选项#1,选项#2似乎是最简单的编程,因为我只需要更改用户的密码并将其发送给他.虽然这有点不安全,因为您必须通过不安全的电子邮件传递实时密码.然而,这也可能被麻烦制造者误用,通过输入随机电子邮件和不断更改各种用户的密码来纠缠用户.
选项#1似乎是最安全的,但需要一些额外的编程来处理过期的隐藏URL等,但它似乎是大型网站使用的.
你有什么经验使用/编程这些不同的选项?有没有我错过的选择?
我想设置一个php密码恢复脚本,使用24小时后过期的令牌.但我不知道该怎么做.我目前已经SHA1加密了用户密码.我想要做的就是在URL上添加一个令牌,当他们请求重置密码时,该URL会发送给用户.但是我该如何正确地做到这一点以及我需要在数据库中存储什么?
我使用md5加密我的项目中的密码.
当用户点击忘记密码并提交他的电子邮件时,我必须将密码发送给他.
但密码是使用md5加密的.生成新密码不应该这样做.因为在这个项目中管理员可以看到用户的所有细节.所以我必须向管理员显示原始密码.所以初始密码非常重要.那我怎么能解密密码或任何其他方式给他发送原始密码?
提前致谢...
好.这清楚地表明必须在数据库中存储散列密码,但是如果用户不记得密码并想要将其检索回来,那么显然用户不喜欢使用散列密码.如果使用md5或其他类似salt和sha1的密码进行哈希处理,那么如何检索密码.