ハッシュツール
ハッシュアルゴリズムとは?
ハッシュアルゴリズムは、任意の長さの入力データを固定長の出力に変換する数学的関数です。一方向性(不可逆)、決定性(同じ入力は同じ出力)、雪崩効果(小さな入力変化が大きな出力変化を引き起こす)などの特性があります。
サポートアルゴリズム
MD5
出力長: 128 ビット (32 16進文字)
セキュリティ: 脆弱性あり、セキュリティシナリオでは非推奨
使用例: ファイル検証、データ重複排除(非セキュリティシナリオ)
SHA-1
出力長: 160 ビット (40 16進文字)
セキュリティ: 脆弱性あり、新規プロジェクトでは非推奨
使用例: Gitバージョン管理、レガシーシステム互換性
SHA-224
出力長: 224 ビット (56 16進文字)
セキュリティ: 良好なセキュリティ、ただし使用頻度は低い
使用例: 特定プロトコル要件、組み込みシステム
SHA-256
出力長: 256 ビット (64 16進文字)
セキュリティ: 現在安全、広く使用されている
使用例: パスワード保存、デジタル署名、ブロックチェーン
SHA-384
出力長: 384 ビット (96 16進文字)
セキュリティ: 高セキュリティ、良好なパフォーマンス
使用例: 高セキュリティシナリオ、SSL/TLS
SHA-512
出力長: 512 ビット (128 16進文字)
セキュリティ: 最高セキュリティ、高要件シナリオに適している
使用例: 高セキュリティパスワード保存、デジタル証明書
SHA-3
出力長: 256 ビット (64 16進文字)
セキュリティ: 最新標準、量子耐性
使用例: 将来のセキュリティ標準、高度な暗号化アプリケーション
RIPEMD-160
出力長: 160 ビット (40 16進文字)
セキュリティ: 良好なセキュリティ、ただし使用頻度は低い
使用例: ビットコインアドレス生成、特定の暗号化アプリケーション
SM3
出力長: 256 ビット (64 16進文字)
セキュリティ: 中国国家暗号アルゴリズム、GM標準準拠
使用例: GMアプリケーション、政府システム、金融システム
一般的な使用例
データ整合性検証
送信または保存中にデータが改ざんされていないかを検証
パスワード保存
ユーザーパスワードの安全な保存(ソルト必要)
デジタル署名
データの出所と整合性を検証
ファイル検証
ダウンロードファイルの整合性と真正性を検証
ブロックチェーン
プルーフオブワーク、取引検証など
キャッシュキー
一意のキャッシュキーを生成
セキュリティ考慮事項
衝突耐性
MD5とSHA-1は衝突脆弱性が証明されており、セキュリティ重要シナリオでは使用すべきではない
ソルト使用
パスワード保存時はランダムソルトを使用してレインボーテーブル攻撃を防ぐ
アルゴリズム選択
新規プロジェクトではSHA-256以上のアルゴリズムを推奨