一括ファイルハッシュ・マニフェスト検証

多数のファイルを一度に選択またはドロップすると、このページはそれぞれの MD5、SHA-1、SHA-256、 SHA-384、SHA-512 ダイジェストを完全にブラウザー内で計算します。その後、結果を sha256sum 互換の行として コピーしてリリースノートに使うことも、チェックサムマニフェスト(SHA256SUMS、.sha256、.sfv、 BSD の openssl dgst 出力)を貼り付けて、どのファイルが検証済み・不一致・欠落かを判定させることもできます。 どこにもアップロードされません。 1 ファイルでより多くのアルゴリズムが必要ならハッシュジェネレーターを。
ここにファイルをドロップ、またはクリックして選択
最大 50 ファイル、各 200 MB。ファイルはこのマシンから出ません。
ファイルが選択されていません。
— hex 出力。少なくとも 1 つ選んでください。
ダイジェストのセルをクリックするとコピーされます。名前とサイズは常に一覧表示されるため、テーブルは一括ファイルサイズ表示としても使えます。
ファイルを選んで「計算」を押すと、ダイジェストテーブルがここに表示されます。
GNU(hash  名前)、BSD(SHA256 (名前) = hash)、 SFV(名前 crc32)、プレーン(sha256=hash)スタイルのマニフェストを貼り付けるか、 .sha256 / SHA256SUMS / .sfv ファイル自体をアップロードしてください。 ; で始まる行はコメントとして扱われます。
プライバシー:すべてのダイジェストはブラウザー自身の JavaScript と WebCrypto エンジンで計算されます — ファイルがこのタブから出ることはありません。ヒント:ダウンロードの検証後はこのページを閉じて安全です。何も保存されていません。

一括ファイルハッシュとは?

チェックサムはファイルの短いフィンガープリントです:ファイルのバイトをハッシュ関数に通すと、ファイルが 1 バイトでも変わればほぼ確実に変わるダイジェストが得られます。ソフトウェア配布者はダウンロードの横にそのダイジェストを公開します。受信したファイルが送信されたファイルそのものであること — ダウンロードが切断や破損していないこと、誰も別の内容に差し替えていないこと — を証明するためです。

1 つのダウンロードなら 1 ファイルずつで十分です。ファイルのフォルダーや、SHA256SUMS マニフェスト入りのリリースアーカイブを扱う瞬間からは一括版が欲しくなります:全ファイルを一度にハッシュし、マニフェストの各行を対応するファイルと照合する。このページが自動化しているのはまさにそのループです。

このページが読むマニフェスト形式

スタイル行の例見かけの場所
GNU900150983c...  hello.txtsha256sum / md5sum の出力、Linux リリースの SHA256SUMS ファイル
BSDSHA256 (hello.txt) = 900150983c...macOS/BSD の openssl dgst -sha256
SFVhello.txt 1A2B3C4DSimple File Verification ファイル、昔のバイナリニュースグループ
プレーンsha256=ba7816bf...ダウンロードページ、リリースノート、Docker checksums

ハッシュの長さ自体がアルゴリズムを特定します:32 桁の hex は MD5、40 は SHA-1、64 は SHA-256、96 は SHA-384、128 は SHA-512 — つまり GNU 形式の行はどのプログラムが作ったかを明記する必要がありません。

仕組み(概要)

各ファイルはブラウザーの FileReader で一度読み取られ、crypto.subtle.digest(SHA 系)とローカルの MD5 実装に渡されます。ダイジェストは hex エンコードされ、マニフェストのエントリーと並べて表示されます。ファイルが検証済みになるのは、計算されたダイジェストが期待値と 1 文字残らず一致したときだけです。SFV の行は暗号ハッシュの代わりに CRC-32 を運ぶため、CRC をダイジェストと偽るのではなく、対応外として印を付けます。

よくある間違い

「全部のファイルが不一致になる」— よくある原因は、ダウンロードの別バージョン用に作られたマニフェストです。まずファイル名を確認してください:マッチャーはベース名で比較するため、dist/app-1.2.bin は app-1.2.bin のマニフェスト行と一致します。「SHA-1 で検証できたから安全?」— いいえ。検証が証明するのはバイトが配布者がリリースしたものと一致することだけ。配布者が信頼できるかは別の問題です。さらに SHA-1 は 2017 年以来衝突攻撃が成立しているため、選べるなら SHA-256 のマニフェストを優先してください。

よくある質問

大きなファイルのハッシュは遅い?— 普通のマシンで約 200 MB あたり 1 秒。進行状況の行がバッチの進みを表示します。
CRC-32 の SFV マニフェストは検証できる?— SFV 行は解析して一覧表示しますが、CRC-32 はこのページでは計算しません。単一ファイルには 暗号ハブ の CRC ツールを使ってください。
なぜ hex だけ?— 実際のマニフェストは hex だからです。base64 のダイジェストは機能の一つです。
ファイルはどうなりますか?— 何も残りません:サーバーなし、保存なし、アナリティクスなし。タブを閉じれば入力のバイトはすべて消えます。