我在某些情况下看到开发人员使用加密密钥(从config.php)到哈希密码并将其存储在数据库中。我想知道这样做是否更好,或者每次都通过创建一个随机盐(例如在函数中)更好?
嗯,我想在第一种情况下你不必在数据库中存储(和)盐,但它是否足够安全以及如果与密码匹配会怎么样?
答案 0 :(得分:3)
您使用salt来防止攻击者的暴力攻击在整个散列密码数据库中分摊。使用每个密码的唯一salt,即使相同的密码也会散列到不同的哈希值,从而迫使攻击者单独使用每个密码。通过使用静态盐(实际上称为 pepper )来区分它与真正的盐,相同的密码散列到相同的散列,因此允许攻击者以更快的速度暴力破解大量密码哈希(你不会相信有多少人使用“猴子”作为他们的密码)。
因此:
答案 1 :(得分:0)
确实,随机生成的盐会产生更大的安全性,但,任何能够访问密码列表以便破解它们的人都可以访问你的数据库,在这种情况下,他们可以访问你的盐。
答案 2 :(得分:-3)
而不是使用散列密码的任何大东西,使用MD5与salting和everythi