ハッシュはデータの照合用の値

SHA-256は、入力バイト列から256ビット(16進数64桁)の値を計算します。同じバイト列なら同じ値になります。1文字の変更でも通常は大きく異なる値になりますが、数学的に衝突が不可能という意味ではありません。

ハッシュ生成ツールでは、文字列やファイルのハッシュをブラウザ内で計算できます。暗号化とは違い、元データを復号する機能はありません。ただし、短い文字列や推測しやすい入力は、候補のハッシュとの比較で分かる場合があります。

SHA-256で検算する例

改行を含まない半角小文字の hello をUTF-8として計算すると、次の64桁になります。

2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

末尾に改行や空白がある hello は別のバイト列です。照合が合わない場合は、大文字小文字、文字コード、BOM、改行コード、ファイルの版を確認します。

SHA-256の雪崩効果(helloとhellpのハッシュ比較)と主要ハッシュ関数(MD5/SHA-1/SHA-256/SHA-384/SHA-512)の仕様・ファイル検証フロー図解
図1:SHA-256の雪崩効果(1バイトの違いで64桁の16進数ダイジェストが全面変化する性質)と、配布ファイルのチェックサム検証3ステップ

主要ハッシュアルゴリズム(MD5 / SHA-1 / SHA-2)の仕様・安全性比較表

NIST FIPS 180-4(Secure Hash Standard)および移行指針に基づき、代表的なハッシュ関数の出力長と現在の用途区分を比較します。

アルゴリズム ビット長 16進数桁数 衝突耐性の現状(NIST基準) 主な用途と注意点
MD5 128 bit 32桁 非推奨(実時間で衝突生成が可能) レガシー環境の単純な転送エラー確認のみ。改ざん検知や署名には使用不可
SHA-1 160 bit 40桁 非推奨(2017年 SHAttered で衝突実証) Gitの旧オブジェクト識別や既存データの互換確認のみ。新規設計では非採用
SHA-256 256 bit 64桁 現行標準(FIPS 180-4 推奨) 配布ソフトウェアのチェックサム検証、TLS証明書、電子署名、ファイル整合性確認
SHA-384 384 bit 96桁 現行標準(高セキュリティ) 64ビットCPU上の高速演算、SRI(Subresource Integrity)や高強度TLS通信
SHA-512 512 bit 128桁 現行標準(最大出力長) Linux配布イメージ(ISO)の公式チェックサム、長期アーカイブの整合性検証

ダウンロードしたファイルを確認する手順

  1. 配布元の信頼できるページや署名済み情報で、対象ファイルのアルゴリズムと参照値を確認します。
  2. ツールで同じアルゴリズムを選び、対象ファイルを読み込みます。
  3. 先頭や末尾だけでなく全桁を照合します。16進数の英字の大小は値としては同じです。
  4. 不一致なら使い始めず、版・ファイル名・再取得の必要を確認します。

一致が示すのは、信頼できる参照値に対する整合性です。改ざんされたページに置かれたハッシュも同時に書き換えられれば検出できません。ハッシュの一致だけで配布者の真正性やマルウェアがないことを保証するものではありません。

OS標準コマンドでのSHA-256確認方法(macOS / Windows / Linux)

ブラウザ上のハッシュ生成ツールに加え、大容量のOSイメージ(数GBのISOファイルなど)をターミナルで直接照合したい場合は、各OSの標準コマンドも併用できます。

OS環境 標準コマンド例 出力の特徴
macOS (zsh / bash) shasum -a 256 filename.iso 小文字64桁のハッシュ値とファイル名を表示
Windows (PowerShell) Get-FileHash .\filename.iso -Algorithm SHA256 大文字64桁の Hash プロパティを表示(大小は同値)
Linux (Ubuntu / Debian等) sha256sum filename.iso または sha256sum -c SHA256SUMS チェックサム一覧ファイル(-c)による一括自動照合に対応

アルゴリズムの使い分け

SHA-256など配布元が指定した方式を使います。SHA-1は既存データとの互換性確認に使われることがありますが、新しい衝突耐性が必要な設計には選びません。結果の長さが異なる方式どうしを比較しても一致しません。

パスワード保存には専用の方式が必要

SHA-256をそのまま使ったり、単にsaltを足したりするだけでは、パスワード保存に適した設計になりません。サービス実装ではArgon2idなどの専用方式と適切なパラメーターを用い、現在のOWASPガイドを確認します。このツールは認証システムやパスワード保管庫ではありません。

よくある質問

ハッシュから元の文章へ戻せますか?

一般的な逆変換はありません。一方、推測可能な入力は候補照合され得るため、ハッシュ化だけで秘密を守れるとは限りません。

全桁を比較する必要がありますか?

はい。SHA-256なら64桁すべてを比較します。一部の一致をファイル全体の一致の代わりにしないでください。