密码哈希,登录时更新Salt和Hash,以及PHPass

时间:2012-08-26 03:22:50

标签: php hash passwords salt phpass

我记得在阅读有关检查密码的过程如下的方案:

  1. 在数据库中给出(hash,salt),
  2. 使用salt的哈希密码来检查哈希,
  3. 哈希密码,旧哈希为盐
  4. 在数据库中存储(新哈希,盐 a.k.a。旧哈希)。
  5. 我找不到原始来源。无论如何,我不明白

    1. 使用旧哈希作为盐的优势是什么(与使用随机盐相反),

    2. 这个方案的优势一般是什么(使彩虹表攻击更加复杂?),

    3. 如果 是一个优势,那么如何使用PHPass来应用该方案,因为盐似乎是在“PHP”内部管理...

    4. 直观地说,我认为这个方案最多不会做任何事情,或者恶化最坏的安全性(由于依赖于过去的值),但密码安全性是我不信任的一个领域我的直觉。请赐教。

      修改

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

1 个答案:

答案 0 :(得分:2)

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

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