レインボーテーブル
処理の例として、ハッシュ値 re3xes から対応する平文を探す処理を考える。
ハッシュ値 re3xes に対して最後の還元関数を使い、長さ1のチェインを作成する。そこで得られた平文 (rambo) が、テーブルに格納されているチェインの末尾の平文の中にないか探す(ステップ 1)。
もし見つからなければ(rambo がテーブル中になければ)、最後から還元関数2つ分の処理を行い、長さ2のチェインを作成する。そして、テーブルに格納されているチェインの末尾の平文の中に、作成したチェインの末尾の平文と合致するものがないか探す(ステップ 2)。
それでも見つからなければ、還元関数3つ分、4つ分......と、平文が見つかるか、チェインの長さがテーブル中のチェインの長さを超えるまで続ける。平文が見つからなければ、攻撃は失敗である。
合致する平文が見つかったら(ステップ3、linux23がテーブル中にある)、linux23 を含むチェインの先頭の平文をテーブルから取得する。
テーブルから取得した平文 passwd で始まるチェインを作成し(ステップ4)、そのチェイン中にハッシュ値 re3xes がないか探す。ハッシュ値が見つかれば、その手前の平文 (culture) が対応する平文であると分かる(攻撃は成功)。