如果同一网站上的多个用户都使用相同的密码,他们的密码哈希是否相同?

信息安全 哈希
2021-08-10 14:14:26

我的基本知识假设是肯定的,除非网站以某种方式将用户名与密码一起包含在哈希函数中,但我不确定这是否是常见做法。

2个回答

这取决于他们是否添加单独的盐,或者他们是否使用普通盐(或根本不使用盐)。

如果他们使用单独的盐,那么它们会有所不同;否则,它们[可能]会是一样的。

与往常一样,值得一读的是Thomas Pornin 对 How to secure hash passwords 的规范回答,它提供了关于每个用户唯一加密随机盐的建议和解释,其中 PBKDF2、BCrypt 和 SCrypt 是首选算法,并且说盐是强制性的。

对于您的特定问题,只需阅读带有“密码”标签的 security.stackexchange.com 和 stackoverflow.com 问题,您很快就会发现没有标准的方法可以使用密码进行任何操作。

SCrypt 几乎是未知的。

BCrypt 主要保留给 PHP 5.5 及更高版本(以及带有 password_compat 的 5.3.7;有很多 PHP 人使用它,也有很多 PHP 人使用其他东西。

PBKDF2 几乎是其他所有人的好选择。

而且你仍然有其他迭代哈希方法的组合(通常有加盐错误)、哈希的单次迭代(通常有加盐错误)、未加盐的哈希,以及一遍又一遍的不要做戴夫的问题,一遍又一遍一遍又一遍。

所以不行; 在实际处理密码时,您应该假设 Dave 正在为您的网站编写代码。