ファイルハッシュ検証

ファイル

以下の「期待の検証」と比較して、アルゴリズムを再計算する必要があります。

ブラウザ内でローカルファイルの MD5、SHA-1、SHA-256、SHA-512 ハッシュ値を計算できます。ワンクリックでコピーしたり、公式の期待値を貼り付けて自動照合したりすることができ、ダウンロード検証やバージョン比較、電子証拠のフォレンジックに適しています。

関連おすすめ

ファイルハッシュとは?

ファイルハッシュ(File Hash)とは、任意のファイル内容をハッシュアルゴリズムによって固定長の文字列に変換した「デジタル指紋」です。同じファイルであれば毎回同じ結果になり、内容を少しでも変更するとハッシュ値はまったく別のものになります。

代表的な用途:①ダウンロード後に公式ハッシュと照合し、改ざんなしを確認;②バージョン管理 — Git / SVN は SHA-1 でコミットを識別;③ファイル比較 — 2 つのファイルが同一かどうかをすばやく判定;④デジタルフォレンジック — ファイルハッシュを電子証拠の完全性証明として利用。

本ツールが対応するアルゴリズム:MD5(128 ビット、耐衝突性はすでに破られている)、SHA-1(160 ビット、Google により衝突が公開済み)、SHA-256(256 ビット、主流で推奨)、SHA-512 ファミリー(512 ビット / SHA-384 / SHA-512/256、より高い安全性)。ハッシュと暗号化は異なり、ハッシュは一方向であり、ハッシュ値から元のファイル内容を逆算することはできません。

ユースケース

  • ソフトウェア、イメージ、ファームウェアをダウンロードしたあと、公式サイトで公開されている MD5 / SHA-256 ハッシュと照合し、バックドアの埋め込みや通信途中の破損がないことを確認します。
  • 大容量ファイルを同僚に送る前にハッシュを計算しておき、相手が受信後に再度計算して比較することで、通信中に破損していないことを確認できます。
  • 契約書、見積書、スキャン資料などの電子証拠に対して SHA-256 ハッシュを生成して保管し、後日の「改ざんなし」の証明根拠とします。
  • 同一素材の 2 つのバージョン(修正前 / 修正後)を比較するとき、まずハッシュで完全一致するかを確認し、再配布が必要かどうかを判断します。
  • Git リポジトリ、バックアップパッケージ、ミラーノード間で整合性チェックを実施し、SHA-256 を一度計算するだけで各ノードが同期しているかをすばやく判定できます。

使い方

  1. アップロードエリアをクリックし、ローカルの任意のファイルを選択します(同時に処理できるのは 1 ファイルです)。
  2. ツールが自動的にハッシュ計算を開始し、進捗バーにリアルタイムでパーセントが表示されます。ファイルが大きいほど待ち時間は長くなります。
  3. 右側のハッシュ結果を確認し、必要に応じてアルゴリズム、大文字 / 小文字、SHA-512 シリーズのバリアントを切り替えます。
  4. 公式または相手から提供された期待値を「期待値の検証」入力欄に貼り付けると、ツールが即座に一致 / 不一致を表示します。
  5. 「ハッシュをコピー」ボタンを押して結果をクリップボードに保存するか、「再計算」を押して現在のファイルを再計算します。

特徴

  • ローカル計算でプライバシーを保護:すべてのハッシュ演算は現在のブラウザ内で完結し、ファイルはサーバーにアップロードされません。
  • 4 つの主要アルゴリズム:MD5、SHA-1、SHA-256、SHA-512 をサポートし、ほとんどのダウンロード検証とファイル指紋の用途をカバーします。
  • SHA-512 シリーズの細分化:SHA-512、SHA-384、SHA-512/256 を切り替えられ、さまざまな長さの期待値にマッチします。
  • 大文字 / 小文字をワンクリック切替:デフォルトでは小文字で出力し、Windows ツールや公式の大文字ハッシュと比べる際はチェックボックスをオンにするだけです。
  • 期待値を貼り付けて自動照合:「期待値の検証」入力欄に公式のハッシュを貼り付けると、即座に一致 / 不一致の結果を表示します。
  • リアルタイム進捗バー:大容量ファイルを分割しながら読み込んで計算し、進捗パーセントをリアルタイムで更新。ブラウザが固まることはありません。
  • ハッシュ値をワンクリックコピー:計算完了後にコピーボタンを押すと結果がクリップボードに保存され、検証表やチャット欄にすぐに貼り付けられます。

Best Practices

ダウンロードファイルの検証には SHA-256 を優先する

公式サイトで公開されている現代的なソフトウェア、Linux ディストリビューション、コンテナイメージはほぼすべて SHA-256 を提供しています。MD5 は公式サイトが明確に MD5 を提供しており、かつ情報源が信頼できると確認できる場合のみ使用し、アルゴリズムの弱点を理由に不要なリスクを背負わないようにしてください。

比較時はハッシュ値の大文字・小文字を無視する

