将用户密码发送到他的电子邮件。。。使用php

将用户密码发送到他的电子邮件。。。使用php,php,javascript,html,mysql,css,Php,Javascript,Html,Mysql,Css,我无法将用户的密码发送到他的电子邮件。 一切正常,但问题是,密码是md5散列的,当我将密码发送给用户时,散列的md5密码似乎不是原始密码。 我想发送原始的,同时保留散列的密码 我该怎么做呢?在将密码保存到数据库后,您不应该能够以纯文本形式恢复密码;我们精确地散列密码以使其成为真实。如果用户忘记了密码,请发送指向已注册电子邮件的链接以重置密码并覆盖数据库中的旧密码。在这种情况下,您可以使用SHA1算法。在MD5中,您可以编码,但不能使用任何算法进行解码。允许他通过发送到电子邮件的“特殊”链接重置密

我无法将用户的密码发送到他的电子邮件。 一切正常,但问题是,密码是md5散列的,当我将密码发送给用户时,散列的md5密码似乎不是原始密码。 我想发送原始的,同时保留散列的密码
我该怎么做呢?

在将密码保存到数据库后,您不应该能够以纯文本形式恢复密码;我们精确地散列密码以使其成为真实。如果用户忘记了密码,请发送指向已注册电子邮件的链接以重置密码并覆盖数据库中的旧密码。

在这种情况下,您可以使用SHA1算法。在MD5中,您可以编码,但不能使用任何算法进行解码。

允许他通过发送到电子邮件的“特殊”链接重置密码。一旦他点击了该链接——更新数据库,说他点击了该链接(从而使其过期),然后让他回答一个“重置”问题,如他的DOB或他输入的电话号码。或者其他一些问题


在此之后,允许他选择一个新密码-您就完成了。

您不允许解码md5字符串。因此,最好的选择是用安全问题或类似的方法再次验证用户,并让他重置密码。此外,这是一种更好的做法,因为用户可能在许多位置使用相同的密码

或者,您可以自行为用户重置密码只需使用随机字符串或您自己的字符串,然后输入md5并更新密码。然后,您可以将随机字符串或设置的字符串发送给用户。


希望这有帮助

如果在散列原始密码时未保存原始密码,则无法将其取回。如果用户忘记了密码,为什么要通过电子邮件发送密码?请让他们重置密码。Eww。。。。请不要那样做。只需提供重置密码的链接。提供重置密码的链接更合适。你无法解密md5的项。如果你解密
md5
算法,那么使用该算法的目的是什么。在使用md5哈希之前,你必须收集它不会解密的信息。而且,在邮件中发送用户密码不是一个好主意,请提供一个链接,以便按照上述注释中的要求重置密码