Blowfish では、ハッシュからソルトを抽出できるため、ソルトを保存する意味は何ですか?
$hash = crypt($password, $salt);
使用できるハッシュを取得するには
substr($hash, 0, 28)
また
substr($hash, 0, 29)
ただし、ドットがソルトからのものなのか、ハッシュされたパスワードからのものなのかはわかりません。
「虹のテーブル」の攻撃をより難しくするために、ソルト値が使用されます。ランダムソルトがなければ、パスワードは常に同じハッシュを生成します。これらのハッシュでいっぱいのパスワードデータベースを「取得」できれば、たとえば最も使用されている上位 100 個のパスワードの既知のハッシュを簡単にチェックできます。ソルトを使用すると、もちろんそれらも試すことができますが、ソルトごとにハッシュ関数を呼び出す必要があり、ブルートフォース攻撃を困難にするためにハッシュ関数が「遅く」なるように設計されているため、これには多くの時間がかかります。