用語比較
ハッシュと暗号化の違い
ハッシュは一方向で元に戻せない、暗号化は鍵があれば元に戻せる。パスワードはハッシュ、機密データは暗号化、というのが基本。
- 難易度
- 初級
- 想定読者
- 開発者・情報処理試験受験者・初心者
- 所要時間
- 約7分
ハッシュ関数とは
任意長の入力から固定長の出力を計算する一方向関数。SHA-256, BLAKE3 などが代表例。
暗号化とは
鍵を使って元データを復元可能な形に変換する処理。AES, RSA などが代表例。
違いの比較表
| 比較軸 | ハッシュ関数 | 暗号化 |
|---|---|---|
| 可逆性 | 不可逆(元データを取り戻せない) | 鍵があれば復号可能 |
| 主用途 | 改ざん検知、パスワード保存、署名対象 | データ機密性の保護 |
| 鍵 | 不要(HMACなら鍵あり) | 必須 |
| 誤用例 | パスワードのMD5/SHA-1単独保存 | パスワードをそのまま暗号化して保存 |
使い分け
- パスワード保存は bcrypt / scrypt / argon2 のような遅いハッシュを使う
- ファイル改ざん検知には SHA-256 などのハッシュを使う
- 機密データのDB保存は AES-GCM 等で暗号化する
よくある誤解
- ハッシュ化したから元に戻せない、はソルトなし時には総当たりされる
- パスワードを暗号化して保存すれば安全、というのは誤り
- MD5/SHA-1で十分、というのは現在では不適切
よくある質問
ハッシュ関数と暗号化の違いは?
ハッシュは一方向で元に戻せない、暗号化は鍵があれば元に戻せる。パスワードはハッシュ、機密データは暗号化、というのが基本。
ハッシュ関数とは?
任意長の入力から固定長の出力を計算する一方向関数。SHA-256, BLAKE3 などが代表例。
暗号化とは?
鍵を使って元データを復元可能な形に変換する処理。AES, RSA などが代表例。
ハッシュ関数と暗号化はどう使い分ける?
パスワード保存は bcrypt / scrypt / argon2 のような遅いハッシュを使う ファイル改ざん検知には SHA-256 などのハッシュを使う 機密データのDB保存は AES-GCM 等で暗号化する
ハッシュ関数と暗号化でよくある誤解は?
ハッシュ化したから元に戻せない、はソルトなし時には総当たりされる パスワードを暗号化して保存すれば安全、というのは誤り MD5/SHA-1で十分、というのは現在では不適切