ハッシュ化と暗号化の違い|SHA-256が推奨される理由

セキュリティ プログラミング 基礎知識
結論

「元に戻せるのが暗号化」「絶対に元に戻せないのがハッシュ化」。個人情報は暗号化、パスワードはハッシュ化して保存するのが鉄則です。

比較表

項目 ハッシュ化 / 暗号化
可逆性 不可逆(元に戻せない) / 可逆(戻せる)
主な用途 パスワード保存, データの改ざん検知 / メッセージの秘匿, 通信の保護
アルゴリズム例 SHA-256, Argon2, bcrypt / AES, RSA

🛡️ この場でハッシュ値を生成する

※ 入力時に自動で計算されます

SHA-256
SHA-384
SHA-512

なぜパスワードはハッシュ化するのか

もしデータベースが流出した際、パスワードが「暗号化」されて保存されていると、攻撃者が「鍵」も一緒に盗み出した場合にすべてのパスワードが復元されてしまいます。一方、「ハッシュ化」されていれば、管理者ですら元のパスワードを知ることができないため、流出時の被害を最小限に抑えられます。

SHA-256の現在

SHA-256は計算速度が非常に速いため、改ざん検知(ファイルの同一性チェック)には最適ですが、パスワード保存には「速すぎる」ことが弱点になる場合があります(攻撃者が高速に総当たりできてしまうため)。

そのため、現代のパスワード保存には bcryptArgon2 といった、意図的に計算負荷を高くしたアルゴリズムが推奨されています。ハッシュ化する際は、必ず「ソルト(Salt)」を加えて、レインボーテーブル攻撃(計算済みハッシュ一覧による逆引き)を防ぎましょう。