Entry № 1075
盐(Salt)
盐(Salt) 是什么?
盐(Salt)在口令哈希之前与之拼接的唯一随机值,用于抵御彩虹表并使每个用户的哈希都不同。
密码学盐是一段不需要保密的随机值,在将口令送入 Argon2、scrypt、bcrypt 或 PBKDF2 等哈希函数或 KDF 前与之混合。盐让使用相同口令的两个用户最终得到不同的存储哈希,从而粉碎预计算彩虹表,并迫使大规模攻击只能逐用户线性进行。它至少应当 16 字节,使用密码学安全的 RNG 生成,每个凭证唯一,并与哈希一起存储;它本身无需保密。现代口令哈希格式(PHC 字符串,如 $argon2id$...、$2b$...、$scrypt$...)会直接内嵌盐。HKDF 与某些随机化的公钥加密方案也使用盐来实现同样的多样化目的。
● 示例
- 01
形如 $argon2id$v=19$m=65536,t=3,p=1$<base64-盐>$<base64-哈希> 的 Argon2id 哈希。
- 02
每个用户在注册时生成的唯一 16 字节随机盐。
● 常见问题
盐(Salt) 是什么?
在口令哈希之前与之拼接的唯一随机值,用于抵御彩虹表并使每个用户的哈希都不同。 它属于网络安全的 密码学 分类。
盐(Salt) 是什么意思?
在口令哈希之前与之拼接的唯一随机值,用于抵御彩虹表并使每个用户的哈希都不同。
如何防御 盐(Salt)?
针对 盐(Salt) 的防御通常结合技术控制与运营实践,详见上方完整定义。
盐(Salt) 还有哪些其他名称?
常见的别称包括: 密码学盐, 口令盐。