想知道每次更改密码时盐对于单个给定用户是否唯一是否重要,或者每次重用相同的盐是否不是什么大问题。
我目前每次给定用户更新密码时都会生成一个新的随机字符串作为盐。这样,每次用户有一个新密码时,他们也是一个盐变化。这很容易做到,为什么不呢。
嗯......这就是为什么。我需要存储以前的 X 密码以确保密码不会被重复使用。在过去(我最后一次为此编写代码时),我可以只存储以前的 MD5 哈希值,并将新的哈希值与该列表进行比较。好吧,既然我使用了每次盐都是唯一的加盐哈希,那么这些比较不再可能,因为不再知道以前的盐。
为了使该系统正常工作,我有两个选择:除了最终的哈希值之外,还存储盐的历史记录,或者在每次密码更新时为任何给定用户重复使用相同的盐。这些中的任何一个都可以让我建立可以与历史相提并论的价值观。
后者工作量少,但它是否失去任何力量?从实际的角度来看,我不认为它确实如此。以为我会在这里得到第二个意见。谢谢。
为了保持问题“可回答” - 为任何用户重复使用相同的盐是否会减少可接受的最小保护以保持可搜索的密码历史记录(以防止 pswd 回收)?