如何在php中恢复加密密码

时间:2013-10-08 20:43:16

标签: php passwords crypt

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

我想制作一个“我忘了密码”页面,用户可以通过邮件获取密码。

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

3 个答案:

答案 0 :(得分:1)

执行其他所有网站目前的工作 - 不提供检索密码的方法。相反,提供一种重置密码的方法。

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

答案 1 :(得分:0)

你不能,因为crypt()不是加密函数,它是单向散列函数。

  

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

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

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

答案 2 :(得分:0)

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

基本上你有两个选择:

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

2.实现'重置密码'而不是

相关问题