尽管目前存储密码的建议是使用慢速密钥导出函数,例如 Argon2、scrypt、PBKDF2 或 bcrypt 1,但许多网站仍然使用传统hash(password + salt)
方法,其中 MD5、SHA-1 和 SHA-256 是最常用的使用哈希函数。
mySuperSecretPassword123
加盐的 SHA-1 哈希!8(L-_20hs
是E5D0BEE0300BF17508CABA842084753685781907
.
假设攻击者将窃取盐和哈希的前半部分,所以E5D0BEE0300BF17508CA
. 我们还假设攻击者知道正在使用 SHA-1 以及盐和密码是如何连接的。
攻击者恢复原始密码有多难?
1 bcrypt在技术上不是密钥派生函数,但就这个问题而言,它的功能相同。