パスワードクラック
事前計算とメモ化の長所は、ハッシュの過程をランダム化することで打ち消すことができる。この仕組みはソルトと呼ばれる。ユーザがパスワードを設定する際、「ソルト」(salt; 塩)という短いランダムな文字列をパスワードの末尾に加えた上で暗号化するのである。ソルトは、認証の際に利用できるよう、暗号化したパスワードと共に保管される。通常、ソルトはユーザ毎に異なるため、各パスワード候補のハッシュ値を一個しか計算していない事前計算リストはもはや役に立たない。初期の Unix システムは 12 ビットのソルトを使っていた。それでも攻撃者は、よく使われるパスワードについては 12 ビットのソルトからなる全 4096 パターンのリストを作っていた。しかしソルトが充分な長さを持っているならば、考えうるパターンは膨大なものになり、攻撃者は各ユーザの各パスワード候補ごとに暗号化を試さなければならなくなる。md5-crypt や bcrypt といった現代的な手法は、それぞれ 48 ビット、128 ビットのソルトを使っている。