Pack Camo

ハッシュ値計算・チェックサム確認ツール

テキストとファイルの MD5、SHA-1、SHA-256、SHA-512、SHA-3、BLAKE3、CRC32 を計算します。 処理はすべて端末内で完結し、アップロードは一切ありません。

入力
Text · files of any size
出力
Hex digests · checksum match

テキスト

43 B · UTF-8

ダイジェスト

計算中…

  • MD5…
  • SHA-1…
  • SHA-256…
  • SHA-512…

テキストとファイルのハッシュ値とチェックサムを、お使いの端末で計算

このハッシュ値計算ツールは、入力中のテキストや任意のサイズのファイルについて、MD5、SHA-1、SHA-224、SHA-256、SHA-384、SHA-512、SHA3-256、SHA3-512、BLAKE3、CRC32 のダイジェストをまとめて計算します。ダウンロードページに掲載されたチェックサムを貼り付ければ、ファイルが一致するかどうかがわかります。ファイルはブラウザ内で分割して読み込まれるので、数 GB のディスクイメージでもどこにもアップロードせずにハッシュ値を計算できます。

ハッシュ値を計算し、チェックサムを確認する方法

  1. 入力したテキストのハッシュ値を求めるならテキスト、1 つ以上のファイルならファイルを選びます。
  2. 必要なアルゴリズムを選びます。最初は MD5、SHA-1、SHA-256、SHA-512 が選択されています。
  3. ファイルの場合はページにドロップします。各ファイルの読み込みが進捗バーで表示され、完了するとダイジェストが表示されます。
  4. ダウンロードしたファイルを確認するには、公開されているチェックサムを期待するチェックサムの欄に貼り付けます。一致したアルゴリズムとファイルが緑色で示されます。
  5. ダイジェストをコピーしたり、小文字の 16 進数、大文字の 16 進数、Base64 を切り替えたり、すべてのファイルの .sha256 形式のチェックサムファイルを書き出したりできます。

ハッシュとは

暗号学的ハッシュ関数は、単語、文書、4 GB の ISO など、どんな入力も短い固定長の指紋に変換します。同じ入力からは常に同じダイジェストが得られ、入力の 1 ビットを変えるだけでダイジェストはまったく別のものになります。良いハッシュは一方向でもあり、ダイジェストから入力を逆算することも、同じダイジェストを持つ 2 つの入力を見つけることもできません。

だからこそハッシュは完全性の確認に役立ちます。ダウンロードしたファイルの SHA-256 が公開元の掲載する SHA-256 と一致すれば、そのファイルは途中で切れたダウンロードや改ざんされたコピーではなく、公開されたものとバイト単位で同一です。ハッシュは Git でのコンテンツの識別、バックアップでのファイルの重複排除、鍵と組み合わせたデータの署名にも使われます。

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

SHA-256
現在の標準的な選択です。安全で、どこでも対応しており、ほとんどのダウンロードページ、パッケージマネージャー、証明書で使われています。
SHA-384 / SHA-512
SHA-2 ファミリーのより長いものです。64 ビットのマシンでは SHA-512 の方が SHA-256 より速いことがよくあります。SHA-384 は Subresource Integrity の値でよく使われます。
SHA3-256 / SHA3-512
SHA-2 が弱体化した場合の備えとして 2015 年に標準化された、別の設計(Keccak)です。安全ですが、普及度は低めです。
BLAKE3
現代的で非常に高速な安全なハッシュで、新しいツールではファイルのチェックサムやコンテンツアドレッシングによく使われています。
MD5 と SHA-1
セキュリティ面では破られています。研究者は同じダイジェストを持つ異なるファイルを作れます。偶発的な破損の検出や古いチェックサムの照合には今でも使えますが、攻撃者に対する防御として頼ってはいけません。
CRC32
32 ビットの誤り検出符号で、暗号学的ハッシュではありません。ZIP、PNG、Ethernet の内部で偶発的な損傷を検出するために使われますが、意図的に偽造するのは簡単です。

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

