本文へスキップ
AZ Tools

ファイルハッシュ検証

インストーラーやディスクイメージ、ファームウェアをダウンロードすると、配布元がリンクの横にチェックサム — 公開したバイト列そのものの指紋 — を掲載していることがよくあります。このツールはその指紋をローカルで再計算します。ブラウザが Web Crypto API(crypto.subtle.digest)でドロップされたファイルを SHA-1 / SHA-256 / SHA-384 / SHA-512 でハッシュ化し、貼り付けたハッシュと大文字小文字・空白を無視して比較します。ファイルがお使いの端末を離れることはありません — アップロードもサーバー通信も一切なしです。 緑の一致が証明するのは完全性であって、真正性ではありません。バイト列が配布元の掲載どおりであることが分かるため、途中で切れたダウンロード、ミラーの破損、すり替えられたファイルは検出できますが、チェックサムを掲載したページ自体が改ざんされていないことまでは証明できません — それには暗号署名が必要です。できるだけ SHA-256 以上を使ってください(SHA-1 はまだ掲載しているプロジェクトがあるため用意されているに過ぎません)。ハッシュ化の前にファイル全体をメモリへ読み込むため、数 GB のファイルは少し時間がかかります。

比較時に空白と大文字小文字は無視 — .sha256 ファイルから直接貼り付け可能。

使い方

  1. 配布元が掲載しているアルゴリズムを選びます(SHA-256 が最も一般的)。後からアルゴリズムを変えると読み込んだファイルがクリアされるので、ファイルを再ドロップしてください。
  2. 期待ハッシュを貼り付けます — .sha256 ファイルの「ハッシュ ファイル名」の行全体ではなく、16 進数のハッシュだけを。
  3. ダウンロードしたファイルをドロップするか、クリックして選択します。ハッシュ化はローカルで実行され、ファイル名・サイズ・計算結果が表示されます。
  4. 結果を確認します。緑のバッジは一致、赤はバイト列が異なることを意味します。期待ハッシュを空のままにすれば、計算されたハッシュだけが表示され手動比較に使えます。

よくある質問

そもそもダウンロードを検証する必要はありますか?
ハッシュの不一致は、途切れたダウンロード、ミラーの破損、侵害されたミラーやプロキシによるファイルのすり替えを捕捉します。ただしこれは完全性の検証であって出所の検証ではありません。チェックサムを掲載するページごと攻撃者に握られていれば両方とも差し替えられるため、出所まで確認するにはプロジェクトの鍵による署名(GPG や Sigstore など)も必要です。
ファイルはどこかにアップロードされますか?
いいえ。ブラウザがファイルを読み込み、Web Crypto API でローカルにハッシュ化します。どのサーバーにも送信されません。ハッシュ化のためにファイル全体をメモリへ載せるので、数ギガバイトのファイルは時間がかかり、メモリの少ない端末では負荷になることがあります。
どのアルゴリズムを選ぶべき?MD5 がないのはなぜ?
必ず配布元が掲載しているものを使ってください — SHA-256 のダイジェストが SHA-512 のものと一致することはありません。今日の事実上の標準は SHA-256 です。SHA-1 は衝突攻撃が現実的になっておりセキュリティ判断には不向きですが、偶発的な破損の検出にはまだ使えます。MD5 はブラウザの Web Crypto API が意図的に実装していないため提供していません。
.sha256 ファイルの行をまるごと貼り付けてもいい?
16 進数のダイジェストだけを貼り付けてください。比較時に空白・改行・大文字小文字は無視されますが、sha256sum の「ハッシュ ファイル名」形式に含まれるファイル名は余分な文字として扱われ、一致しなくなります。
ハッシュが一致しなかったらどうすれば?
まずファイルをダウンロードし直してください — 転送の中断が最も多い原因です。アルゴリズムが同じか、ダウンロードしたバージョン・アーキテクチャ用のチェックサムかも確認しましょう。それでも一致しなければそのファイルは実行せず、公式の配布元から取得し直してプロジェクトに報告してください。

関連ツール