Rainbow Table
彩虹表是 Martin Hellman 改进的预计算表,用于反转哈希函数,以时间-空间折中以空间换时间破解密码哈希。
用途
通过预计算哈希链大幅减少存储,在时间-空间折中下高效破解无 salt 的密码哈希。
机制
预计算若干哈希链:从起点反复哈希-归约得到终点,仅存起终点。查找时从目标哈希反复归约-哈希匹配终点,再从起点重建链找原像。salt 使每用户需独立彩虹表,使预计算不可行。
用例
- 破解无 salt 的 LM/NTLM 哈希
- 密码哈希安全教学
- Ophcrack 工具
- 安全审计
示例
- 输入
MD5 without salt输出8-character alphabetic password cracked in secondsSalt defeats rainbow tables
常见错误
- Storing password hashes without salt
- Unique per-user salt + slow hash