gpt4 book ai didi

php - 存储用户名和密码然后用户想要检索用户信息但密码已加密

转载 作者:行者123 更新时间:2023-12-01 00:12:56 25 4
gpt4 key购买 nike

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

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

如果有人能建议一种安全存储此信息的方法,我会很高兴,但如果我的某个用户忘记了他们的登录信息,我可以通过一种方式安全地通过电子邮件回复他们。或者像这样的问题现在是怎么处理的?
从我读到的内容来看,MD5 哈希已经被破解,所以更好的加密哈希或方法也会很好。

最佳答案

Then how am I supposed to Send the user their log in information if their password is encrypted and no way to decrypt it?

你不是。您永远不应将用户密码发送给他们。

如果用户想重置密码,那么:

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

And from what I read MD5 hash was hacked already so a better encrypting hash or method would be nice to.

参见 the PHP manual, this is a FAQ .

另请参阅,OWASP

关于php - 存储用户名和密码然后用户想要检索用户信息但密码已加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12915338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com