hash - 为什么要吃好盐?

标签 hash passwords salt

假设我们不使用 password_hash并使用 crypt()sha512而不是散列密码。我们需要在密码中加盐,这样攻击者就不能使用彩虹表攻击。为什么盐必须是好的并且非常随机,如许多 SO 答案中所述?即使 salt 有一点不同或不是很随机,它仍然会给出与其他人完全不同的哈希值。因此,攻击者不会知道谁使用了相同的密码,而且他仍然无法只创建一张彩虹表。

最佳答案

计算和存储强盐需要最少的努力,但减少了使用天文数字小的盐预先计算彩虹表的机会。

如果盐是一个 3 位数字,攻击者可以为所有可能的盐组合预先计算彩虹表。如果盐是一个随机的 24 个字符的字母数字字符串,那么攻击者可以为所有可能的盐预先计算它的可能性几乎为零。

关于hash - 为什么要吃好盐?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19137090/

相关文章:

javascript - HTML:密码字段问题中的 HTML5 占位符属性 - 显示正常文本?

php - 盐和密码

php - 如何使用PHP的password_hash来哈希和验证密码

ruby - 我如何将此 Ruby 散列转换为数组?

c# - 如何使用 C# 密码学检索签名哈希算法友好名称?

PHP -> 正则表达式 |密码验证不起作用

iOS 密码自动填充建议新密码而不是现有密码

encryption - 盐可以防止字典或暴力攻击吗?

c++ - C++中哈希表的实现

jQuery 从 url 哈希中查找属性