ハッシュ化と暗号化の違い|SHA-256が推奨される理由
セキュリティ プログラミング 基礎知識
結論
「元に戻せるのが暗号化」、「絶対に元に戻せないのがハッシュ化」。個人情報は暗号化、パスワードはハッシュ化して保存するのが鉄則です。
比較表
| 項目 | ハッシュ化 / 暗号化 |
|---|---|
| 可逆性 | 不可逆(元に戻せない) / 可逆(戻せる) |
| 主な用途 | パスワード保存, データの改ざん検知 / メッセージの秘匿, 通信の保護 |
| アルゴリズム例 | SHA-256, Argon2, bcrypt / AES, RSA |
🛡️ この場でハッシュ値を生成する
※ 入力時に自動で計算されます
SHA-256
SHA-384
SHA-512
なぜパスワードはハッシュ化するのか
もしデータベースが流出した際、パスワードが「暗号化」されて保存されていると、攻撃者が「鍵」も一緒に盗み出した場合にすべてのパスワードが復元されてしまいます。一方、「ハッシュ化」されていれば、管理者ですら元のパスワードを知ることができないため、流出時の被害を最小限に抑えられます。
SHA-256の現在
SHA-256は計算速度が非常に速いため、改ざん検知(ファイルの同一性チェック)には最適ですが、パスワード保存には「速すぎる」ことが弱点になる場合があります(攻撃者が高速に総当たりできてしまうため)。
そのため、現代のパスワード保存には bcrypt や Argon2 といった、意図的に計算負荷を高くしたアルゴリズムが推奨されています。ハッシュ化する際は、必ず「ソルト(Salt)」を加えて、レインボーテーブル攻撃(計算済みハッシュ一覧による逆引き)を防ぎましょう。