存储用户名和密码然后用户想要检索用户信息但密码是加密的

Csa*_*oli 0 php mysql hash

所以我已经学习了很多关于PHP和Mysql的知识,我对此感到疑惑.假设我打算创建一个只存储用户名和密码的数据库(保持示例简单).我知道在不加密密码的情况下存储密码是不安全的,因为有人可能会侵入数据库.
因此,我使用MD5哈希或更安全的东西并存储加密的密码,然后我的一个用户忘记了他们的登录信息,他们想通过电子邮件检索它.

如果我使用像MD5这样的单向加密方法或更好的加密方法,如果密码是加密的并且无法解密,我应该如何向用户发送他们的登录信息?
我想为此目的(我的意思是检索部分)是否有另一种方式,或至少另一个地方,密码存储只是为了这个?

如果有人能建议一种安全存储这些信息的方法,我会很高兴,但是如果我的一个用户忘记了他们的登录信息,我就有办法安全地给他们发电子邮件.或者现在如何解决这样的问题呢?
从我所看到的MD5哈希已经被黑客入侵,所以更好的加密哈希或方法也会很好.

Que*_*tin 5

那么如果他们的密码是加密的并且无法解密,我应该如何向用户发送他们的登录信息?

你不是.您永远不应该向他们发送用户密码.

如果用户想要重置密码,则:

  1. 生成随机令牌
  2. 将该令牌存储在具有时间戳和用户ID的数据库中
  3. 将令牌通过电子邮件发送给用户
  4. 当用户使用令牌访问页面时,允许他们输入新密码
  5. 使用后删除令牌
  6. 如果在一段时间内未使用该令牌(例如3小时),请将其删除

从我读到的MD5哈希已被黑客入侵,所以一个更好的加密哈希或方法将是不错的.

请参阅PHP手册,这是一个FAQ.

另见OWASP