gpt4 book ai didi

php - 密码盐存储

转载 作者:行者123 更新时间:2023-12-03 23:08:51 26 4
gpt4 key购买 nike

我想更新我目前仅使用 MD5 的密码设置。

现在我想做的是使用更强大的东西(可能是 sha256),每个用户都有独特的盐分。

问题是关于盐的储存。

我是否将盐存储在数据库中它自己的列中?

然后哈希盐+密码,当涉及到登录时,从数据库中调用盐和密码,生成一个。

或者我是通过使用用户名、电子邮件和时间戳来制作盐,这也会给我每个用户一个独特的盐?

我想知道,如果有人掌握了以 salt 作为列的数据库,他们就会知道每个用户的 salt,然后他们就可以破解密码。

最佳答案

盐不是 secret ,它可以与散列一起存储明文。甚至不需要在数据库中有第二个字段。如果您查看 PHP 的 crypt() 函数,您会发现盐值将包含在哈希值本身中。

让现有的彩虹表变得无用是盐的工作,因为必须为一种特定的盐构建彩虹表。对每个散列使用不同的盐可以防止彩虹表攻击,因为您必须为每个散列创建一个彩虹表。这就是为什么没有必要对盐保密。

我建议,如果您无论如何都想改进您的密码哈希系统,那么您应该做对,使用速度较慢的哈希函数。文章password hashes with bcrypt解释了为密码生成哈希值的要点。

  • 为每个密码而不是每个用户生成盐。
  • 使用随机(唯一)盐,而不是从其他参数派生的盐。
  • 使用慢散列函数。

最后但同样重要的是,不要害怕正确地执行它,您的应用程序代码可以像您当前使用 MD5 的实现一样简单。

关于php - 密码盐存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10752615/

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