MD5ジェネレーター
MD5は、テキスト、ファイル、ストリームなどあらゆる入力から128ビット(16進数32文字)のダイジェストを生成します。暗号用途としては2004年に破られていますが、パッケージのダウンロード検証、重複排除のためのフィンガープリント、一部でのgit blob名の生成など、手軽な整合性チェックの標準として今なお使われています。テキストを貼り付けるかファイルをドロップするだけで、何もアップロードせずにローカルで16進数ダイジェストを返します。
MD5ハッシュを生成する方法
-
1
入力を選ぶ
任意の文字列を入れるテキストボックス、または約2GBまでの任意サイズに対応したファイル選択。
-
2
ツールがローカルでMD5を計算
ファイルはチャンク単位でストリーミングされるため、大きなファイルでもメモリを圧迫しません。
-
3
16進数ダイジェストを読み取る
16進数32文字、MD5の標準的な表現形式です。
-
4
コピーまたは照合
期待されるハッシュ(パッケージ作者が公開したMD5など)と照合するか、記録用にコピーします。
MD5とは何か:そして何ではないか
- 決定論的。 同じ入力からは常に同じ128ビットの出力が得られます。
- 固定長。 入力サイズが1バイトでも1ギガバイトでも、出力は16進数32文字です。
- 一方向性。 MD5ダイジェストから元の入力を復元することはできません(レインボーテーブルが存在するごく小さな入力を除く)。
- 暗号学的ハッシュとしては破綻している。 衝突はごく簡単に計算できます。次の用途にMD5を使ってはいけません:
- パスワードの保存(bcrypt、scrypt、Argon2を使用)。
- デジタル署名(SHA-256またはSHA-3を使用)。
- TLS証明書の署名(最新のブラウザーでは拒否されます)。
- 攻撃者に悪用され得る、セキュリティ上重要な整合性の主張。
MD5が今でも問題ない場面
- 非敵対的な整合性チェック。 ファイルが転送中に壊れていないことの確認。
- 重複排除。 ストレージ内の同一データのフィンガープリント化。
- 更新頻度の低い静的アセットでのETag生成。
- キャッシュキーやコンテンツアドレス指定のハッシュ化。
実例
| 入力テキスト | MD5ダイジェスト |
|---|---|
| (空文字列) | d41d8cd98f00b204e9800998ecf8427e |
a |
0cc175b9c0f1b6a831c399e269772661 |
abc |
900150983cd24fb0d6963f7d28e17f72 |
The quick brown fox jumps over the lazy dog |
9e107d9d372bb6826bd81d3542a419d6 |
The quick brown fox jumps over the lazy dog.(末尾のピリオド) |
e4d909c290d0fb1ca068ffaddf22cbd0 |
たった1文字(末尾のピリオド)でダイジェストが完全に変わる点に注目してください、これが「雪崩効果」です。
MD5とSHAファミリーの比較
| 関数 | 出力サイズ | 衝突により破られたか | 現在の主な用途 |
|---|---|---|---|
| MD5 | 128ビット | はい(2004年) | 整合性、重複排除、ETag |
| SHA-1 | 160ビット | はい(2017年) | レガシー用途。新規開発では避ける |
| SHA-256 | 256ビット | いいえ | TLS、コミット、一般的な暗号処理 |
| SHA-3 | 224〜512ビット | いいえ | SHA-2の現代的な代替 |
| BLAKE3 | 256ビット | いいえ | 高速なSHA-2の代替 |
よくある質問
いいえ。MD5は最新のGPUで容易に総当たり攻撃でき、2004年にすでに破られています。パスワード用のハッシュ関数であるArgon2、scrypt、bcryptを使用してください。
一般的な整合性(ダウンロードが完了したか)なら「はい」。敵対的な整合性(何者かが悪意あるバージョンにファイルを差し替えていないか)なら「いいえ」、その場合はSHA-256を使ってください。
いいえ。ハッシュ化はWebCryptoと型付き配列を使ってブラウザー内で実行されます。ファイルがデバイスの外に出ることは一切なく、プライベートなデータやNDA対象のデータをハッシュ化する際に重要です。
最新のブラウザーは約2GBのストリーミング入力を余裕をもって処理できます。非常に大きなファイル(数十GB)は、md5sumやopenssl dgst -md5のようなCLIツールでハッシュ化するほうが適しています。
仕様では大文字・小文字を規定していません。ほとんどのUnix系ツールは小文字を出力し、一部のWindowsツールは大文字を出力します。比較する際は、両側で大文字・小文字をそろえてください。
関連ツール
CSRジェネレーター
PEMエンコードされた証明書署名要求と対応するRSA秘密鍵を生成します。コモンネーム、組織の項目、鍵のサイズ(2048、3072、4096ビット)を指定できます。
暗号化識別子
暗号文またはハッシュ値を貼り付けると、識別子からMD5、SHA、bcrypt、AES、RSA、Base64などの推定されるアルゴリズムや符号化方式が示されます。
チェックサム検証
任意のテキストの MD5、SHA-1、SHA-256、SHA-384、SHA-512、CRC32 チェックサムを計算し、期待値と比較して一致・不一致を明確に判定します。
Base64ファイルエンコーダー
あらゆるファイル(PDF、ZIP、画像、実行ファイル)をBase64テキストにエンコードし、JSON、メール、YAML、data URIへ埋め込めます。ブラウザ内でローカルに動作し、アップロードはありません。
SSL証明書ジェネレーター
自己署名のSSL/TLS証明書とRSA秘密鍵をすべてブラウザ内で生成します。Common Name、SAN、有効期間をカスタマイズし、PEM形式で書き出します。
ETH/USD 変換ツール
最新のETH/USDレートまたは自分で入力したレートで、イーサリアム(ETH)を米ドルに変換します。任意のETH数量のUSD価値を確認できます。
このツールは他の言語でも利用できます
- MD5-Generator [DE]
- Générateur MD5 [FR]
- MD5-generator [SV]
- MD5 생성기 [KO]
- MD5-generator [NL]
- مولّد MD5 [AR]
- Generador de MD5 [ES]
- Generator MD5 [ID]
- เครื่องสร้างค่า MD5 [TH]
- Bộ tạo MD5 [VI]
- Generator MD5 [PL]
- Gerador de MD5 [PT]
- MD5 Üreticisi [TR]
- MD5生成器 [ZH]
- MD5 Generator [EN]
- Generatore MD5 [IT]
- Генератор MD5 [RU]