ソルトはパスワードごとにランダムに生成される。よくある方法では、ソルトと平文のパスワード(または、ソルトとキーストレッチを施したあとのパスワード)を文字列結合した上で、暗号学的ハッシュ関数に入力し、その出力をソルトとともにデータベースへ保存する(平文のパスワードは保存しない)。パスワードをハッシュ化することで、認証にあたって平文のパスワードを保存しておく必要がなくなる。これにより、保存していた認証情報が漏洩しても、平文のパスワードが漏れることはなくなる。ソルトを使うことで、辞書攻撃やレインボーテーブルを使った攻撃に対抗できる。ソルトの値は人間が記憶しておく必要はないため、ユーザーの負担を増やさずに、攻撃を成功させるために必要なレインボーテーブルのサイズを実現不可能なほど大きくできる。ソルトには毎回異なる値が使われるため、よく使われるパスワードを使っていた場合や、いろいろなサイトでパスワードを使い回していた場合でも、ソルトを加えたハッシュ値はそれぞれ別々になる。使用例.ソルトを使ってパスワードを保存する手順の概要を、例をもとに示す。上のテーブルで示したように、ソルトの値が異なると、平文のパスワードが同じであっても、作られるハッシュ値はまったく別になる。加えて、攻撃者がハッシュ値を事前に計算しておくことも難しくなるため、辞書攻撃の効果も低減できる。ただし、よく使われるパスワードや、簡単に推測できるパスワードに対しては、ソルトは効果がない。よくある誤用.ソルトの再利用.プログラマがパスワードをハッシュ化する際に毎回同じソルトを使用するケース。この場合でも、既存のレインボーテーブルを無効化することはできる(ソルトの値が適切であれば)。ただし、広く使われている製品にソルトがハードコーディングされると、そこから抽出したソルトを使って新しいレインボーテーブルを生成できてしまう。また、ソルトが固定だと、パスワードが同じユーザーはハッシュ値も同じになってしまう(ハッシュ値を作る際にユーザ名を混ぜ込んでいる場合を除く)。これにより、一つのハッシュ値で複数のユーザーを攻撃するのが容易になってしまう。短すぎるソルト.