DevToolBox

ファイルのハッシュ値(チェックサム)を確認する方法 - Windows/Mac/Linux

最終更新日: 2026-07-22公開日: 2026-07-22執筆: DevToolBox編集部

ソフトウェア配布元が公開するハッシュ値(多くはSHA-256)と、ダウンロードしたファイルから計算した値を比較すると、転送中の破損や改ざんを検出できます。値は完全に一致する必要があります。

Verify a download by comparing its locally calculated SHA-256 hash with the value published by the software distributor. Windows, macOS, and Linux all provide standard commands for this check.

1. 照合の基本手順

  1. 公式配布ページから対象バージョンのSHA-256値を取得します。
  2. 手元のファイルから値を計算します。
  3. 公開値と計算値を比較します。16進数なので英字の大文字・小文字は無視して構いません。
公開値: 0123abcd...ef
計算値: 0123ABCD...EF
# 英字の大小だけが違う場合は同じ値

1文字でも異なるなら不一致です。ハッシュ値はミラーだけに頼らず、公式サイトなど信頼できる経路から取得します。

確認項目一致条件
アルゴリズムSHA-256配布元と同じ方式
対象app-2.1.0-linux-x64.tar.gz版・OS・CPU・形式まで同じ
ダイジェスト64桁の16進数英字の大小を除き全桁一致

SHA-256は16進数で通常64文字です。SHA-512やSHA-1が公開されている場合は、自己判断で方式を変えず、公開値と同じアルゴリズムを指定します。

2. Windowsで確認する

certutil -hashfile C:\Users\you\Downloads\app.zip SHA256

# PowerShell
Get-FileHash C:\Users\you\Downloads\app.zip -Algorithm SHA256

certutil はWindows標準搭載です。PowerShellでは Get-FileHash が使えます。空白を含むパスは引用符で囲みます。

PowerShellで値だけを取り出すなら (Get-FileHash "path" -Algorithm SHA256).Hash を使えます。手入力し直さず、出力と公式値をコピーして照合すると転記ミスを減らせます。

3. Macで確認する

shasum -a 256 ~/Downloads/app.tar.gz

macOSでは shasum-a 256 でSHA-256を指定します。

Finderからターミナルへファイルをドラッグするとパスを入力できます。空白を含む名前でもシェル用に処理されたパスになるため便利です。

4. Linuxで確認する

sha256sum ~/Downloads/app.tar.gz

# 環境によっては利用可能
shasum -a 256 ~/Downloads/app.tar.gz

sha256sum は多くのLinuxディストリビューションに標準搭載されています。shasum が使える環境もあります。

出力は通常「ハッシュ値、空白、ファイル名」の順です。比較するのはダイジェスト本体で、表示されたファイル名ではありません。

5. 複数ファイルを一括検証する

配布元がGNU形式の checksums.txtSHA256SUMS を提供している場合、Linuxでは一覧を一括検証できます。一覧と対象ファイルを同じディレクトリに置いて実行します。

cd ~/Downloads/release
sha256sum -c checksums.txt

# 出力例
app-linux-x64.tar.gz: OK
app-linux-arm64.tar.gz: OK

一覧の一般的な1行は ハッシュ値 ファイル名 です。計算結果が一致すれば OK、異なれば FAILED と表示されます。

# checksums.txt の例
0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef  app-linux-x64.tar.gz

一覧ファイル自体も信頼できる公式経路から取得します。PowerShellの Get-FileHash はGNU一覧を直接 -c 検証するコマンドではないため、個別に比較するか配布元の案内に従います。

6. ISOイメージを検証する実践例

LinuxディストリビューションのISOなら、「ISOと公開値を入手する」「ローカルで計算する」「完全一致後にUSBへ書き込む」の順です。以下の名前は説明用です。

  1. 公式サイトから distro-24.04.isoSHA256SUMS を取得します。
  2. 公開値が公式HTTPSページまたは公式配布物のものか確認します。
  3. ISOがあるディレクトリで計算または一括検証します。
  4. OK または完全一致を確認してからUSBへ書き込みます。
cd ~/Downloads
sha256sum distro-24.04.iso

# GNU coreutilsで一覧内の手元にあるファイルだけを検証
sha256sum -c SHA256SUMS --ignore-missing

--ignore-missing はGNU coreutilsのオプションです。macOSの shasum など別実装で同じ指定が使えるとは限らないため、利用環境のヘルプを確認します。

7. チェックサムとGPG署名の違い

チェックサムは、手元のファイルが公開値と同じ内容かを確認します。転送エラーの検出には有効ですが、攻撃者がファイルと公開チェックサムの両方を書き換えられる状況では、それだけで配布元を認証できません。

検証主に確認できること注意点
SHA-256チェックサムバイト列が公開値と一致するか公開値を得た経路の信頼性が必要
GPG署名対応する秘密鍵で署名され、署名後に対象が変わっていないか公開鍵が本当に配布元のものか確認が必要

GPG署名は配布元が秘密鍵で署名し、利用者が対応する公開鍵で検証します。ただし、署名が正しくても公開鍵の所有者まで自動的に保証されるわけではありません。公式サイトの指紋やプロジェクトの案内など、別の信頼できる経路で鍵の真正性を確認します。

# 配布元の案内に従って公開鍵を入手・確認した後
gpg --verify SHA256SUMS.gpg SHA256SUMS
sha256sum -c SHA256SUMS --ignore-missing

この例は、署名付き一覧を検証してから、その一覧でファイルを照合する二段階です。署名が .asc 形式の場合など、実際の名前と手順は配布元の説明に従います。

8. 値が一致しないときの確認順

  1. ダウンロードが途中で壊れた: 公式配布元から再ダウンロードします。
  2. 公開値が違う: 転記ミスや古い版の値でないか確認します。
  3. ミラーが改ざんされている可能性: 公式サイトの値と照合します。
  4. コピー時の余分な文字: 前後の空白や改行を除きます。
  5. 計算方式が違う: SHA-256公開値にSHA-1などを比べていないか確認します。
  6. 対象が違う: 配布元が指定した圧縮ファイルやISOそのものを計算します。

それでも一致しないファイルは実行せず、配布元の案内やデジタル署名を確認してください。不一致は危険の証明とは限りませんが、安全を確認できていない状態です。

よくある間違いと直し方

Hash Generatorとの使い分け

Hash Generatorはテキスト入力の計算が中心です。大容量ファイルそのものの検証には、ファイルを直接処理するOS標準コマンドの方が現実的な場面が多くあります。

English summary

Use certutil or Get-FileHash on Windows, shasum -a 256 on macOS, and sha256sum on Linux. Hex letter case does not matter, but every digit must otherwise match. If values differ, re-download, verify the exact version, use the official value rather than a mirror-provided value, and remove copied whitespace. Do not run a file that still fails verification.

A GNU-format list can be checked with sha256sum -c checksums.txt. For an ISO, verify the algorithm, release, architecture, and filename before writing it to removable media. A checksum proves that bytes match the published digest, but cannot authenticate a distributor if both file and digest were replaced.

A valid GPG signature provides stronger evidence that signed data was produced with the corresponding private key and has not changed. You must still establish that the public key genuinely belongs to the distributor, for example by checking its fingerprint through an official, independent channel.

関連ツール / Related tools

関連ガイド / Related guides