レインボーテーブル
ここで、各チェインの先頭になる平文 Pi, Pj, Pk, ...... は、他のチェインの内容と重複しないように適当に選択する。チェインの長さは任意であり、また各チェインの長さが異なっていてもよい。ここでは説明のため、全てのチェインの長さが同じとして考える。
チェインを作成したら、チェインの先頭にある平文 Pi, Pj, Pk, ...... と、チェインの末尾にあるハッシュ値 Ci+m-1, Cj+m-1, Ck+m-1, ...... だけを結果として記録しておく(記憶域を削減する)。
ハッシュ値から平文を得るには、パスワードが知りたいハッシュ値 Cx を還元関数とハッシュ関数に次々に通していき、その都度 Ci+m-1, Cj+m-1, Ck+m-1, ...... と比較を行えばよい。もし一致するものが見つかれば、対応する Pi, Pj, Pk, ...... からチェインを復元する。
この方法を使うと、記録しておく平文とハッシュ値の個数は、チェインの長さを m とすれば、最初の方法の 1⁄m になる。