我有md5格式的密码数据库项,但是当用户使用“忘记密码”时,我该如何给他/她所需的密码?我有md5加密密码,当他使用“忘记密码”时如何给用户提供密码?
回答
你不能从MD5哈希中做到这一点;你也不应该能够。密码恢复应该是棘手的。
通常的过程是发送一个密码重置令牌(URL)到他们的电子邮件地址,以便用户可以选择一个新的密码。
谢谢@Marcelo Cantos – 2011-11-17 09:51:35
如果不将密码放在数据库中,这是不可取的,但您可以生成一个新密码并发送给他们。或者他们可以重置密码的链接。
给出密码的长度,您有1/100的机会恢复该密码(字典方法)。我不会推荐它。
最好生成一个新的随机密码,并将其发送给用户的电子邮件。
远远低于实际上,这就是整个散列点:简单而快速的一种方法(数据散列),复杂和非常缓慢(正如在“正确完成时几乎不可能”)在另一个方向(散列到数据)。 – Piskvor 2010-12-13 11:52:40
@Piskvor其实这只是我的估计。 :P它将取决于使用的字典。 – Ruel 2010-12-13 11:53:52
如果您获得1/100的回收率。你有一个非常不安全的系统。事实上,您可以使用各种md5 de /编码器测试您自己的系统的恢复速率。拍摄0%的恢复。 http://www.md5decrypter.com/ – DampeS8N 2010-12-13 12:37:01
您必须发送new password
给用户,然后再设置到数据库中。否则原始密码可能无法恢复。
谢谢。
您不能 - MD5仅仅是一种“单向”散列 - 不是加密数据的手段,可以随后对其进行解密。
因此,总的思路是:
向用户发送电子邮件给他们的注册地址与它重置链接。 (以证明他们实际上拥有该地址)。重置链接应该包含基于其特定用户数据的某些方面的散列,因此不容易被猜出等(例如:帐户创建时间。)
当用户点击链接时,他们登录密码重置页面,检查上面的散列,生成一个新的密码(理想情况下是上/下和一些数字字符的混合,虽然我总是倾向于忽略字符,如'0',' o','O'等),然后通过电子邮件向用户发送新密码,建议他们尽快更改密码。
用户可以按照惯例登录并访问该网站。
我只是跳过发送新密码的第二封电子邮件。让用户直接从该链接更改密码。 – Danosaure 2010-12-13 16:55:03
- 1. PHP:如何在用户点击忘记使用md5加密的密码时向用户发送原始密码?
- 2. 忘记密码
- 3. MD5密码解密
- 4. SFHFKeychainUtils“忘记”我的用户密码
- 5. CakePHP忘记密码
- 6. 忘记密码URL
- 7. 忘记密码Codeigniter3
- 8. 如何比较Microsoft Access密码与用户提供的密码?
- 9. 用于忘记密码
- 10. 忘记我的密码git
- 11. 发送密码,如果用户忘记
- 12. 将md5加密的密码转换为解密的密码wordpress
- 13. 忘记密码没有更新加密码哈希
- 14. 未加密密码的加密密码用户群
- 15. iphone用户名密码MD5
- 16. 提供密码
- 17. 忘记SVN用户密码的XCode?
- 18. ASP.NET会员用户忘记密码
- 19. 使用用户密码进行加密
- 20. 如何在Codeigniter中为忘记密码生成随机密码
- 21. 使用Javascript加密密码
- 22. 在GPG中解密时提供密码
- 23. 使用md5散列密码
- 24. 用法:“EncryptUtil encrypt”密码密码:要加密的明文密码
- 25. 如何使用所有者密码解密PDF,但没有用户密码?
- 26. 我忘了密钥库密码
- 27. 忘记密码逻辑
- 28. CakePHP 2.4忘记密码
- 29. 在轨道忘记密码
- 30. 忘记了密码VBA
Oblig。 nitpick:MD5函数是* hashing * - 信息从结果中丢失,原始数据不可恢复。使用*加密* OTOH,可以使用正确的密钥完全恢复原始数据。 – Piskvor 2010-12-13 11:49:24
可能重复[是否可以解密md5哈希?](http://stackoverflow.com/questions/1240852/is-it-possible-to-decrypt-md5-hashes) – 2013-01-07 23:26:34