我的问题是:
不以明文的形式存储盐会失败的目的 盐(我听说很好)?我的印象是盐是一个额外的变量提供添加 蛮力或字典攻击的复杂性,通过导致任何尝试将正确的密码转换为密钥失败,除非提供正确的盐。在我看来,如果盐是已知的,攻击者可以使用正确的盐尝试每个密码。如果没有,为什么?
提前感谢您抽出宝贵时间回答我的问题。
答案 0 :(得分:9)
盐的目的是防止攻击者重复使用他的字典进行多个密文 透露盐没有错。
相反,你应该确保你的盐永远不会被另一个密文重用 为此,您应该使用安全随机数生成器创建盐。
答案 1 :(得分:3)
不存储盐作为明文会失去盐的目的(我听说这样做很好)?
为什么要用盐? 要安全地存储密码,请对它们进然后存储这些哈希的列表。当你知道Hash时,很难找到原始密码。
假设您是一个已经检索过散列密码列表的攻击者。你可以拿一些咒语。您可以尝试将一些密码密码散列为:“password”,“qwerty”,...然后搜索匹配的散列密码列表。您可以正确猜出单个密码的可能性非常高。
盐是一种阻止你这样做的技术。当你想猜一个。例如:采取“qwerty”。你应该哈希“qwerty”+盐。这对每个用户都是不同的。是什么让猜测密码变得更加困难。
简单地说:将盐作为纯文本存储是非常安全的。