Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中恢复加密密码_Php_Passwords_Crypt - Fatal编程技术网

如何在php中恢复加密密码

如何在php中恢复加密密码,php,passwords,crypt,Php,Passwords,Crypt,当一个新用户注册到我的站点时,它使用crypt()方法,然后将其存储在数据库中 我想做一个“我忘了我的密码”页面,用户可以通过邮件获得他的密码 我的问题很简单: 例如,如何转换:“$2a$13$Ku2hb./9aA71dPo/E015m.WBs6.RsDC/BL8jbz8dMRrmm0jGNIJRO” “某个用户密码”?像现在其他网站一样-不要提供检索密码的方法。相反,提供一种重置密码的方法 当用户单击“我忘记密码”时,向他们发送一个链接,他们可以使用该链接重置密码。设置链接的有效期。如果您想格

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

我想做一个“我忘了我的密码”页面,用户可以通过邮件获得他的密码

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

像现在其他网站一样-不要提供检索密码的方法。相反,提供一种重置密码的方法

当用户单击“我忘记密码”时,向他们发送一个链接,他们可以使用该链接重置密码。设置链接的有效期。如果您想格外小心,请稍后发送一封电子邮件,确认密码刚刚重置,并发送一个链接,以防用户自己没有重置密码。

您不能,因为这不是一个加密函数,而是一个单向散列函数

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

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

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

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

基本上你有两个选择:

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


2.改为执行“重置密码”

您不想这样做。没有健全的网站通过电子邮件发送密码。谢谢你的评论。“重置密码”似乎是个好主意!