ハッシュ計算

文字を入力するかファイルを選べば、5 種類を一度に。

設定
ハッシュ値
MD5
SHA-1
SHA-256
SHA-384
SHA-512

このハッシュツールでできること

ハッシュ関数は、一文でも、パスワードでも、4 GB のディスクイメージでも、あらゆる入力を固定長のフィンガープリントに変換します。入力を 1 ビット変えるだけでフィンガープリントは完全に変わるため、ファイルが壊れずに届いたかの検証、バイト単位で比較せずに 2 つの文書が同一かを確認すること、パスワードそのものを保存せずにパスワードを保管することの標準的な手段になっています。このページは、入力したテキストや選択した任意のファイルについて MD5・SHA-1・SHA-256・SHA-384・SHA-512 を同時に計算し、結果を 16 進数または Base64 で表示します。

SHA 系はブラウザの Web Crypto API で動作します。TLS と同じ実装なので、大きなファイルでも高速かつ正確です。MD5 はブラウザが提供していないため、RFC 1321 のコンパクトなリファレンス実装を同梱しており、標準テストベクトルで検証済みです。ファイルはローカルで読み込まれ、アップロードされることはありません。

使い方

テキストを入力または貼り付けると、5 つのハッシュが随時更新されます。「ファイル…」をクリックすると、ダウンロードしたファイル、インストーラー、バックアップのハッシュを計算でき、ファイル名とバイト数が入力欄の下に表示されます。「大文字」や「Base64」を切り替えて、参照元の形式に合わせてください。Linux の sha256sum は小文字の 16 進数を出力し、多くの API や Docker イメージのダイジェストも小文字の 16 進数ですが、Content-MD5 ヘッダーや Subresource Integrity 属性は Base64 を使います。ダウンロードを検証するには、配布元のページに記載されたチェックサムを「検証」欄に貼り付けます。一致した行が緑色になり、大文字小文字や形式にかかわらず一致したかどうかがステータスに表示されます。

HMAC を有効にして秘密鍵を入力すると、鍵付きハッシュ(HMAC-SHA256 など)を計算できます。Stripe、GitHub、Slack の Webhook 署名、AWS Signature v4、そして多くの API 認証方式はこの仕組みで作られています。MD5 の HMAC はここでは提供していません。現代のシステムで使うべきものではないからです。

どのアルゴリズムを使うべきか

2026 年の標準的な選択は SHA-256 です。あらゆる言語の標準ライブラリに含まれ、64 文字の 16 進ダイジェストを生成し、実用的な攻撃は知られていません。SHA-512 は 64 ビット CPU では高速で、より長いダイジェストが必要な場面で使われます。SHA-1 と MD5 は衝突耐性が破られています。研究者は 2004 年に同じ MD5 を持つ 2 つの異なるファイルを、2017 年には同じ SHA-1 を持つファイルを生成しました(SHAttered 攻撃)。そのため署名や証明書には使ってはいけませんが、重複排除、キャッシュキー、同じサイトが公開したチェックサムとダウンロードの照合といったセキュリティ以外の用途では今でも問題ありません。パスワードの保存には、これらのどれも単独では適していません。意図的に処理を遅くした bcrypt、scrypt、Argon2 を使ってください。

背景:MD5 から SHA-3 へ

MD5 は 1991 年に MIT の Ron Rivest が MD4 のより高速な後継として設計し(RFC 1321)、1990 年代のインターネットで汎用チェックサムとなりました。続いて 1995 年に NSA が 160 ビット出力の SHA-1 を発表しました(FIPS 180-1)。両者への攻撃が成熟するにつれ、NIST は 2001 年に SHA-256 や SHA-512 を含む SHA-2 ファミリーを公開し、公開コンペティションを経て 2015 年に構造の異なる代替として Keccak を SHA-3 に選定しました。ブラウザは W3C が 2017 年に標準化した Web Crypto API を通じて SHA-1・SHA-256・SHA-384・SHA-512 を提供しており、これがサーバーなしでこのようなツールを実現できる理由です。

利用される場面

ダウンロードページに掲載された SHA-256 と照合して ISO イメージ、インストーラー、ファームウェアを検証する。Git のコミット ID(SHA-1、SHA-256 へ移行中)。Docker や OCI のイメージダイジェスト(sha256:…)。パッケージのロックファイルや HTML の Subresource Integrity ハッシュ。HMAC-SHA256 による Webhook 署名の検証。CDN の ETag やキャッシュキー。バックアップツールでのファイル重複排除。Bitcoin のプルーフ・オブ・ワーク(二重 SHA-256)。そして 2 つの大きなエクスポートファイルの簡易な同一性チェック。署名やダイジェストが JWTJSON ペイロードの中に入っている場合は、まずコンテナをデコードしてから、ここでハッシュを検証してください。

よくある質問

ファイルはアップロードされますか?

いいえ。ファイルはブラウザが読み込み、Web Crypto API でローカルにハッシュ化されます。インターネットを切断しても動作します。

ハッシュが配布元のチェックサムと一致しないのはなぜですか?

多くの場合、ダウンロードが不完全か、ファイルのバージョンが異なるか、16 進数と Base64 を比較しています。「検証」欄はどちらの形式も受け付け、大文字小文字を区別しません。それでも一致しない場合は再ダウンロードしてください。

ハッシュから元のテキストを復元できますか?

できません。ハッシュは一方向です。ただし短い入力やよくある入力は参照テーブルで見つかることがあり、これがパスワードを単純なハッシュとして保存してはいけない理由です。

MD5 はまだ使っても安全ですか?

チェックサムや重複排除には問題ありません。署名、証明書、パスワード保存などセキュリティに関わる用途には使えません。SHA-256 以上を、パスワードには Argon2 のような低速ハッシュを使ってください。

HMAC とは何ですか?

ハッシュに秘密鍵を組み合わせたもので、鍵を持つ人だけが生成・検証できます。API が Webhook やリクエストに署名する標準的な方法です。