彩虹表(RainbowTable),是一种破解哈希算法的技术[1],即是一个用于加密散列函数逆运算的预先计算好的表,为破解密码的散列值(或称哈希值、微缩图、摘要、指纹、哈希密文)而准备[2]。
彩虹表技术首先使用一定的字符集生成特定长度的密码字典,然后计算出所有密码的哈希值并保存为彩虹表文件,当破解哈希值的时候,直接查询哈希值获取对应的明文[1]。一般主流的彩虹表都在100GB以上,常用于恢复由有限集字符组成的固定长度的纯文本密码[2]。
背景
为了保证后台数据安全,现在的做法都是使用哈希彩虹表 3倍减少查询时间算法对明文密码进行加密后存储。由于哈希算法不可逆向,因此由密码逆向出明文运算就成了不可能。