ハッシュ生成ツール
このツールについて
使い方
テキストを入力するか、ファイルを選択すると、各アルゴリズムのハッシュ値をリアルタイムで計算します。
対応アルゴリズム
- MD5: 128ビット。チェックサム用途向き (暗号用途には非推奨)
- SHA-1: 160ビット。Git のコミットハッシュなどで使用 (暗号用途には非推奨)
- SHA-256: 256ビット。現在最も広く使われるセキュアなハッシュ
- SHA-384: 384ビット。SHA-512 の切り詰め版
- SHA-512: 512ビット。最も長いハッシュ値を生成
プライバシーについて
すべての計算はブラウザ内で完結します。テキストやファイルがサーバーに送信されることはありません。
ハッシュ関数とは
ハッシュ関数は、任意の長さのデータを固定長の値 (ハッシュ値) に変換する関数です。 同じ入力からは必ず同じハッシュ値が生成されますが、ハッシュ値から元のデータを復元することはできません (一方向性)。 わずか1ビットでも入力が変われば、ハッシュ値は全く別のものになります (雪崩効果)。 これらの性質から、パスワードの保存、ファイルの改ざん検出、デジタル署名、ブロックチェーンなどに使われています。
アルゴリズムの使い分け
用途に応じてアルゴリズムを選びます。ファイルのダウンロード検証など「改ざん検知が主目的で攻撃者を想定しない」場面では MD5 や SHA-1 でも実用上問題ありません。 一方、パスワード保管・デジタル署名・証明書など「攻撃者の存在を想定する」場面では、衝突耐性が重要になるため SHA-256 以上が推奨されます。 なお、パスワード保管には単純なハッシュではなく bcrypt / Argon2 などの専用アルゴリズムが望ましいとされています。
MD5 と SHA-1 が暗号用途で非推奨な理由
MD5 は1996年に衝突可能性が指摘され、2004年には実用的な衝突が実証されました。 SHA-1 も2017年に Google と CWI Amsterdam のチームが実際の衝突を計算で生成 (SHAttered 攻撃) しました。 異なるデータから同じハッシュ値を意図的に作れる以上、署名や証明書のような「そのハッシュ値はこのデータのものだ」と保証する用途には使えません。 ただしチェックサム用途では依然として有用なため、用途を見極めて使い分けます。
SHA-256 と Bitcoin
Bitcoin のマイニングでは SHA-256 を2回連続で適用する「ダブル SHA-256」が使われています。 マイナーは nonce (使い捨ての数値) を変えながら、先頭に一定数のゼロが並ぶハッシュ値を見つける競争をしています。 この計算量の大きさがブロックチェーンの改ざん耐性を支えています。
- RFC 1321 - The MD5 Message-Digest Algorithm
MD5 ハッシュ関数を定義する IETF の公式仕様書
- RFC 6234 - US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)
SHA-1 / SHA-224 / SHA-256 / SHA-384 / SHA-512 の公式仕様書
- Web Crypto API - MDN
ブラウザ標準のハッシュ計算 API リファレンス (本ツールも利用)
- Announcing the first SHA1 collision - Google Security Blog
2017年に Google と CWI が公開した SHA-1 の実用的衝突攻撃の発表