これは一般に「レインボーテーブル」と呼ばれる攻撃手法です。 こういった攻撃手法に対応すべく、ハッシュ化にはいくつかの工夫がされるのが一般的です。 ソルト Salt(ソルト)はハッシュ化される前の文字列(平文)に付随される任意の文字列です。 例えば、パスワードをハッシュ化するにあたり「ユーザID」をSaltとして使うことで 「同じabcdefgというパスワードを設定しているユーザがいても、出力されるハッシュ値が異なる」 という状態にすることができます。 こうすることで先のレインボーテーブル上にpasswordやadminといったよく使われるパスワードの平文とハッシュ値があったとしても、実際のパスワードの推測がしにくくなります。 ペッパー Saltはその性質上、ハッシュ値と対応して管理されていることが多いです。 上記の例でいうところの、「パスワードのハッシュ値」と「ユーザID」はおそらく同じテ