パスワードのハッシュ化の仕組み

1.パスワードを決める

まずは、ハッシュ化するパスワードを決めましょう。暗号化やハッシュ化する前の人間が読める形のデータを「平文」と呼びます。

※実際に使用しているパスワードは入力しないでください!

2.ランダムな文字列(ソルト)を生成する

パスワードに追加するランダムな文字列を生成します。この文字列を「ソルト」と呼びます。ソルトを使うことで、同じパスワードでも異なるハッシュ値を生成し、安全性を高めることができます。

ハッシュ①
ハッシュ②
ハッシュ③

3.ソルトを利用してパスワードをハッシュ化する

生成されたソルトを使って平文のパスワードをハッシュ化します。これにより、パスワードはそのまま保存されず、ハッシュ値として保存されるため安全です。

元のパスワード×ソルト=ハッシュ値
ハッシュ①×=
ハッシュ②×=
ハッシュ③×=

4.データベースにはソルトとハッシュ値を結合して保存する

データベースには、生成したソルトとハッシュ値を結合して保存します。この方法により、同じパスワードであっても異なるソルトが使われている限り、ハッシュ値も異なります。

データベースに保存する形式
ハッシュ①
ハッシュ②
ハッシュ③

5.認証時にハッシュ値が一致するか確認する

データベースに保存されたデータからソルトを取り出し、入力されたパスワードで新たなハッシュ値を生成します。

再生成ハッシュ保存ハッシュ一致結果
ハッシュ①
ハッシュ②
ハッシュ③

注意事項

※あくまで教育目的で作成したハッシュ関数のため、セキュリティ的な効果や根拠はありません
※このページを参考にして生じた、いかなる障害に対しても責任を負いかねます
※このページでは、パスワードを入力しても記録等はされませんが、のぞき見などによるトラブル防止のため入力しないでください