OS やソフトウェアのダウンロードページでは、ファイルの横にチェックサムや SHA256SUMS ファイルが掲載されていることがよくあります。ダウンロードしたファイルをここにドロップし、公開されている値を期待するチェックサムの欄に貼り付けると、一致するダイジェストが強調表示されます。比較では大文字・小文字と前後のスペースを無視し、sha256sum の行全体や sha384-… の integrity 値もそのまま受け付けます。

一致すればファイルが壊れていないことは証明されますが、本物であることが証明されるのは、信頼できる情報源からチェックサムを入手した場合だけです。理想的には公開元自身のサイトから HTTPS で、または署名付きで入手してください。ミラーサイトのファイルを置き換えられる攻撃者は、その横のチェックサムも置き換えられるかもしれません。

書き出したチェックサムファイルは標準的な <digest> <filename> の形式なので、後から Linux や macOS で sha256sum -c checksums.sha256 を使って確認できます。

パスワードのハッシュ化には専用の関数を

MD5、SHA-1、さらには SHA-256 のような汎用ハッシュは高速になるよう設計されていますが、これはパスワードにとってはまさに逆効果です。GPU を持つ攻撃者は、漏えいしたリストに対して毎秒数十億回の推測を試せます。パスワードは、フレームワークに組み込まれた機能を通じて、Argon2id、bcrypt、scrypt のような低速でソルト付きのパスワードハッシュ関数で保存してください。そもそも強力なパスワードや鍵を作るにはパスワードジェネレーターを使ってください。

Webhook の署名のように共有の秘密鍵でメッセージを認証する場合は、秘密鍵とメッセージを自分で一緒にハッシュするのではなく、HMAC を使ってください。HMAC タブでは、ブラウザの Web Crypto API で HMAC-SHA256、HMAC-SHA384、HMAC-SHA512 を計算できます。

よくある質問

ファイルの SHA-256 チェックサムを確認するには?
「ファイル」を選び、ファイルをドロップして SHA-256 を選択したままにします。公開されているチェックサムを期待するチェックサムの欄に貼り付けると、一致した場合にダイジェストが強調表示されます。
MD5 は今でも安全に使えますか?
セキュリティ目的では使えません。MD5 と SHA-1 は衝突を意図的に作り出せるため、改ざんを防げません。偶発的な破損の検出や古いチェックサムの照合には今でも使えます。
ハッシュ値を元に戻したり復号したりできますか?
いいえ。ハッシュは一方向です。MD5 を元に戻せるとうたうサイトは、よくある入力のハッシュ表でダイジェストを検索しているだけです。短い入力やよくある入力がハッシュ化しても守られないのはそのためです。
パスワードの保存に SHA-256 を使うべきですか?
いいえ。Argon2id、bcrypt、scrypt などの専用のパスワードハッシュ関数を使ってください。意図的に低速でソルトが付いているため、漏えいしたパスワードの解読がはるかに難しくなります。
非常に大きなファイルのハッシュ値も計算できますか?
はい。ファイルはブラウザ内で数 MB ずつ読み込まれるので、数 GB のファイルでも少ないメモリでハッシュ値を計算できます。速度はディスクとプロセッサーによって変わります。
同じテキストなのにハッシュ値が異なるのはなぜですか?
目に見えない違いでハッシュは変わります。末尾の改行、Windows(CRLF)と Unix(LF)の改行コードの違い、テキストのエンコーディングの違いなどです。このツールは、ボックスに表示されているとおりのテキストを UTF-8 でハッシュ化します。
ハッシュと HMAC の違いは何ですか?
ハッシュはデータだけで決まるので、誰でも計算できます。HMAC は秘密鍵にも依存するので、鍵を持つ人だけが生成・確認できます。Webhook や API の署名には HMAC が使われます。
ファイルはアップロードされますか?
いいえ。ハッシュ計算はブラウザ内の WebAssembly ワーカーで行われます。ファイルやテキストがお使いの端末の外に出ることはありません。