ハッシュアルゴリズム自体に大文字・小文字の概念はなく、表示形式が異なるだけです。本ツールはデフォルトで小文字を出力しますが、Linux / macOS のコマンドラインは小文字が多く、Windows の検証ツールは大文字で表示することがあります。不一致に遭遇したときは、まず大小文字の違いだけではないかを確認し、ファイル破損と誤判定しないようにしましょう。

ハッシュ値はファイル内容全体に対して計算する

圧縮ファイル、複数ファイルのアーカイブ、ISO イメージは「完全な状態」でハッシュを計算してください。解凍後にハッシュを取ると「解凍後のこの内容」が正しいことしか証明できず、圧縮ファイル自体の正当性は証明できません。

電子証拠の場面ではハッシュと署名を併用する

SHA-256 ハッシュは「ファイルの完全性」しか証明できず、「誰が送ったか」は証明できません。外部に電子証拠として提示する場合は、ハッシュに加えて送信者の電子署名や信頼できる第三者によるタイムスタンプを組み合わせることを推奨します。ハッシュ単独では完全な証拠チェーンとして不十分です。

超大ファイルやデバイスの性能不足時は別ツールを使う

本ツールは GB 級未満の一般的なファイルに適しています。極端に大きいファイルや古いデバイスでは分割計算が遅くなるため、そのような場合はローカルの openssl dgst、certutil、またはシステムの sha256sum などのコマンドラインツールで高速に処理する方が適しています。

鍵付き整合性検証が必要なときは HMAC を使う

ファイルハッシュは内容の完全性しか検証できず、送信者の身元は検証できません。「このファイルは私が信頼する送信元から来ており、改ざんされていない」ことを確認したい場合は、通常のファイルハッシュではなく、共有鍵と組み合わせた HMAC 生成器によるハッシュチェーンを利用してください。

よくある質問

MD5 と SHA-256 はどちらを選べばよいですか?

日常的なダウンロード検証、バージョン比較、ファイル重複検出には SHA-256 の方が安定しています。MD5 は、相手側が MD5 しか提供しない場合、あるいはローカルファイルの重複削除などセキュリティに関わらない場面だと確認できる場合のみ利用してください。セキュリティが重視される用途(電子証拠、ファームウェア検証)では SHA-256 以上を必ず使ってください。

ハッシュ値の大文字・小文字が違えば検証失敗ですか?

いいえ、失敗ではありません。ハッシュアルゴリズム自体に大文字・小文字の概念はなく、表示形式が異なるだけです。本ツールはデフォルトで小文字を出力するため、大文字の期待値がある場合は「大文字出力」をチェックして再計算してください。比較するときは大小文字を無視し、文字そのものが完全に一致するかを確認しましょう。

公式で公開されているハッシュ値と自分の計算結果が一致しないのはなぜですか?

よくある原因:①ダウンロード中にファイルが破損している(再ダウンロードする);②ダウンロードしたバージョンと公式ハッシュの対象バージョンが一致していない(バージョン番号、ファイル名、分割ファイルの番号を確認);③圧縮ファイルの一部分だけしか計算していない;④公式が別のアルゴリズムで公開している(例:自分は MD5 を使ったが、相手が SHA-256 を公開している)。

このツールは SHA-224、BLAKE2、SM3 に対応していますか?

現在対応しているのは MD5、SHA-1、SHA-256、および SHA-512 シリーズ(SHA-512、SHA-384、SHA-512/256)です。SHA-224、BLAKE2、SM3 などには対応していません。これらのアルゴリズムが必要な場合は、ローカルのコマンドラインツール(openssl、sha256sum など)の利用を推奨します。

ファイルはサーバーにアップロードされますか?安全ですか?

アップロードされません。本ツールは crypto-js を使い、ブラウザ内でファイルを分割しながらローカル計算するため、ファイル内容は常にあなたのデバイスとブラウザのメモリ内に留まり、いかなるリモートサーバーにも送信されません。機密文書、契約書、ファームウェアの処理にも安心してご利用いただけます。

複数のファイルを一度に計算できますか?

現在のページでは 1 度に 1 ファイルずつ処理します。バッチ検証が必要な場合は操作を繰り返すか、ローカルのコマンドラインツール(Windows の certutil -hashfile、macOS / Linux の md5sum / shasum など)で複数ファイルのハッシュを一括出力してください。

SHA-512 と SHA-384 はどちらを選ぶべきですか?

相手が SHA-384 を明示している場合は SHA-384 を選んでください。その他の「より安全にしたい」場面では SHA-512 を選んでおけば問題ありません。SHA-512/256 は出力長が SHA-256 と同じ(64 文字)ですが、内部では SHA-512 の圧縮関数を使うため、出力長に制約のあるシステムでより高い耐衝突性を得たい場合に適しています。

ハッシュと電子署名はどう違いますか?

ハッシュは「ファイル内容が完全である」ことしか検証できず、「誰が送ったか」は証明できません。電子署名 = ハッシュ + 送信者の秘密鍵による暗号化であり、検証側は公開鍵で復号することで完全性と送信者の身元を同時に確認できます。送信元の証明が必要なときは、ハッシュに加えて別途署名の検証も行ってください。

