MD5とは?
MD5(Message Digest Algorithm 5)は、128ビット(16バイト)のハッシュ値を生成する広く使用されている暗号学的ハッシュ関数で、通常32文字の16進数として表示されます。1991年にRon RivestによってMD4の後継として設計されました。
主な特徴:
- 決定論的:同じ入力は常に同じハッシュを生成
- 高速計算:任意の入力に対して高速に計算
- 雪崩効果:入力の小さな変化が劇的に異なる出力を生成
- 固定出力サイズ:入力サイズに関係なく常に128ビットハッシュを生成
- 衝突脆弱性:既知の脆弱性により衝突を見つけることが可能
セキュリティ状況: ⚠️ MD5は暗号学的に破られており、セキュリティが重要なアプリケーションでは使用すべきではありません。衝突攻撃は2004年に実証され、現代の計算能力により実用的な衝突生成が実現可能になりました。
一般的な用途(現在と歴史的):
- ファイル整合性検証(セキュリティ非重要)
- データ破損検出のためのチェックサム
- MD5を必要とするレガシーシステム
- データベースキー生成(非暗号学的)
- 一部の古いプロトコルとシステム
推奨される代替案:
- 新しいアプリケーションにはSHA-256またはSHA-3
- 高セキュリティ要件にはSHA-512
- 高性能アプリケーションにはBLAKE2