MD5ハッシュジェネレータ

md5sumopenssl dgst -md5およびcertutil -hashfileと完全に同一の32文字の16進数MD5チェックサムを生成します。ダウンロードページがMD5値を公開している場合、CLIツールをインストールせずにファイルの一致を確認するのに役立ちます。テキスト入力(UTF-8バイトとして処理され、Unixツールと同等)およびファイル入力(ストリーミング方式により大容量ファイルでもメモリ内に収まる)に対応しています。

ファイルのチェックサムを確認する方法

  1. 1

    ダウンロードしたファイルをドロップします

    このツールは、データをチャンク単位でMD5関数に通してストリーミング処理します。

  2. 2

    ディジェストを待機してください

    ほとんどのマシンでは数MB/s程度で処理可能であり、500MBのISOファイルの処理には約30~60秒かかります。

  3. 3

    公開されたチェックサムと比較します

    予想されるハッシュ値をコピー&ペーストします。ツールは色によって一致/不一致を示します。

  4. 4

    一致しない場合は実行しないでください

    異なるハッシュ値は、ファイルが破損しているか改ざんされたことを示します。信頼できるソースから再度ダウンロードしてください。

標準的な出力形式

MD5は128ビットの値を生成し、通常は小文字で表記される32桁の16進数の文字列として記されます。

9e107d9d372bb6826bd81d3542a419d6

Unixのmd5sumは、2つのスペースを含む<hash> <filename>として印刷されます。GNU Core Utilitiesでは、-c(チェック)フラグに対してこの形式が期待されています。

テキストモード対ファイルモード

  • 「テキスト入力」はハッシュ処理前にUTF-8としてエンコードされます。これはUnix環境におけるecho -n "text" | md5sumと一致します。Windows PowerShellでは、指定しない限りGet-FileHashがデフォルトでUTF-16として使用されるため、両者の値が異なることがあります。
  • 「ファイルの入力」はバイトごとにハッシュ処理が行われます。ファイルに何が含まれているかに関わらず、エンコード変換は一切行われません。ブラウザとCLIツールは常に同じファイルハッシュ値を共有します。

公開されたチェックサムと一致させる

ほとんどのダウンロードページでは、ハッシュ値とファイル名を一緒に公開しています:

md5sum: 9e107d9d372bb6826bd81d3542a419d6  yourfile.iso
  • 正確なファイルをダウンロードしていることを確認してください(場合によっては、ベンダーが各バリアントごとにハッシュ値を公開しています:x86_64とARM)。
  • チェックサムの出所を信頼できることを確認してください。侵害された同じページ上にあるMD5リンクは無意味です。利用可能であれば、GPG署名されたSHA256SUMSと照合してください。

不一致の一般的な原因

  • 部分的なダウンロード、ブラウザの接続が中断し、不正に再開されました。
  • バージョンの相違、ミラー上のバージョンが、チェックサムが示す値と異なる。
  • 選択したファイルが間違っています(ISOファイルではなく.sigファイルをハッシュ処理しました)。
  • 圧縮または再形式化.tar.gzおよび同じ抽出ディレクトリは、ハッシュ値がまったく異なる。
  • 実際の改ざん:まれですが、チェックサムが存在する理由です。

速度

MD5は高速です。過去5年間に製造されたノートパソコンではハッシュ処理速度が400MB/s以上に達します。ブラウザ内でファイルをハッシュ処理する際のボトルネックは、通常数学処理ではなくディスクのI/O操作にあります。

MD5だけでは不十分な場合

セキュリティに重要な整合性(ダウンロードしたインストーラーがマルウェアで置き換えられていないかを確認する)の観点から、SHA-256を優先すべきである。なぜならMD5による衝突は容易に計算できるからだ。ほとんどの現代のプロジェクトでは両方のハッシュ値が公開されている。

よくある質問

PowerShellのGet-FileHashはデフォルトでMD5ではなくSHA-256を使用しています。公開されているMD5値と一致させるには、Get-FileHash -Algorithm MD5 file.isoを使用してください。

ほとんどの現代のブラウザでは、最大約2GBまでのファイルをスムーズにストリーミングできます。より大きなファイル(DVDやディスクイメージ)については、CLIツールをご利用ください。Linuxではmd5sum file、WindowsではGet-FileHash -Algorithm MD5を使用してください。

.md5ファイルには通常、1行のデータが含まれています。その内容は、16進数のハッシュ値に2つのスペース、そしてファイル名です。md5sum -c checksum.md5などのツールはこの行を読み取り、検証を行います。16進数の部分のみが原始的なハッシュ値となります。

はい、MD5の衝突は意図的に生み出すのが極めて容易です。実際のファイル間で偶発的に衝突が生じる確率は約2^64分の1であり、事実上無視できるほど低いです。攻撃者による衝突攻撃に対しては、SHA-256を使用してください。

いいえ。ハッシュ処理はすべてWebCrypto APIおよびタイプされた配列のチャンクを介してブラウザ内で実行され、ファイルはデバイスから一度も外部に送信されません。

関連ツール

このツールは他の言語でも利用できます