PHP:当用户单击使用md5加密的忘记密码时,如何将原始密码发送给用户?

我正在使用md5加密项目中的密码。

当用户单击“忘记密码”并提交他的电子邮件时,我必须将他的密码发送给他。

但是密码是使用md5加密的。不应生成新密码。因为在此项目中,管理员可以查看用户的所有详细信息。因此,我必须将原始密码显示给Admin。因此,初始密码非常重要。因此,我该如何解密密码或以其他方式发送给他原始密码?

提前致谢…

回答:

哈希不能被设计为无法解密,这就是为什么它们通常被称为“单向哈希”而不是仅哈希的原因。

而是…

  1. 生成一个新的密码哈希,将新的密码哈希存储在旧密码中,然后将新生成的密码通过电子邮件发送给用户。

  2. 生成一个新密码,对其进行哈希处理,并将其存储在临时密码字段中,然后当用户使用该密码登录时,提示他们输入永久的新密码。

  3. 生成一个随机数,将其存储在该随机数的字段中,然后通过电子邮件向用户发送带有该随机数的链接,该链接将使他们能够访问页面以输入新密码。

第三种选择可能是最好的选择,因为它不会在普通视图中为阅读用户电子邮件的人留下实际的密码(临时密码或非临时密码),并且由于使用的是随机数,因此一旦使用就无法使用被恶意用户再次使用。

哈希用于密码的原因是专门用于防止将其存储为恶意用户仅通过查看数据库即可确定密码的形式。

编辑:

“所以我必须向管理员显示原始密码。”

如果您对密码进行哈希处理,则 。通常,允许管理员查看用户的密码实际上是一个

,因为很大比例的用户倾向于将相同的密码用于多项操作,而一件事(例如,公司网络)的管理员可能不会其他许多事情的管理员(例如,用户的在线银行系统)。

两者是不一样的。加密被设计为可逆的(因此使用了补充术语“解密”),而哈希设计为仅单向的。

以上是 PHP:当用户单击使用md5加密的忘记密码时,如何将原始密码发送给用户? 的全部内容, 来源链接: utcz.com/qa/398530.html

回到顶部