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