如果只存储密码哈希,用户输入原始密码,程序怎么知道它是正确的?我想它可以检查所有可能的盐,但如果有 32 位盐,那么程序必须检查所有 2^32 盐(最坏的情况),这似乎需要很长时间。
如何验证加盐密码?
信息安全
盐
2021-08-21 04:10:22
3个回答
如前所述,盐与哈希一起存储。盐主要用于保护您的哈希免受彩虹表攻击。换句话说,蛮力攻击不能提前运行
正如 lynks 所指出的,盐与哈希一起存储。盐的重点是使某人无法通过寻找与任何用户的哈希匹配的密码来攻击整个数据库。
例如,假设我有一个非常大的网站 A 的用户表,他们有 1 亿用户。如果他们使用的是 32 位散列(无论如何这根本不安全)并且每个用户都有一个解析为不同散列的密码,那么我只需要尝试大约 43 个密码就可以找到与某个用户匹配的密码。但是,如果每个人使用不同的盐,那么我必须单独攻击每个密码。