ハッシュでファイルの整合性を検証する方法

· 3 分で読めます

ソフトウェア、ファームウェア、重要な文書をダウンロードしたとき、ファイルが配布元の意図したとおりのものだとどうやってわかるのでしょうか? ファイルのハッシュ化は暗号学的フィンガープリント — ファイルのバイトが 1 つでも変われば変わる固有の文字列 — を提供します。

ファイルハッシュの仕組み

ハッシュ関数はファイルのすべてのバイトを読み、固定長の文字列を生成します。同じファイルからは常に同じハッシュが得られます。バイトを 1 つでも変えれば、ハッシュは完全に変わります。

例:

これで検証はシンプルになります:ハッシュを生成し、公開されているハッシュと比較すれば、ファイルが本物かどうか即座にわかります。

ファイルを検証する方法

  1. 公式ハッシュを見つける — ソフトウェアの配布元はたいていダウンロードページにハッシュを掲載しています(「SHA-256 checksum」「MD5 sum」と書かれていることが多いです)。
  2. ダウンロードしたファイルをアップロード — ハッシュ計算機で選択します。ハッシュはブラウザ内でローカルに計算されます。
  3. ハッシュを比較 — 計算されたハッシュが公式のものと完全に一致すれば、ファイルは本物で破損していません。

ファイルハッシュを検証すべきとき

対応アルゴリズム

アルゴリズム 長さ 推奨度
MD5 32 文字 レガシー用途のみ — 安全でない
SHA-1 40 文字 レガシー用途のみ — 安全でない
SHA-256 64 文字 推奨される標準
SHA-384 96 文字 高セキュリティ
SHA-512 128 文字 最大セキュリティ

ヒント

よくある質問

ファイルのハッシュを公式のものとどう比較しますか?

ハッシュを生成したあと、配布元(通常はダウンロードページ)が公開しているハッシュと文字単位で比較します。すべての文字が一致すれば、ファイルは本物で破損していません。1 文字でも違えば、ファイルは変更されています。

どのハッシュアルゴリズムを使うべきですか?

SHA-256 がファイル検証の標準です。配布元が提供しているアルゴリズムを使いましょう。選択肢があるなら、SHA-256 がセキュリティとパフォーマンスのバランスが良好です。

破損したファイルが正しいハッシュを持つことはありますか?

理論的には可能(衝突)ですが、SHA-256 では統計的に無視できるほどの確率です。可能性が天文学的に低いため、実用上はハッシュが同じならファイルも同じだと保証できます。

ファイルはサーバーに送信されますか?

いいえ。ハッシュは完全にブラウザ内で計算されます。ファイルがデバイスから出ることはなく、機密文書を含むあらゆる文書で安全に使えます。