1

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

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

*2D4CE9DDA883E4FBE985A3439D9DCDCBD88367A0

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

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

谢谢,

缺口

4

2 回答 2

6

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

  1. 用户想出一个密码并在包括你的网站在内的一堆网站上使用它
  2. 您发送一封忘记密码的电子邮件,其中包含他们的密码
  3. 攻击者拦截了该电子邮件,现在在他们使用的每个站点上都有用户密码

只需像其他人一样给他们一个新密码(并鼓励或要求他们在下次登录时更改密码)。

于 2012-04-26T15:42:59.023 回答
4

密码可能是散列的,而不是加密的。所以不,你不能解密它们。如果它们实际上是加密的,则需要密钥来解密它们。无论如何,散列(很可能是 SHA1)是更安全的方式。还要在这种情况下查看关键字“盐”。

只需为他们生成一个新的临时密码并强制他们在第一次登录后更改它。这是有充分理由的常用方法。不要像一些大型软件公司一样,重视舒适而不是安全。

于 2012-04-26T15:44:51.857 回答