Hash Salting
哈希加盐是在哈希输入中加入随机 salt 的技术,使相同输入产生不同哈希,抵御彩虹表与碰撞检测。
用途
使哈希输出唯一化,防止预计算攻击与相同输入比对。
机制
生成随机 salt,H(input || salt),存储 (salt, hash)。验证时用存储 salt 重新哈希比对。salt 无需保密但需唯一。用于密码哈希、HMAC(虽 HMAC 内含密钥)等场景。
用例
- 密码安全存储
- 令牌生成去重
- 数据指纹去重
- 防预计算攻击
示例
- 输入
pass1 + saltA → hashA; pass1 + saltB → hashB输出Same password, different hashesUnique salt
常见错误
- Salt too short (<16 bytes)
- Use at least 16 random bytes
相关词条
Salt
Salt 是密码哈希时加入的随机值,使相同密码产生不同哈希,抵御彩虹表与相同密码检测。 词汇表
Pepper
Pepper 是密码哈希时加入的服务器端秘密值(与 salt 不同,全局共享且保密),增加离线攻击难度。 词汇表
Rainbow Table
彩虹表是 Martin Hellman 改进的预计算表,用于反转哈希函数,以时间-空间折中以空间换时间破解密码哈希。 词汇表
PBKDF2
PBKDF2(Password-Based Key Derivation Function 2)是 PKCS#5 标准的 KDF,通过多次 HMAC 迭代从密码派生密钥,广泛用于密码哈希与密钥派生。 词汇表