使用 PHP 的 sha256 哈希方法时如何比较用户输入与数据库密码?

发布于 2024-10-18 02:13:55 字数 272 浏览 4 评论 0原文

假设我设置了这样的新用户密码:

$salt = random_string(40) // some method that spits out a random
                          // 40 alpha-numeric character string

$password = hash('sha256', $_POST['password'] . $salt);

当用户想要登录时,如何将用户输入与其散列数据库密码进行比较?

Say I set a new users password like this:

$salt = random_string(40) // some method that spits out a random
                          // 40 alpha-numeric character string

$password = hash('sha256', $_POST['password'] . $salt);

How do I then compare the users input to his hashed db password when he wants to log in?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

总攻大人 2024-10-25 02:13:55

登录时,

  1. 获取密码哈希值和您在注册时存储在数据库中的盐(使用帐户名或电子邮件地址)
  2. 使用相同的方法和相同的盐对提供的密码进行哈希值
  3. 将您获得的哈希值与哈希值进行比较你存储了。如果它们相同,则密码匹配。

这里的关键是储存盐。

At login time,

  1. Fetch the password hash and the salt you stored in the database at registration time (using the account name, or email-address)
  2. Hash the provided password with the same method and the same salt
  3. Compare the hash you get with the hash you stored. If they are the same, the password matches.

The key here is to store the salt.

比忠 2024-10-25 02:13:55

存储盐后,您可以对用户发布的内容应用相同的算法,并将结果与​​存储的密码进行比较。

having stored the salt, you apply the same algorithm to what the user posts and compare the results with the stored password.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文