如何在PHP中恢复加密密码


how to recover crypted password in php

当新用户注册到我的网站时,它使用crypt()方法,然后将其存储在数据库中。

我想创建一个"我忘记了密码"页面,用户可以在其中通过邮件获取密码。

我的问题很简单:例如,我如何转换:"$2a$13$Ku2hb./9aA71dPo/E015m.WBs6.RsDC/BL8jbz8dMRrmm0jGNIJRO"到"某些用户密码"?

做这些天其他网站做的事情 - 不提供检索密码的方法。相反,请提供一种重置密码的方法。

当用户单击"我忘记了密码"时,向他们发送可用于重置密码的链接。设置链接有效期的到期日期。如果您想格外小心,请发送一封电子邮件,确认密码刚刚重置,并发送一个链接,以防用户实际上没有自己这样做。

crypt() 函数使用单向加密,这意味着没有 decrypt() 函数。

基本上你有两个选择:

1.实现您自己的加密方法,您可以稍后解密 - 不推荐-

2.改为实施"重置密码"

你不能

,因为crypt()不是加密函数,它是一个单向哈希函数。

注意:没有解密函数,因为 crypt() 使用单向算法。

无论如何,你不应该做你所描述的。如果攻击者可以访问某人的电子邮件,并且每个网站都根据请求将"丢失的密码"以明文形式发送给用户,则该攻击者可能会获得更多密码。

您应该让用户在证明其身份(可能通过回答问题)并拥有该电子邮件后输入新密码。