無料ファイルハッシュ計算ツール
任意のファイルのSHA-1、SHA-256、SHA-384、SHA-512、MD5ハッシュを計算します。ファイルの整合性を検証し、変更を瞬時に検出します。
ファイルハッシュとは?
ファイルハッシュは、ファイルの内容の固定長フィンガープリントです。最小の変更でも完全に異なるハッシュが生成されます。ハッシュは、整合性の検証、破損の検出、ファイルの真正性の確認に役立ちます。一般的なアルゴリズムには、SHA-256(モダン、安全)、MD5(古い)、SHA-1があります。
アルゴリズム、簡単な歴史
このツールには5つのアルゴリズムがあり、リリース順です。MD5(Message Digest 5、MIT の Ronald Rivest、RFC 1321 1992年4月公開)は128ビットのハッシュを生成し、1990年代と2000年代初頭の支配的な汎用ハッシュでした。1996年(Dobbertin の擬似衝突)から暗号学的な弱点が現れ始めました、実用的な衝突攻撃は2004年8月の CRYPTO 2004 で Xiaoyun Wang と Hongbo Yu によって実証され、1台のマシンで1時間以内に完了しました。Marc Stevens は2008年に X.509 証明書を衝突偽造できる選択プレフィックス衝突攻撃を発表しました。MD5 は今やあらゆる暗号目的で破られています、衝突耐性が重要な場所(デジタル署名、証明書フィンガープリント、パスワードハッシュ)では決して使用しないでください。非暗号整合性チェック(不良ディスクやノイズの多いネットワーク転送による偶発的な破損の検出)とソースが悪意を持っていないと信頼するコンテンツアドレス可能識別子には依然として有用です。
SHA-1(Secure Hash Algorithm 1、NSA 設計、FIPS 180-1 1995年4月公開)は160ビットのハッシュを生成し、1990年代後半から2010年代初頭まで支配的な暗号ハッシュでした。理論的攻撃は2005年に Wang、Yin、Yu によって提案されました。最初の実用的な SHA-1 衝突は2017年2月23日に Marc Stevens が率いる Google + CWI Amsterdam チームによって公開されました、「SHAttered」攻撃、約9000京の SHA-1 計算を使って同一の SHA-1 ハッシュだが視覚的に異なる内容の2つの PDF ファイルを生成しました。ブラウザはその時までに SHA-1 TLS 証明書を段階的に廃止し始めていました、現代の Git はオブジェクト ID で SHA-1 から SHA-256 へ移行中です。MD5 と同様、SHA-1 は非暗号整合性に適していますが、2026年で衝突耐性が重要な場所では決して使用すべきではありません。
SHA-2(NSA、FIPS 180-2 2002年8月公開)は現在の作業用ハッシュファミリーで、SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256 を含む関連関数のセットです。SHA-256 は256ビットのハッシュを生成し、SHA-384 は384ビット、SHA-512 は512ビット、384 は基本的に出力を切り詰め異なる IV を持つ SHA-512 です。2026年に SHA-2 ファミリーへの実用的攻撃は存在しません、SHA-256 は新しいアプリケーションのデフォルト選択で、Bitcoin(マイニングとアドレス導出の両方)、TLS 証明書フィンガープリント、Git のオブジェクト ID 移行計画、Ethereum トランザクションハッシュ、JWT HS256 署名、ほとんどのソフトウェア配布チェックサムの背後にあるハッシュ関数です。SHA-512 は256ビットの出力では足りないとき、または64ビット CPU でわずかに速いパフォーマンスが欲しいときに好まれます(SHA-512 の内部演算は64ビット、SHA-256 は32ビット、より大きな出力にもかかわらず、64ビットハードウェアの CPU サイクルあたりより多くのデータを処理します)。
SHA-3(Keccak、Guido Bertoni、Joan Daemen、Michaël Peeters、Gilles Van Assche 設計、2012年10月の NIST SHA-3 コンペ優勝、2015年8月に FIPS 202 として標準化)は暗号保険ポリシーです、SHA-2 と構造的に異なり(Merkle-Damgård ではなくスポンジ構築)、SHA-2 を破るブレークスルーが必ずしも SHA-3 を破らないようになっています。SHA-3 は現在このツールのアルゴリズムリストにありません、Web Crypto API が元の仕様にそれを含めなかったためです、現代のブラウザは将来的に追加するかもしれません。SHA-2 ファミリーは今日のブラウザ側ハッシングの推奨デフォルトです。
SHA-2 を超えた現代の代替
2つの非 NIST ハッシュファミリーがパフォーマンス上の理由で人気を集めました。BLAKE2(Aumasson、Neves、Wilcox-O'Hearn、Winnerlein、2013年1月)は SHA-2 より速く、同等のセキュリティを持ち、暗号通貨、Argon2 パスワードハッシュ、SHA-2 の速度がボトルネックである高性能アプリケーションで広く使用されています。BLAKE3(O'Connor、Aumasson、Neves、Wilcox-O'Hearn、2020年1月)は多くの CPU コアにわたって並列化可能な再設計で、さらに速い、特に作業がコア間で清潔に分散されるため、非常に大きなファイルのハッシングに魅力的です。どちらも標準 Web Crypto API にはありません、このツールは互換性のために SHA-2 ファミリー + MD5 + SHA-1 に固執します、コマンドラインの BLAKE3 ハッシングには標準実装は BLAKE3 リファレンスリポジトリの b3sum ツールです。2026年のブラウザ側ファイルハッシングの選択は、他のものを使う特定の理由がない限り、依然として SHA-256 です、広い互換性、特許問題なし、現代のほとんどの CPU でハードウェアアクセラレーション(2016年の Goldmont 以降の Intel SHA Extensions、本質的にすべてのスマートフォンの ARMv8 SHA-2 命令)、ブラウザ内でマルチギガバイトのファイルでも許容できる速度。
ファイルハッシュが価値を発揮する場面
- ダウンロードファイルが発行者のチェックサムと一致することを確認する。 Linux ディストリビューション(Ubuntu、Debian、Fedora、Arch)、オープンソースプロジェクト(Node.js、Python、Go)、セキュリティに敏感なダウンロード(Tor ブラウザ、署名されたファームウェアイメージ)はダウンロードと一緒に SHA-256 ハッシュを公開します。ダウンロード後、ローカルでファイルをハッシュし、公開された値と1文字ずつ比較、一致すれば、ファイルは無傷で到着し、改ざんまたは中断されたコピーではありません。
- 重複ファイルを見つける。 同一のファイルは、ファイル名、場所、変更タイムスタンプに関係なく常に同一のハッシュを生成します。シンプルな重複排除ワークフロー:ディレクトリツリー内の各ファイルをハッシュし、ハッシュでグループ化、同じグループに複数のファイルがあるものは重複です。Linux の
fdupesのようなツールはまさにこれを MD5 で行います(衝突に対する暗号耐性に依存しないので、ここでは許容できる)。 - ファイル変更の検出。 今日ファイルをハッシュし、ハッシュを保存し、後で再びハッシュし、比較、違いがあればファイルが1ビットでも変更されたことを意味します。ファイル整合性監視ツール(Tripwire は1992年のオリジナル、OSSEC と Wazuh は現代の後継)、バックアップ検証システム、rsync スタイルの増分同期で使用されます。
- コンテンツアドレス可能ストレージ。 Git は各 blob、tree、commit を SHA-1 ハッシュで識別します(将来のバージョンで SHA-256 に移行中)。IPFS は multihash を使用します。Docker レイヤーはコンテンツハッシュでアドレス指定されます。「これは同じコンテンツか」が安価で確実に答えられる必要があるあらゆるシステムは、コンテンツハッシングを基盤メカニズムとして使用します。
- フォレンジックの管理連鎖。 証拠ファイルがイメージ化されるとき、フォレンジック標準は取得時とその後の各時点でディスクイメージの SHA-256 を計算することです、不一致は改ざんを証明します。NIST の National Software Reference Library(NSRL)はフォレンジックトリアージのための既知の良いハッシュと既知の悪いハッシュを公開します。
- ソフトウェアサプライチェーン検証。 Sigstore、in-toto、SLSA、npm パッケージ整合性(
package-lock.jsonのintegrity: sha512-...)、Go のモジュールプロキシのチェックサムデータベース、すべてが整合性プリミティブとしてファイルハッシングに依存します。公開されたアーティファクトのハッシュは、「この署名を信頼する」と「これが署名が証明したアーティファクトである」の間の橋です。
このツールがどう機能するか
ファイルをエディタにドロップすると、ブラウザは FileReader.readAsArrayBuffer() を介して(または現代のブラウザでは Promise を返すより効率的な File.arrayBuffer() メソッドを介して)それを ArrayBuffer に読み込みます。Web Crypto API の crypto.subtle.digest(algorithm, buffer) は、ブラウザのエンジン内の C++ で実装されたネイティブコードでバッファをハッシュし、ハードウェアアクセラレーション(Goldmont 以降の x86-64 の Intel SHA Extensions、本質的にすべてのスマートフォンの ARMv8 SHA-2 命令)をしばしば使用します。返された ArrayBuffer は表示用に16進文字列に変換されます。3つの純粋 JavaScript ハッシュ(MD5 と SHA-1、Web Crypto API が拒否するか polyfill が使用されている場合)は専用の小さな実装を介して実行されます。アップロードステップなし、サーバー処理なし、テレメトリなし、ファイルをドロップする間に DevTools の Network タブを確認(リクエストは出ません)、または読み込み後にページをオフライン(機内モード)にしてもハッシャーはローカルファイルでまだ動作します。実用的なファイルサイズ制限はブラウザのメモリです、1 GB のファイルをハッシュすることは動作しますが、操作中に ~1 GB の RAM を消費します、マルチギガバイトのファイルはブラウザにスワップを強制したり失敗させたりするかもしれません。非常に大きなファイルには、専用のコマンドラインツール(macOS/Linux の shasum -a 256、Windows の certutil -hashfile ... SHA256)が最良の選択です。
プライバシー、ここでブラウザ専用が特に重要な理由
ハッシュしたいファイルには、ダウンロードしたソフトウェア(まだ信頼していないため整合性をまさに確認している)、プライベート文書(誰にも与えずにハッシュを記録したい)、未公開のメディアファイル、フォレンジック調査の証拠、ファイルをハッシュサービスにアップロードすることさえ許容できない独自のビルドが含まれるかもしれません。サーバー側ファイルハッシャーは、「ファイルを保持しません」と主張する場合でも、ファイルの内容全体を受け取ります、それが彼らのメモリにある瞬間、プライバシー保証は失われています。このツールは Web Crypto API を介してブラウザで完全に実行されます、ファイルはネットワークを横断しません。ファイルをドロップする間に DevTools の Network タブを確認(唯一のネットワーク活動は最初のページ読み込みのはず)。読み込み後にページをオフライン(機内モード)にしてもハッシャーはまだ動作します、ローカルのみのアーキテクチャを証明します。何らかの機微なものを含むファイル、機密文書、未公開ソフトウェア、財務記録、医療スキャン、NDA またはコンプライアンス規制でカバーされているものすべて、にはブラウザ側ハッシングが唯一の安全なオプションです。
よくある質問
どのハッシュアルゴリズムを使うべきですか?
新しいアプリケーションには、SHA-256が推奨されます。MD5とSHA-1は暗号的に弱いと見なされていますが、基本的な整合性チェックには引き続き使用可能です。このツールは、ソフトウェアが使用する標準に合わせて、すべてのオプションを提供します。
ハッシュを逆にして元のファイルを取得できますか?
いいえ。ハッシュは一方向関数です。ハッシュを逆にして元のデータを取得することはできません。これは意図的なものです · これがハッシュをパスワードの保存とファイル整合性の検証に安全にしています。
ファイル検証にMD5は安全ですか?
MD5は暗号的に安全ではなく、セキュリティアプリケーションには使用すべきではありません。ただし、基本的な破損検出と一般的なチェックサムには機能します。重要な検証にはSHA-256を使用してください。
ファイルサイズ制限はありますか?
厳密な上限はありませんが、実用的な制限はブラウザのメモリに依存します。数百 MB までのファイルはどんな現代のデバイスでも素早くハッシュされます。1-2 GB の範囲のファイルは動作しますが、ハッシュパス中にファイルサイズに等しい RAM を消費します。マルチギガバイトのファイルはスワップやブラウザの OOM クラッシュを引き起こすかもしれません。非常に大きなファイルには、コマンドラインツール(macOS/Linux の shasum -a 256 file、Windows の certutil -hashfile file SHA256、PowerShell の Get-FileHash)がより良く処理します、ファイル全体をメモリにロードする代わりにストリームできるからです。
2つのファイルが同じハッシュを持つとはどういう意味ですか?
健全なハッシュ関数(SHA-256、SHA-512、または2026年の SHA-2 ファミリーのいずれか)では、ファイルがビット単位で同一であることを意味します、2つの異なるファイルが同じハッシュを生成する確率は無限小です。破られたハッシュ関数(MD5、SHA-1)では、同一のファイルまたは故意に作られた衝突のいずれかを意味する可能性があります。実用的なルール:2つのファイルの SHA-256 を計算して同じ値を得れば、ファイルは同じです。MD5 を計算して同じ値を得れば、ファイルはおそらく同じですが、決意を持った敵がそれらを衝突するように設計したかもしれません。