如何在ORM中获取旧密码?

时间:2013-02-23 11:16:28

标签: php kohana kohana-orm kohana-3.2 kohana-auth

我需要一个旧密码(不是哈希)来发送给用户,但看不出好主意?我阅读了文档,只有一种方法可以获得哈希密码。如何获取真实密码?

4 个答案:

答案 0 :(得分:1)

密码在散列后永远不能恢复干净,大部分时间都不可能。我绝对建议您提供重置密码链接,而不是提供旧链接。

MD5,SHA1,SHA2,Blowfish和其他方面的哈希密码是加密的一种方式,这意味着你不应该解密它们因此使它们安全(第一个不是那个实际上是安全的,但这不是主题。)

答案 1 :(得分:0)

您无法获取原始密码;这是使用哈希的重点。

如果用户需要新密码,则生成一次性的,短命的随机字符串,并将其作为URL的一部分通过电子邮件发送给他们。当他们按照链接时,提示他们输入新密码。

有关如何尽可能安全地执行此操作的更多建议,请参阅the OWASP Forgot Password Cheat Sheet

答案 2 :(得分:0)

你做不到。 Kohana中的哈希密码很可能是使用单向加密加密的密码。我的意思是你不能解密它并以明文形式获取它。您不应以明文形式存储应用程序密码以保护用户。

http://en.wikipedia.org/wiki/Cryptographic_hash_function

您可能要为用户生成一个新的临时密码并将其发送给用户的电子邮件,但我认为重置密码链接是最佳解决方案。

答案 3 :(得分:0)

您无法恢复旧密码(未散列),因为它未存储在数据库中。仅存储其哈希值。哈希不能被解密(这就是为什么它被称为哈希)ORM使用这个模型来解决很多安全问题。

发送原始密码是真正的坏主意。 如果您仍想这样做:

  1. 如果您在注册期间自己生成密码(然后将其邮寄给用户,然后保存)
  2. 如果用户正在设置密码。你将它作为POST变量。将其保存到数据库时,也要将其邮寄。
  3. 如果用户使用忘记密码来恢复密码。然后首先重置密码(生成一个新密码并将其保存到数据库)并将其发送给用户。