まずは、ハッシュ化するパスワードを決めましょう。暗号化やハッシュ化する前の人間が読める形のデータを「平文」と呼びます。
※実際に使用しているパスワードは入力しないでください!
パスワードに追加するランダムな文字列を生成します。この文字列を「ソルト」と呼びます。ソルトを使うことで、同じパスワードでも異なるハッシュ値を生成し、安全性を高めることができます。
ハッシュ① | |
---|---|
ハッシュ② | |
ハッシュ③ |
生成されたソルトを使って平文のパスワードをハッシュ化します。これにより、パスワードはそのまま保存されず、ハッシュ値として保存されるため安全です。
元のパスワード | × | ソルト | = | ハッシュ値 | |
---|---|---|---|---|---|
ハッシュ① | × | = | |||
ハッシュ② | × | = | |||
ハッシュ③ | × | = |
データベースには、生成したソルトとハッシュ値を結合して保存します。この方法により、同じパスワードであっても異なるソルトが使われている限り、ハッシュ値も異なります。
データベースに保存する形式 | |
---|---|
ハッシュ① | |
ハッシュ② | |
ハッシュ③ |
データベースに保存されたデータからソルトを取り出し、入力されたパスワードで新たなハッシュ値を生成します。
再生成ハッシュ | 保存ハッシュ | 一致結果 | |
---|---|---|---|
ハッシュ① | |||
ハッシュ② | |||
ハッシュ③ |