gpt4 book ai didi

security - 为什么对散列密码加盐可以提高安全性?

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

我一直在进行一些有关在数据库中安全存储密码的研究。通常建议您使用盐。正如 Secure hash and salt for PHP passwords 中的答案之一所解释的那样,这会改变哈希值,使密码更难以泄露。

作为验证机制的一部分,用户输入的密码将与盐结合并根据需要进行哈希处理。鉴于盐对用户来说是透明的,那么使用盐如何提供任何额外的好处?

正如我所见,无论有没有散列,相同的密码都将成功地对您进行身份验证,因为使其不同的管道将在幕后进行。这就是为什么到目前为止我读过的文章都没有澄清一些事情。

最佳答案

考虑一个场景,您接受用户的密码,并通过网络发送该密码或以纯文本形式存储在数据库中。

如果您的用户输入密码,请输入 6-8 个字符长的密码。黑客可能会为所有可能的 6-8 个字符长度的字符串预先生成哈希值,并且他可以通过将其与您的哈希值进行比较来推断出密码。(将您的哈希值与所有预先生成的哈希值进行匹配,他可以得到一组可能的候选者,如果发生冲突)

但是如果你在他的纯文本密码中附加一个 30 个字符的盐,然后对其进行哈希处理。对于任何黑客来说,预先生成该范围的所有可能组合都变得非常困难。这就是我们使用盐的主要原因。

出于安全目的,您不能限制每个用户输入 30 个字符长的密码。如果任何用户选择 4 个字符长度的密码,只需添加 30 个字符的盐即可使其更安全。

关于security - 为什么对散列密码加盐可以提高安全性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8596413/

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