密码散列、登录时更新Salt和散列以及PHPass

密码散列、登录时更新Salt和散列以及PHPass,php,hash,passwords,salt,phpass,Php,Hash,Passwords,Salt,Phpass,我记得读过一个方案,其中检查密码的过程如下: 在数据库中给定(哈希,salt) 用salt散列密码以检查散列 使用旧哈希作为salt的哈希密码 在数据库中存储(新哈希,salt,也称为旧哈希) 我找不到原始来源。无论如何,我不明白 使用旧散列作为盐的优点是什么(与使用随机盐相反) 该方案的总体优势是什么(使彩虹表攻击更加复杂?),以及 如果有优势,那么如何使用PHPass应用该方案,因为盐似乎是“在”PHPass内管理的 直觉上,我认为这个方案充其量不会起什么作用,或者在最坏的情况下会恶化安全性

我记得读过一个方案,其中检查密码的过程如下:

  • 在数据库中给定(哈希,salt)
  • 用salt散列密码以检查散列
  • 使用旧哈希作为salt的哈希密码
  • 在数据库中存储(新哈希,salt,也称为旧哈希)
  • 我找不到原始来源。无论如何,我不明白

  • 使用旧散列作为盐的优点是什么(与使用随机盐相反)

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

  • 如果有优势,那么如何使用PHPass应用该方案,因为盐似乎是“在”PHPass内管理的

  • 直觉上,我认为这个方案充其量不会起什么作用,或者在最坏的情况下会恶化安全性(由于依赖于过去的值),但密码安全性是我不相信直觉的一个方面。请开导我

    编辑:

    我在问关于在每次支票上重新散列密码的问题。这些类似的问题确实回答了第一个问题,即使用散列作为salt是无用的,但不是在每次检查时重新散列是否有用:


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

    只要使用一种好的随机生成的盐,
    正如你所说,PHPPass在内部处理它,PHPass被认为是一个非常好的工具,因为它已经被许多安全专家审查过。

    去年在S.O上被问了不下一百次。可能是@Dagon的重复-我不这么认为。我问的是每次完全更改散列值的好处,而您提供的链接似乎更多地是关于salt的前后处理。我发现了这些内容,但它们也不是完全重复的:(此内容不是在每次登录时重新散列),(此内容也不是)。