§

ハッシュ化するテキストを貼り付けるか、ファイルをドロップしてください

エンコーディング
§

ハッシュ生成器 — オンラインで SHA-256、MD5、SHA-1 を生成

4 種類のダイジェストはすべてブラウザー内でローカルに計算されます。アップロードは行われません。
§

MD5

非推奨
§

SHA-1

非推奨
§

SHA-256

§

SHA-512

国内の暗号運用では、CRYPTREC 電子政府推奨暗号リストと NISC のガイドラインに従い、SHA-1 を段階的に廃止し SHA-256 / SHA-512 へ移行する作業が進んでいます。e-Tax の XBRL 申告書添付ファイルのチェックサム、マイナンバーカード署名の整合性確認、GitHub のコミット SHA、AWS S3 (Tokyo) の ETag、JIIMA 認証取得ベンダーが扱う電子帳簿保存法のタイムスタンプ検証など、ハッシュ計算は日常業務です。FISC 安全対策基準下では外部サービスへ機密ファイルを貼れないため、本ツールがブラウザ内で完結します。

暗号学的ハッシュとは何ですか?

暗号学的ハッシュ関数は、任意の長さの入力を受け取り、固定長のダイジェストを出力します。同じ入力は常に同じダイジェストを生成し、1 ビット反転すれば出力ビットのおよそ半分が変化します。このツールは、最も広く利用されている 4 つのダイジェスト — MD5RFC 1321)、SHA-1SHA-256SHA-512(SHA ファミリーは FIPS 180-4 で定義されています)— を、任意のテキストやファイルに対して計算します。データは一切お使いの端末から外へ送信されません。

このハッシュ生成器はどのように機能しますか?

ハッシュ計算はすべてお使いのマシン上で行われます。SHA-1、SHA-256、SHA-512 はブラウザーのネイティブな crypto.subtle.digest API に委ねられ、MD5 は Web Crypto が提供していないため、同梱のパブリックドメイン実装を使用します。手順は次のとおりです:

  1. 入力はテキストエリアから読み込まれるか、ファイルがディスクから ArrayBuffer に読み込まれます。テキストはハッシュ化の前に UTF-8 でエンコードされるため、ダイジェストはサーバー側の hashlib.sha256(text.encode()) 呼び出しが生成する値と一致します。
  2. 各アルゴリズムはメッセージをブロック境界までパディングし、ビット演算とモジュラー算術の演算列によって入力バイトと内部状態を混ぜ合わせながら、ブロック単位で処理します。
  3. 最後のブロックを処理し終えると内部状態が確定します:MD5 は 128 ビット、SHA-1 は 160 ビット、SHA-256 は 256 ビット、SHA-512 は 512 ビットを生成します。
  4. 生のダイジェストバイトは、パネル上部で選択したエンコーディングに応じて、小文字の 16 進数または標準的な Base64 として整形されます。
  5. 各ダイジェストは コピー ボタンを備えた専用の読み取り専用テキストエリアに書き込まれます。ライブ モードをオンにすると、入力するたびにハッシュが再計算されるので、雪崩効果をリアルタイムに観察できます。

どのハッシュアルゴリズムを使うべきですか?

ここで提供する 4 つのアルゴリズムは、レガシーなチェックサムから現行の暗号推奨まで、用途の全域をカバーします。慣れではなく、目的に応じて選んでください:

  • MD5(128 ビット) — 高速で広く使われていますが、暗号学的には破られています。実用的な衝突は 2004 年から公開されています。重複排除キー、キャッシュバスター、ETag 風のフィンガープリント、信頼できるカタログとファイルの整合性確認など、セキュリティを伴わないチェックサムにのみ使用してください。
  • SHA-1(160 ビット) — セキュリティ用途では非推奨です。2017 年の SHAttered 攻撃により、公開された PDF の衝突が実証されました。レガシーな Git のオブジェクト ID、古い TLS 証明書、また下位のハッシュ破綻が鍵を漏らさない HMAC 構成では、いまだに目にすることがあります。新規の用途には採用しないでください。
  • SHA-256(256 ビット) — 現行の汎用デフォルトです。TLS 証明書のフィンガープリント、Bitcoin のブロックハッシュ、ソフトウェアリリースのチェックサム、コンテナイメージのダイジェスト、ほとんどの現代的なコード署名パイプラインで使われています。迷ったらこれを選んでください。
  • SHA-512(512 ビット) — SHA-256 と同じ SHA-2 ファミリーですが、内部状態が大きく、ワードサイズも 64 ビットと広くなっています。64 ビット CPU 上では SHA-256 より高速なことが多く、衝突マージンを増やしたい場合や HMAC キー向けに長めのダイジェストが必要な場合に推奨される選択肢です。

このハッシュ生成器を使う理由は何ですか?

  • プライバシー:入力のすべてのバイトはお使いのブラウザー内でローカルにハッシュ化されます。ファイルのアップロード、ネットワーク往復、サーバーログはいずれもありません。ファイルピッカーは File API を通じてディスクから直接読み込みます。
  • 1 回で 4 つのダイジェスト:1 度貼り付けるだけで MD5、SHA-1、SHA-256、SHA-512 を並べて読み取れます。出力エンコーディングは再ハッシュ化せずに 16 進数と Base64 を切り替えられます。
  • 標準に忠実な出力:SHA ファミリーは crypto.subtle.digest に委譲しています。これはお使いの OS がすでに信頼しているのと同じ FIPS 180-4 実装です。MD5 は RFC 1321 にバイト単位で従います。
  • 検証作業のために設計:ライブモードでは入力するたびに雪崩効果を確認できます。ファイルパネルはタブが扱えるだけのメモリ範囲でバイナリを処理できるため、ターミナルを使わずにリリースアーカイブを検証できます。

ハッシュ関数の一般的な用途は何ですか?

ハッシュは日常のエンジニアリング業務のあらゆる場面で登場します:

  • ダウンロードの検証:リリースアーカイブの SHA-256 ダイジェストを、プロジェクトのウェブサイトで公開されている値と比較し、転送中に改ざんされていないことを確認します。
  • 統合のデバッグ:パートナーサービスがリクエスト署名で期待する MD5 や SHA-256 を再現し、正準文字列ビルダーの 1 文字ずれを突き止めます。
  • コンテンツアドレッシング:ペイロードから決定的な ID を生成し、キャッシュキー、重複排除マーカー、Git 風のオブジェクト識別子として利用します。

ハッシュの例はどのようなものですか?

ASCII 文字列 hello をハッシュ化すると、MD5 は 5d41402abc4b2a76b9719d911017c592、SHA-1 は aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d、SHA-256 は 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824、SHA-512 は 9b71d224bd62f3785d96d46ad3ea3d73… で始まる 128 文字の 16 進文字列になります。末尾に半角スペースを 1 つ加えて再ハッシュ化すると、どのダイジェストも見分けがつかないほど変化します。

このハッシュ ジェネレーターは、OS がすでに信頼しているのと同じプリミティブのうえで、すべてブラウザー内で動作します:SHA ファミリーには Web Crypto を、Web Crypto が提供しない唯一のダイジェストには小さくて監査済みの MD5 ルーチンを使います。貼り付けて、ファイルをドロップして、ダイジェストをコピーする — それ以外のものはタブの外へ出ません。