MD5とSHA-1はパスワードには安全ではないため、保存にはbcrypt、scrypt、Argon2を使ってください。

SHA-512は512ビットで、16進数なら128文字、Base64なら88文字です。SHA-384はこれを切り詰めた版です。64ビットCPUでは大きなファイルでSHA-256より速いことがよくあります。多くのLinuxディストリビューションが公開しているSHA512SUMSもここで照合できます。

使い方

  1. テキストを入力または貼り付けると、すべてのハッシュ値がリアルタイムで更新されます。
  2. 「ファイル」に切り替えて、サイズを問わず1つ以上のファイルをドロップ。進捗バー付きで分割して読み込みます。
  3. ハッシュ値をタップするとコピーできます。「大文字」や「Base64」で出力形式を切り替えられます。
  4. 「HMAC」をオンにして秘密鍵を入力すると、通常のハッシュの代わりにHMACを計算します。
  5. 「照合」に期待するハッシュ値を貼り付けると、一致する行が強調表示されます。一致しない場合はその旨が表示されます。
  • 計算はWebAssemblyでブラウザ内で行われます。テキスト・ファイル・鍵が送信されることはありません。
  • テキストは入力したとおりのUTF-8バイト列(空白・改行を含む)としてハッシュ化されます。
  • MD5とSHA-1はチェックサム用途には使えますが、安全性はありません。機密用途にはSHA-256、SHA-3、BLAKE3を、パスワード保存にはbcryptやArgon2を使ってください。
  • HMACはMD5、SHA-1、SHA-2、SHA-3で使えます。HMACがオンの間、BLAKE2b・BLAKE3・CRC32は非表示になります。
  • 照合は大文字・小文字と空白を区別せず、Base64の値にも対応しています。

ハッシュの用途

暗号学的ハッシュ関数は、どんな入力でも決まった長さの「指紋」に変換します。同じバイト列からは必ず同じ値が出て、1ビット変わるだけで出力のおよそ半分のビットが変わります。たとえば hello のSHA-256は 2cf24dba 5fb0a30e 26e83b2a c5b9e29e 1b161e5c 1fa7425e 73043362 938b9824(読みやすいよう空白で区切っています) で、先頭を大文字の Hello にするとまったく別の値になります。

主な用途は、公開チェックサムとの照合によるダウンロードの検証、重複ファイルの検出、Gitのような内容ベースの保存、HMACによるAPIリクエストの署名です。テキストは入力どおりのUTF-8バイト列としてハッシュするため、末尾の空白やWindowsの改行コードでも結果が変わります。

アルゴリズムの選び方

MD5(128ビット)とSHA-1(160ビット)には実用的な衝突攻撃が知られており、偶発的な破損の検出には使えても、セキュリティ用途には向きません。チェックサムや署名にはSHA-256・SHA-512(FIPS 180-4)が標準的で安全な選択です。SHA-3(FIPS 202)はSHA-2とは別の設計で、予備として位置づけられています。BLAKE3は大きなファイルで特に速い新しいハッシュです。CRC32はZIPやPNG、イーサネットで使われる32ビットの誤り検出符号で、伝送エラーは見つけられますが簡単に偽造できます。

ハッシュは暗号化ではない

ハッシュ値から元のデータを復号することはできません。ただし短い入力やよく使われる文字列は総当たりで見つかるため、パスワードの保存には素のSHA-256ではなく、Argon2・scrypt・bcryptのようなソルト付きの低速な関数を使います。HMAC(RFC 2104)は秘密鍵をハッシュに組み込む方式で、鍵を持つ人だけが署名を作成・検証できます。

よくある質問

ファイルのハッシュ値(チェックサム)はどう確認しますか?

「ファイル」に切り替えてダウンロードしたファイルをドロップし、配布元のチェックサムを「照合」欄に貼り付けます。一致したアルゴリズムの行が強調表示され、どれも一致しなければファイルが異なるか破損しています。

ハッシュは元に戻したり復号したりできますか?

できません。ハッシュは一方向関数です。よくあるパスワードのような短い入力は大量に試せば見つかることがありますが、ハッシュ値を元のデータに戻す鍵は存在しません。

MD5はまだ安全に使えますか?

セキュリティが関係しない用途、たとえば偶発的な変更や重複ファイルの検出に限られます。同じMD5を持つ別のファイルを意図的に作れるため、署名や改ざん対策にはSHA-256以上を使ってください。

SHA-256とSHA-512の違いは?

SHA-256は256ビット(16進数64文字)、SHA-512は512ビット(128文字)を出力します。どちらもSHA-2ファミリーで安全とされ、64ビットCPUではSHA-512のほうが速いこともあります。

ハッシュ計算のためにファイルがアップロードされますか?

されません。ファイルはブラウザ内で少しずつ読み込まれ、WebAssemblyで計算されます。数GBのファイルでも端末の外には出ません。

プログラムで計算したハッシュと一致しないのはなぜですか?

多くの場合、入力のバイト列が違っています。余分な改行、文字コードの違い、16進数とBase64の取り違えなどです。末尾の空白や改行コードを確認し、同じ形式で比べてください。

一緒によく使われるツール

使い方

手順

  1. テキストを入力または貼り付けると、すべてのハッシュ値がリアルタイムで更新されます。
  2. 「ファイル」に切り替えて、サイズを問わず1つ以上のファイルをドロップ。進捗バー付きで分割して読み込みます。
  3. ハッシュ値をタップするとコピーできます。「大文字」や「Base64」で出力形式を切り替えられます。
  4. 「HMAC」をオンにして秘密鍵を入力すると、通常のハッシュの代わりにHMACを計算します。
  5. 「照合」に期待するハッシュ値を貼り付けると、一致する行が強調表示されます。一致しない場合はその旨が表示されます。

ショートカット

Ctrl + Vテキストやファイルを貼り付けEsc照合欄をクリア

知っておくと便利

ブラウザ内で動作します。ファイルや文字が端末の外に送られることはありません。