CyberGlossary

密码学

盐(Salt)

别称: 密码学盐, 口令盐

定义

在口令哈希之前与之拼接的唯一随机值,用于抵御彩虹表并使每个用户的哈希都不同。

密码学盐是一段不需要保密的随机值,在将口令送入 Argon2、scrypt、bcrypt 或 PBKDF2 等哈希函数或 KDF 前与之混合。盐让使用相同口令的两个用户最终得到不同的存储哈希,从而粉碎预计算彩虹表,并迫使大规模攻击只能逐用户线性进行。它至少应当 16 字节,使用密码学安全的 RNG 生成,每个凭证唯一,并与哈希一起存储;它本身无需保密。现代口令哈希格式(PHC 字符串,如 $argon2id$...、$2b$...、$scrypt$...)会直接内嵌盐。HKDF 与某些随机化的公钥加密方案也使用盐来实现同样的多样化目的。

示例

  • 形如 $argon2id$v=19$m=65536,t=3,p=1$<base64-盐>$<base64-哈希> 的 Argon2id 哈希。
  • 每个用户在注册时生成的唯一 16 字节随机盐。

相关术语