ファイルが改ざんされていないか確認する方法(ハッシュ値照合)
公開日:2026年7月8日(最終更新:2026年7月12日)|カテゴリ:テキスト・変換系
ハッシュ値=ファイルの「指紋」
ハッシュ値とは、ファイルやテキストを数学的な計算にかけて得られる固定長の文字列です(SHA-256なら64桁の16進数)。重要な性質は3つです。
- 同じデータからは必ず同じ値が出る:いつ・誰が・どの端末で計算しても同一です
- 1ビットでも違えばまったく別の値になる:ファイル末尾に空白1つ足しただけで、値は全面的に変わります
- 値から元のデータには戻せない:一方向の計算です
この性質から、ハッシュ値は「ファイルの指紋」として機能します。2つのファイルのハッシュ値が一致すれば、中身は同一——これがハッシュ照合のすべてです。
使いどころ①:ダウンロードしたファイルの検証
ソフトウェアの配布ページに「SHA-256: a1b2c3…」という記載を見たことがあるはずです。これは「正規のファイルの指紋はこれです」という宣言で、次の手順で照合します。
- ファイルをダウンロードする
- ハッシュ値計算ツールなどで、手元のファイルのSHA-256を計算する
- 配布ページに記載された値と完全一致するか見比べる(先頭と末尾の数文字だけでなく全体を確認)
一致すれば、ダウンロード途中の破損も、第三者によるすり替えもないことが確認できます。特に、公式サイト以外のミラーサイトから入手したファイルや、業務システムに入れるプログラムでは、この一手間がマルウェア混入を防ぐ実用的な防衛線になります。
使いどころ②:業務データの同一性確認
セキュリティ用途以外でも、ハッシュは「2つのファイルが同じかどうか」を確実に判定する道具として便利です。
- バックアップの検証:コピー元とコピー先のハッシュが一致すれば、コピーは完全です
- 「どっちが最新かわからない」ファイルの判定:同名ファイルが複数の場所にあるとき、ハッシュが同じなら中身は同一なので、どちらを消しても安全です
- 受け渡しの証跡:納品ファイルのハッシュ値を納品書に記載しておけば、「受け取ったファイルが途中で変わっていないか」を後からでも検証できます
SHA-256が標準、MD5・SHA-1は「照合用」と割り切る
ハッシュには複数の方式があり、強度が異なります。
- SHA-256:現在の事実上の標準。改ざん検知・証明書・ブロックチェーンなど広く使われており、新しく使うならこれを選べば間違いありません
- SHA-1:異なるデータから同じハッシュ値を意図的に作り出す「衝突攻撃」が現実に実証済み。セキュリティ用途では非推奨です
- MD5:衝突攻撃がさらに容易で、セキュリティ用途では使ってはいけない方式。ただし「偶然の破損チェック」程度なら今も見かけます
古い配布物にはMD5やSHA-1しか記載がないこともあるため、照合先に合わせて計算できると実務では助かります。悪意への対抗として意味を持つのはSHA-256以降、と覚えておいてください。
「パスワードのハッシュ化」との関係
まともなWebサービスは、利用者のパスワードを平文ではなくハッシュ値で保存しています。ログイン時は入力されたパスワードのハッシュを計算して保存値と照合する仕組みで、これなら運営者すら元のパスワードを知り得ません。「パスワードを忘れたら再設定しかできない」のは、この仕組みの裏返しです。逆に「パスワードを忘れた」と問い合わせて現在のパスワードがそのままメールで届くサービスは平文保存の疑いが濃いので、そこで使い回しているパスワードは変えておくことをおすすめします。
よくある質問
Q. ハッシュ値が1文字だけ違います。ほぼ同じファイルということですか?
A. いいえ。ハッシュは入力が1ビットでも違うと全体がまったく別の値になる性質(雪崩効果)を持つため、「1文字だけ違う」ことに近さの意味はありません。1文字でも違えば「別のファイル」です。照合は完全一致かどうかだけで判断します。
Q. ハッシュ値からファイルを復元することはできますか?
A. できません。ハッシュは一方向の計算で、どんなサイズのファイルも固定長の値に要約するため、元のデータの情報はほとんど失われています。この「戻せない」性質こそが、パスワード保存などに使われる理由です。
ハッシュ値の計算はハッシュ値計算ツールで行えます。ファイルはサーバーに送信されず、ブラウザ内だけで計算されます。