1

我记得读过一个方案,其中检查密码的过程是这样的:

  1. 在数据库中给定(哈希,盐),
  2. 带盐的哈希密码以检查哈希,
  3. 以旧哈希为 salt 的哈希密码,
  4. 在数据库中存储(新哈希,盐又名旧哈希)。

我找不到原始来源。无论如何,我不明白

  1. 使用旧哈希作为盐有什么好处(而不是使用随机盐),

  2. 该方案的总体优势是什么(使彩虹表攻击更加复杂?),以及

  3. 如果有优势,人们将如何使用 PHPass 应用该方案,因为盐似乎是在“内部”PHPass 中管理的......

直觉上,我认为这个方案充其量不会做任何事情,或者在最坏的情况下会恶化安全性(由于对过去值的依赖),但密码安全性是我不相信我的直觉的一个领域。请赐教。

编辑:

我问的是在每张支票上重新散列密码。这些类似的问题确实回答了第一个问题——使用哈希作为盐是没有用的——但不是在每次检查时重新哈希是否有用:

4

1 回答 1

2

我不是安全专家,但回答 #1 没有任何优势。它所做的只是使事情进一步复杂化。

只需使用一个好的随机生成的盐,就像你说的,PHPPass 在内部处理它,并且 PHPPass 被认为是一个非常好的工具,因为它已经被许多安全专家审查过。

于 2012-08-26T03:56:41.170 回答