生成电子邮件时解密MySQL密码以通知用户密码

时间:2012-04-26 15:40:51

标签: mysql encryption passwords

我正在实施一个登录脚本,其中包括向用户发送用户名和密码(存​​储在MySQL数据库中)的功能,以防万一他们忘记了。该脚本的默认行为是发送用户名和 密码,即生成临时密码。

我想知道是否有办法只是通过电子邮件发送当前密码,这样用户就不必重置它了。目前密码已加密,但我无法弄清楚这是如何完成的。密码格式为:

* 2D4CE9DDA883E4FBE985A3439D9DCDCBD88367A0

因此,当我尝试发送当前密码时,会发送加密密码。

有没有办法在发送提醒电子邮件时解密密码,还是我必须保留原样?

谢谢,

尼克

2 个答案:

答案 0 :(得分:6)

你真的不应该这样做,即使有可能(我怀疑)。电子邮件非常不安全,用户倾向于重复使用密码:

  1. 用户提供了一个密码,并在包括您的一些网站上使用它
  2. 您发送了一封忘记密码的电子邮件,其中包含密码
  3. 攻击者intercepts该电子邮件,现在在他们使用的每个网站上都有用户密码
  4. 只需像其他人一样给他们一个新密码(并鼓励或要求他们在下次登录时更改密码)。

答案 1 :(得分:4)

密码可能是经过哈希处理的,而不是加密的。所以不,你不能解密它们。如果它们实际上是加密的,则需要密钥来解密它们。无论如何,哈希(SHA1最有可能)是更安全的方式。另请在此上下文中查看关键字“salt”。

只需为他们生成一个新的临时密码,并强制他们在首次登录后进行更改。这是通常的方式,这是有充分理由的。不要像一些大型软件公司那样,重视安全性。