このページのコードが起動しませんでした。

index.htmlをフォルダから直接開くと、ブラウザがJavaScriptモジュールを読み込めません。そのためファイルを選んでも何も起きません。フォルダはhttpで配信してください。

powershell -ExecutionPolicy Bypass -File serve.ps1

そのうえでhttp://localhost:8080/を開いてください。

ハッシュとチェックサム — MD5・SHA-1・SHA-256・SHA-512

配布元が出した数字とダウンロードを照らし合わせる。どこにも送らずに。

言語: 日本語
ソースを見る
ファイルはブラウザー内で処理されます。処理のためのアップロードはありません。

チェックサムは、ファイルのバイト列に対する計算です。その計算は、このページの中で、あなた自身のプロセッサーが行います。ファイルは4メガバイトずつディスクから読み、数え終えた分から順に捨てていきます。どこにも丸ごとのコピーはできません。メモリー上にもできませんし、ましてサーバー上にはできません。このページの向こう側にファイルを送る先のサーバーは、そもそも存在しません。

いまの通信: 確認中…

オフライン: 確認中…

鵜呑みにする必要はありません。開発者ツールを開き、ネットワークタブを見ながらファイルを確認してみてください。1バイトも、名前も、サイズも、どのリクエストにも載りません。あるいはインターネットを切ってから確認してみてください。

1 1つ以上のファイルを選ぶ

複数のファイルを選んでチェックサム一覧と照合できます。各ファイルを1つずつ分割して読み込みます。選び直すと現在の選択を置き換えます。

2 チェックサム

MD5 と SHA-256 は最初から計算します。この二つで、世に出ているダウンロードページのほとんどをまかなえるからです。ほかにチェックを入れると、その分だけファイルをもう一度読み直します。時間がかかるのは読み取りのほうなので、ファイルを選ぶ前に入れておいたものは一度の読み取りでまとめて出ます。

計算するチェックサムの種類

3 本来の値と照らし合わせる

ダウンロードページに書いてあったチェックサムを貼り付けてください。書き方は問いません。十六進数そのまま、sha256sum の出力、SHA256SUMS ファイルまるごと、SHA256 (ファイル名) = … の形、script タグの integrity 属性、どれでも読み取ります。どの方式かは長さで決まるので、選ぶ必要はありません。

Markdownで表示

チェックサムでダウンロードを確認する手順

  1. ファイルを選ぶ。枠に落とすか、手で選んでください。ディスクから直接、分割して読みます。そのあいだ何もどこへも行きませんし、ここから先は無理という大きさもありません。
  2. 読ませる。MD5 と SHA-256 は最初から、一度の読み取りでまとめて計算します。バーには、いまどこまで進んでいて、どの速さで進んでいるかが出ます。大きなディスクイメージなら、コピーするのとだいたい同じ時間です。読む量が同じだからです。
  3. 本来の値を貼る。ダウンロードページに書いてあったものを、どんな書き方でもそのまま貼ってください。十六進数そのまま、sha256sum の出力一行、SHA256SUMSファイルまるごと、script タグから取った integrity 属性。どの方式かは長さで決まるので、該当する欄が自動でチェックされます。
  4. 色ではなく、文を読む。そのチェックサムが指すファイルなのかどうかを、ページが一文で答えます。一致すれば、バイト列は配布元が測ったものと同一です。一致しなければ同一ではないので、開く前にもう一度取り直してください。
  5. 必要ならチェックサムを持ち出す。一つだけコピーする、まとめてコピーする、小さなテキストファイルとして保存します。保存はコマンドライン道具と同じ、方式名を頭に付けた書き方です。数字といっしょに方式名が持ち出せます。

詳しい解説

チェックサムでダウンロードを確認する手順 MD5 や SHA-256 のチェックサムを Windows・macOS・Linux やブラウザーで照合する手順、一致が実際に証明していること、そしてこの作業を無意味にしてしまう間違いについて。

よくある質問

ファイルはどこかにアップロードされますか。

されません。あなた自身のブラウザーがディスクから読み、あなた自身のプロセッサーが4メガバイトずつ計算します。この道具にサーバー側は存在せず、ページの Content-Security-Policy には接続してよいアドレスがすべて書かれています。そのどれも当サイトのものではありません。ネットワークを切っても動き続けます。

サイズの上限はありますか。

ありません。ファイルが丸ごとどこかに置かれることはなく、分割して読み、読んだ分は数えてから捨てます。ですから40ギガバイトのディスクイメージでも、テキストファイルと同じ数メガバイトのメモリーで済みます。かかるのは時間で、それがどれくらいかはページが進みながら教えます。

ブラウザー自身の crypto.subtle.digest に渡さず、ここに方式を書き下しているのはそのためです。あちらのほうが速いのですが、あの呼び出しはメッセージ全体を一つのバッファーで受け取る形で、ファイルを分割して渡す手段がありません。使えば、確認できるファイルの上限が「このタブにたまたま与えられたメモリー量」に左右されることになります。携帯電話なら数百メガバイトで、人がいちばん確認したいのはディスクイメージです。

一致しました。これで何が証明されたのですか。