大容量ファイルのハッシュ計算でブラウザが固まりますか?

本ツールは 2MB ずつ分割してストリーム読み込みで計算するため、数十 MB から数百 MB の一般的なファイルであれば問題なく完了します。GB 級を超える場合やデバイスの性能が低いときは、計算時間が顕著に長くなります。コマンドラインで巨大ファイルを検証する場合は、システムの標準ツールや openssl の利用を推奨します。

トラブルシューティング

ハッシュ値が公式で公開されているものと一致しない

まず、自分がダウンロードしたのが公式がハッシュを公開しているそのバージョンであるかを確認します(ファイル名、バージョン番号、分割ファイルの番号をすべて照合)。次に、大文字・小文字が一致しているか、ファイル全体に対して計算しているかを確認してください。すべて一致しているのに合わない場合は、ダウンロードの途中でファイルが破損している可能性があるため、再ダウンロードしてください。

大容量ファイルの計算が非常に遅い

本ツールは大容量ファイルを 2MB 単位で分割ストリーム計算します。数百 MB までは通常数秒で完了します。GB 級以上の場合はコマンドラインの使用を推奨します。Windows では certutil -hashfile <ファイル名> SHA256、macOS / Linux では shasum -a 256 <ファイル名> を利用してください。

大文字をチェックしたらハッシュ値が変わった

ハッシュ値自体は変わっておらず、文字が大文字に変換されただけです。比較するときは大小文字を無視するか、期待値側も同じ大小文字に統一してから比較してください。

アルゴリズムを切り替えたのに結果が更新されない

アルゴリズムや大文字 / 小文字を切り替えると、ツールは現在のファイルを自動的に再計算します。もし更新されない場合は、「再計算」ボタンを押して強制的に再計算してください。

用語集

MD5
128 ビット(32 文字の十六進数)出力のハッシュアルゴリズムです。処理速度は速いものの、耐衝突性はすでに失われており(2004 年に王小雲氏らが突破)、ファイル指紋や重複検出には使えますが、セキュリティが重視される用途には適しません。
SHA-1
160 ビット(40 文字の十六進数)出力です。2017 年に Google が SHA-1 の衝突を公開し、主要ブラウザやシステムでは推奨されなくなりましたが、Git の古い履歴では現在も利用されています。
SHA-256
SHA-2 ファミリーのメンバーで、256 ビット(64 文字の十六進数)出力です。現在主流で推奨されるアルゴリズムであり、HTTPS、Bitcoin、新しい Git リポジトリなどで広く使われています。
SHA-512
512 ビット(128 文字の十六進数)出力で、SHA-256 よりも耐衝突性に優れており、長いファイルではわずかに高速です。本ツールでは SHA-384(96 文字)と SHA-512/256(64 文字。SHA-256 と同じ長さだが内部は SHA-512 の圧縮関数)も同時にサポートしています。
十六進数(Hex)
ハッシュ値のもっとも一般的な表記方法で、0-9 と a-f からなり、1 バイトあたり 2 文字を使います。本ツールは大文字・小文字の切り替えに対応しています。
衝突(Collision)
異なる 2 つのファイルからまったく同じハッシュ値が生成されることです。耐衝突性はハッシュアルゴリズムの安全性を評価する重要な指標であり、MD5 と SHA-1 では実用的な衝突がすでに確認されています。
ローカル計算
すべてのハッシュ演算は現在のブラウザとデバイスのメモリ内で行われ、ファイル内容はリモートサーバーに送信されません。機密文書の検証に適しています。

本ツールが対応するアルゴリズムの比較

アルゴリズムを選ぶ際は、相手がどのハッシュを提供しているか、そして利用シーンがセキュリティ上重要かどうかを重視してください。

アルゴリズム出力長安全性典型的な用途
MD5128 ビット / 32 文字弱(衝突が突破済み)ローカル重複削除、旧バージョン互換
SHA-1160 ビット / 40 文字弱(衝突が突破済み)Git の履歴互換
SHA-256256 ビット / 64 文字ダウンロード検証、ファームウェア、証拠(推奨)
SHA-384384 ビット / 96 文字高セキュリティ要件、プロトコル規定
SHA-512512 ビット / 128 文字より強高セキュリティ要件
SHA-512/256256 ビット / 64 文字SHA-256 長のまま SHA-512 の内核を使いたい場合

用途別のおすすめアルゴリズム

同じファイルでも、利用シーンが異なれば最適なアルゴリズムも変わります。

用途推奨アルゴリズム主な価値
ソフトウェア / イメージ / ファームウェアのダウンロード検証SHA-256汎用性が高く、公式でも広く提供
Git のコミット指紋SHA-1過去の履歴との互換性
ローカルファイルの重複削除MD5高速でリスクが低い
電子証拠のフォレンジックSHA-256 + 署名ハッシュと署名の組み合わせで司法的にも安心
転送後の整合性確認SHA-256双方で計算でき、比較が容易
プロトコルで出力長が規定されているSHA-384 / SHA-512/256プロトコルの制約を満たす

Authoritative References