gpt4 book ai didi

php - 如何在数据库和 Cookie 中存储密码 (PHP/MySQL)

转载 作者:搜寻专家 更新时间:2023-10-30 20:00:56 26 4
gpt4 key购买 nike

已阅读this article以及许多其他人关于如何在数据库和 cookie 中存储密码,我现在想知道如何我应该这样做...

到目前为止(在阅读了一些内容之后)我得到的是获取明文用户密码,用盐填充它直到它填满 512 位(64 字节 => 64 个字符,因为页面是非-unicode),然后做

$pwhash = hash('sha512', $saltedpw);
for ($i=0; $i<1000; $i++)
$pwhash = hash('sha512', $pwhash);

然后我会将 (UserName, HashedPw, Salt) 存储在数据库中,但是我如何处理 cookie(以识别在 session 过期后想要保持登录状态的用户)?

最佳答案

首先,调用 hash 1000 次没有任何帮助,一次就足够了。

要在 cookie 中记住用户登录信息,您有两种选择:

  1. 如前所述,您可以生成随机 token 并将其与用户信息一起存储在数据库中。当没有 session cookie 的用户进入站点时,您检查是否有带有 token 的 cookie 并进行数据库查找。如果您发现具有此类 token 的用户,请让他们登录。您可能需要做一些额外的检查,例如当前 IP 是否与他们首次登录时的 IP 相同。
  2. 您可以将用户 ID 存储在 cookie 中,但是您必须使用 key 对数据进行签名以确保用户不能随意修改它。 HMAC -SHA-1 是一个很好的方法。优点是您不必在数据库中存储任何其他数据。您只需验证签名并查找用户 ID。缺点是您必须确保签名代码是安全的(具有更长 key 的 HMAC-SHA-1 应该这样做)。

关于php - 如何在数据库和 Cookie 中存储密码 (PHP/MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1514282/

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