手元のバイト列が、誰かがその数字を書き留めたときに目の前にあったバイト列と同じだということです。それだけで、その境目は正確に押さえておく価値があります。

証明されたのは、ダウンロードが途中で切れていないこと、壊れたディスクで傷んでいないこと、途中ですり替えられていないことです。そのファイルが安全であることは証明されていません。配布元はマルウェアでも同じ正確さで測れるからです。そして、チェックサムがファイルと同じページから同じ回線で来たのなら、証明されたことはごくわずかです。片方を変えられた者は、もう片方も変えられました。チェックサムがいちばん役に立つのは別の経路で届いたときです。署名付きのSHA256SUMS、ディストリビューションのリリース告知、二つめのミラー、あるいはすでにその値を知っているパッケージマネージャーです。

一致しませんでした。どうすれば。

まず同じ場所からもう一度ダウンロードしてください。途中で切れた転送や再開した転送が圧倒的に多い原因で、二度目のコピーでたいてい片が付きます。

二度目も同じ間違った答えが出るなら、照らし合わせている行が正しいか確認してください。リリースページには複数のファイルが並び、ARM版のチェックサムがx86版と一致することはありません。次に版番号を確認します。そこまで正しくてなお一致しないなら、そのファイルは開かないでください。別のミラーから取り、二つのチェックサムを互いに突き合わせてください。

どれを使えばよいですか。

配布元が出したものです。相手の数字と照らし合わせるのが目的なので、相手の分をこちらで選ぶことはできません。

確認する側ではなく作る側なら、SHA-256 を使ってください。MD5 と SHA-1 は肝心な意味で破られています。同じ値を持つ別々のファイルを狙って作れる、ということです。MD5 なら数時間、SHA-1 でも手の届く費用で作れます。事故に対して無力になったわけではありません。途中で切れたダウンロードが偶然元と同じ値になることはないからです。ただ、誰も手を加えていないとはもう言えません。SHA-384 と SHA-512 は問題なく、実用上それ以上でもありません。公開しているプロジェクトがあるので置いてあります。

破られているのに、なぜ MD5 があるのですか。

いまも印刷されているからです。ミラー、ファームウェアの配布ページ、大学のソフトウェア置き場、そして数えきれないメーカーのサイトが、二十年前にMD5 を載せたきりページに触れていません。計算を拒む道具は、訪問者が実際に抱えてきた問いに答えるのを拒むことになります。

代わりにできるのは、その答えがどれだけの意味を持つかを言うことで、チェック欄の脇の一文がそれです。一致した MD5 は、いまも壊れたダウンロードを排除します。故意に細工されたものは排除しません。

照合欄にはどんな書き方を貼れますか。

よく使われるものはすべてで、どれなのかはページが自分で見分けます。

十六進数そのまま、空白が入っていてもかまいません。md5sum やsha256sum の出力一行、後ろにファイル名が付いていても大丈夫です。四十行ある SHA256SUMS ファイルまるごと。その場合は、選んだファイルの名前が書かれた行が使われます。BSD 形式のSHA256 (disk.iso) = …。SHA-256: …のような見出し付き。そして subresource integrity のsha384-…。これは十六進数ではなく base64 なので、照合の前に復号します。

どの方式かは長さで決まります。十六進数32文字なら MD5、40 なら SHA-1、64 なら SHA-256、96 なら SHA-384、128 なら SHA-512 です。同じ長さのものは二つとないので、選ぶものも間違えようもありません。

sha256sum や certutil と同じ結果になりますか。

なります。1バイトも違いません。公開された試験ベクターのある厳密な仕様で、ここにある方式はどれも、ビルドのたびにその試験ベクターとOSの実装の両方に照らして確認しています。

違って見えるのは表示だけです。Windows のcertutil -hashfile は大文字で空白入りに出しますが、このページは小文字で出します。ほとんどの配布元が使っているのが小文字だからです。照合はどちらも無視するので、certutil からコピーした値もここに貼った小文字の値と一致します。

二つのファイルを突き合わせられますか。

一手間かければできます。まず一つめを確認してチェックサムをコピーし、次に二つめを選んで、そのチェックサムを欄に貼ってください。二つが同一なら、ページがそう言います。

チェックサムが地味にいちばん強いのはこの場面です。バックアップ用ドライブにあるコピーが、ノートパソコンのものと本当に同じファイルなのか。サイズも日付も同じだと言い張っているときに、それを決められます。

ファイルは変わりますか。

変わりません。この道具は読むだけです。出力ファイルも、再エンコードも、書き戻すものもありません。ダウンロードできるのは、チェックサムを並べた小さなテキストファイルだけです。元のファイルはディスク上でそのままです。タブを閉じたらどうなるか、という問いへの正直な答えも同じです。

無料ですか。アカウントは要りますか。

無料で、アカウントも登録も試用期間もありません。ファイルサイズの上限も、確認できる回数の上限もありません。このサイトには広告があり、それが費用をまかなっています。広告にあなたのファイルについては何も渡していません。

オフラインで動きますか。

動きます。ページを一度読み込んだあとインターネットを切っても、そのまま使えます。何もアップロードしていないことのいちばん簡単な証明でもあります。ファイルをよそへ送って計算させる道具なら、線を抜いた瞬間に止まります。