我不喜欢这个主意。但我无法提出反对它的技术论据。有人可以向我解释吗?基本思想是:
$passwd = 'foo';
$salt = hash($passwd);
$finalHash = hash($passwd . $salt);
$finalHash 将存储在数据库中。我确实理解具有相同密码“foo”的两个用户将具有相同的哈希值。但这只是该计划的一个弱点。这种碰撞虽然很危险,但并不是我们使用带哈希的盐的主要原因。但到目前为止,这是我提出的唯一技术反对意见来反对这一点。
我的理解是盐应该是随机的,并且对于哈希的每次使用都应该是唯一的。而且这个方案似乎违反了这两个要求。但我无法弄清楚攻击者如何从这种看似有缺陷的加盐哈希使用中受益。