1

我无法将用户的密码发送到他的电子邮件。一切正常,但问题是,密码是 md5 散列的,当我将密码发送给用户时,散列的 md5 密码似乎不是原始密码。我想在保持密码散列的同时发送原件, 我该怎么做?

4

4 回答 4

2

将密码保存到数据库后,您将永远无法以纯文本形式恢复密码;我们准确地对密码进行哈希处理以使其正确。如果用户忘记了他的密码,发送一个链接到注册的电子邮件来重置它并覆盖数据库上的旧密码。

于 2012-10-20T05:19:55.600 回答
1

在这种情况下,您可以使用 SHA1 算法。在 MD5 中,您可以编码,但不能使用任何算法进行解码。

于 2012-10-20T05:47:48.087 回答
0

允许他使用发送到他的电子邮件的“特殊”链接来重置密码。一旦他点击了那个链接——更新数据库说他已经点击了这个链接(因此过期),然后让他回答一个“重置”问题,比如他的出生日期或他输入的电话号码。或其他一些问题。

之后,让他选择一个新密码——你就完成了。

于 2012-10-20T05:58:28.517 回答
0

不允许您解码 md5 字符串。所以最好的选择是用安全问题或类似的方法再次验证用户并让他重置密码。除此之外,这是一种更好的做法,因为用户可能在许多地方使用了相同的密码。

或者,您可以自己重置用户的密码。只需使用随机字符串或您自己的字符串,然后输入 md5 并更新密码。然后您可以将该随机字符串或您设置的字符串发送给用户。

希望这可以帮助

于 2012-10-20T11:33:58.853 回答