PHP忘记密码函数
我有一个小的社区网站,我需要实现一些忘记密码的功能。我目前将密码存储在数据库中,并使用加密PHP忘记密码函数,php,security,md5,password-recovery,Php,Security,Md5,Password Recovery,我有一个小的社区网站,我需要实现一些忘记密码的功能。我目前将密码存储在数据库中,并使用加密 是否可以对“解密”进行排序并通过电子邮件发送给用户,或者我需要一个密码重置页面?MD5是一个单向散列。您需要让他们重置密码。不,您无法解密密码。这就是全部的想法 您需要向他们发送一个临时密码,让他们重置它。MD5哈希密码是不可逆的。(MD5是散列,而不是真正的加密,所以有细微的区别)。而且是您肯定希望提供一个密码“重置”过程(而不仅仅是通过电子邮件发送密码) 为您提供安全密码重置的高级工作流程… 当用户要
是否可以对“解密”进行排序并通过电子邮件发送给用户,或者我需要一个密码重置页面?MD5是一个单向散列。您需要让他们重置密码。不,您无法解密密码。这就是全部的想法
您需要向他们发送一个临时密码,让他们重置它。MD5哈希密码是不可逆的。(MD5是散列,而不是真正的加密,所以有细微的区别)。而且是您肯定希望提供一个密码“重置”过程(而不仅仅是通过电子邮件发送密码) 为您提供安全密码重置的高级工作流程…
这里有一个很好的问答,应该会有帮助 您需要执行密码重置页面。在PHP中无法解密MD5。不,MD5是不可逆的。对密码进行哈希处理的目的是使访问数据库的攻击者无法访问每个人的密码
这就是说,MD5(特别是未加盐的MD5)通常可以使用一个。为了安全,你最好使用.< /P> < P>你不能解密密码,你甚至不应该考虑通过明文发送密码给用户。(这是使我永远不再使用网站的第一种方法;这是一个巨大的安全漏洞。)提供一个密码重置页面,该页面由包含发送到用户密码恢复电子邮件的时间相关密钥的链接触发;这是密码恢复的最新技术。
MD5
是一种单向功能。你不能解密它。所以你需要有一个密码重置页面 编写一个页面,接受md5和电子邮件地址作为get参数,并在db中查找电子邮件和md5的密码。按照Jared Cobb的说明,这应该会让你走上正确的道路。我还添加了一些示例
例如要发送的url
这应该足以让您知道该用户是有效用户并更改其密码最好的方法是要求用户在注册时提交其电子邮件地址。然后,如果他们忘记了,有一个忘记密码链接,该链接用电子邮件发送给他们的随机值重置他们的密码,这样他们就可以获得访问权限,然后将密码更改回更值得记忆的内容。这样,您就不需要破坏安全性。 你可以有一个链接,他们只需要在其中提交用户名,但为了更好的安全性,你应该有一个问答或值得记忆的单词。根据这篇文章,第3步。4.我不确定您是否应该发送与存储的令牌相同的令牌 我猜您必须发送令牌,然后对其进行哈希并将哈希后的令牌存储在DB中。否则,如果您的数据库被破坏,您可以访问重置密码页面 总结如下:
$token = md5(microtime (TRUE)*100000);
$tokenToSendInMail = $token;
$tokenToStoreInDB = hash($token);
其中散列是一种散列算法。使用php内置的密码验证和密码散列。如Marcus Reed所述,在2015/2016年,如果您的php版本>=5.5,请不要使用MD5,密码散列()和密码验证()为您的密码提供一种简单而安全的散列,能够提供成本并自动添加散列 我目前没有投票或发表评论的能力,这就是为什么我要向一个
$token = md5(microtime (TRUE)*100000);
$tokenToSendInMail = $token;
$tokenToStoreInDB = hash($token);