【问题标题】:Does a salt have to be random? [duplicate]盐必须是随机的吗? [复制]
【发布时间】:2013-04-23 14:31:10
【问题描述】:

我不明白为什么盐必须是随机生成的,而不仅仅是唯一的。例如,如果您有一个带有 user_id 列(唯一)的表,您就不能将其附加到 salt 的密码上吗?


Jean-Bernard Pellerin 是正确的,这是 https://stackoverflow.com/a/536756/516813 的副本。我在搜索中找不到,我正在结束这个问题。仅供参考,该答案表明主要要求是唯一性。

【问题讨论】:

  • @Jean-BernardPellerin 很好,先生,我在搜索中没有找到。

标签: security passwords salt


【解决方案1】:

是的,你可以,但这会削弱盐的力量。好盐很长,很难猜。好的随机数符合这些标准,这就是使用它们的原因。

【讨论】:

  • 为什么猜盐的能力很重要?盐的目的只是阻止彩虹表攻击(这也是通过这个来完成的)。
【解决方案2】:
  1. 用户 ID 不太可能长到足以阻止好的彩虹表

  2. 只要密码更改,盐就应该更改。
    (防止攻击者知道用户是否将密码改回了之前的密码)

【讨论】:

  • 1.为什么它不会阻止一个好的彩虹表(现在有额外的数据被附加到密码上,任何反对结果的彩虹表都不会让你得到原始密码(因为额外的添加))? 2. 当你的算法是 bcrypt 时这有关系吗(对相同的密码产生不同的输出)?
  • 1:攻击者知道用户 ID 是什么,因此他可以删除该数据。加盐的目的是使明文足够长且随机,彩虹表根本不会破解它。
  • 2:bcrypt 生成自己的随机盐,并将其存储在哈希中,因此您的整个问题不适用。
  • 1:什么?他怎么能“删除那些数据”? PRECOMPUTED 表不会将所有用户 ID 的集合添加到可能的密码之前(该表将是 huuuuuge!)。 2:公平点。
  • @chacham15:1:不一定。彩虹桌很大;他们完全有可能拥有带有数字的通用密码。
猜你喜欢
  • 1970-01-01
  • 2015-03-27
  • 2021-02-09
  • 1970-01-01
  • 2022-07-14
  • 2010-10-17
  • 2021-09-12
  • 2012-07-05
相关资源
最近更新 更多