彩虹表是一个用于加密散列函数逆运算的预先计算好的表，常用于破解加密过的密码散列。 彩虹表常常用于破解长度固定且包含的字符范围固定的密码（如信用卡、数字等）。这是的典型实践，比暴力破解（Brute-force attack）使用的时间更少，空间更多；但与储存密码空间中的每一个密码及其对应的哈希值（Hash）实现的查找表相比，其花费的时间更多，空间更少。使用加盐的密钥派生函数可以使这种攻击难以实现。彩虹表是马丁·赫尔曼早期提出的简单算法的应用。
背景.每一台需要密码认证的计算机都包