ハッシュと暗号化の完全ガイド:MD5、SHA256、AESの正しい使い方
エンコード(更新: 2026年5月25日)
ハッシュ vs 暗号化:重要な違い
| ハッシュ (Hash) | 暗号化 (Encryption) | |
|---|---|---|
| 可逆性 | ❌ 不可逆 | ✅ 復号可能 |
| 用途 | 整合性検証、フィンガープリント | 機密伝送 |
| 鍵 | 不要 | 必要 |
| 例 | MD5、SHA256 | AES、RSA |
よくある誤解:「MD5でパスワードを暗号化」—— MD5はハッシュであり暗号化ではなく、すでに安全ではありません。
ハッシュアルゴリズム
MD5
- 出力:128ビット(32文字の16進数)
- 速度:非常に高速
- 安全性:❌ 衝突あり — セキュリティ用途には使わない
- 向いている用途:ファイル整合性の簡易チェック(非セキュリティ)
MD5ツール でファイルやテキストのMD5を計算。
SHA シリーズ
| アルゴリズム | 出力長 | 安全性 | 用途 |
|---|---|---|---|
| SHA-1 | 160ビット | ❌ 衝突あり | レガシーシステム |
| SHA-256 | 256ビット | ✅ 安全 | 推奨 |
| SHA-512 | 512ビット | ✅ 安全 | 高セキュリティ要件 |
SHA256ツール でSHA-256ハッシュを計算。
HMAC
ハッシュ + 秘密鍵 = メッセージ認証コード。整合性と送信元の両方を検証:
HMAC-SHA256(message, secret_key) → 認証付きハッシュ
HMACツール でHMAC値を計算。
暗号アルゴリズム
AES(対称暗号)
暗号化と復号に同じ鍵を使用:
| モード | 特徴 | 推奨 |
|---|---|---|
| AES-128-CBC | 古典的モード | 一般用途 |
| AES-256-GCM | 認証付き暗号 | 推奨 |
| AES-256-CTR | ストリーム型 | 大容量ファイル |
AES暗号化ツール でAESの暗号化/復号。
ハッシュ vs 暗号化の使い分け
ファイルダウンロード検証 → SHA256ハッシュ比較
パスワード保存 → bcrypt/argon2(MD5は使わない!)
API署名 → HMAC-SHA256
データ転送 → AES-256-GCM暗号化
よくある誤用と正しい方法
| 誤用 | 問題 | 正しい方法 |
|---|---|---|
| MD5でパスワード保存 | レインボーテーブルで即座に解読 | bcrypt/argon2 + salt |
| SHA256でパスワード保存 | 高速すぎ、総当たりに弱い | 専用パスワードハッシュ関数 |
| AES鍵のハードコード | ソース漏洩 = 鍵漏洩 | 環境変数 / KMS |
| ECBモード | 同じ平文 = 同じ暗号文 | CBC/GCMモードを使用 |
| ハッシュ = 暗号化 | 概念の混同 | 復号が必要ならAES |
ToolsKu暗号化ツールチェーン
すべて Web Crypto API ベース、ブラウザ内でローカル処理:
- MD5 — 高速フィンガープリント(非セキュリティ)
- SHA256 — 安全なハッシュ
- HMAC — メッセージ認証
- AES — 対称暗号化/復号
- RSA — 非対称暗号化/復号
- 国密 SM2/SM3/SM4 — 中国国密アルゴリズム
まとめ
ハッシュと暗号化の本質的な違いを理解し、正しいアルゴリズムとモードを選ぶことは情報セキュリティの基本です。ToolsKuは完全な暗号化ツールチェーンを提供し、すべてブラウザ内でローカル実行。開発・デバッグ・学習に最適ですが、本番環境では監査済みの暗号ライブラリを使用してください。
#哈希#加密#MD5#SHA256#AES#安全