ハッシュ生成ツール

あなたのマシンで計算される本物のダイジェスト:MD5、SHA-1、SHA-256、SHA-384、SHA-512、HMAC-SHA-256。入力したテキストにも、ドロップしたファイルにも対応します。これは AI チャットが最も苦手とする仕事のためのツールです。チャットボットにハッシュを頼むと、完璧に見えて何とも一致しない文字列を発明します。テキストを予測しているのであって、計算しているのではないからです。ここではアルゴリズムが実際に動作し、ファイルがアップロードされることはなく、答えは推測ではなくダイジェストそのものです。

MD5
—
SHA-1
—
SHA-256
—
SHA-384
—
SHA-512
—
HMAC-SHA-256
キーを入力すると、上記のテキストまたはファイルの HMAC を計算します。

計算したハッシュと発明したハッシュがまったく同じに見える理由

ハッシュは特異な性質を持つ指紋です。入力の 1 ビットを変えると、出力ビットのおよそ半分が反転します。ハッシュ空間に「惜しい」はなく、テキスト予測モデルがすがれるパターンもありません。アルゴリズムを実際に実行していないモデルにとって、SHA-256 の 64 文字の 16 進数はランダムと区別がつきません。だからチャットボットはできる唯一のことをします。ランダムらしく見える 16 進数 64 文字を、完璧な書式で、しかし完全な間違いとして生成するのです。文字列のどこにも偽物らしさがないため、そうした創作を含むリリースノートや検証手順、インシデントレポートが出回ってきました。防御は退屈ですが完全です。計算過程を示せないものからのダイジェストは決して受け入れないこと。このページは構造そのものが過程を示します。MD5 は RFC 1321 から公然と実装されています(WebCrypto は MD5 を意図的に省略しているので、MD5 を提供するページは自前で書いたか、偽っているかのどちらかです)。SHA ファミリーはブラウザ自身の WebCrypto を通り、ドロップされたファイルはローカルの File API で読み取られ、その場でハッシュ化されます。何もアップロードされません。人々がハッシュ化するファイルは、NDA 下のファームウェアイメージ、データベースのダンプ、本番ホストの正確なバイナリなど、機密性の高いものが多いからこそ重要です。

あと 2 つの隣接ツールで一式が揃います。手元にあるのがハッシュで「これは何で作られたのか」が疑問なら、ハッシュ識別ツールがその長さ、文字種、前置記号を読んで候補を挙げます。形状では区別できないものも含め、正直に。もう一つの古典的な混同は「可逆」と「一方向」の違いです。記事 Base64 は暗号化ではない では、エンコーディング(可逆、キーなし)、暗号化(可逆、キーあり)、ハッシュ(一方向、キーなし)という、混同が侵害報告を埋め尽くす 3 つの概念を切り分けています。ファイルではなく稼働中サーバーの証明書を確認したい場合は、SSL チェッカーと SSL グレーダーが同じ仕事のネットワーク側を担います。

よくある質問

AI チャットボットにハッシュ化してもらえませんか?

ハッシュにそっくりな文字列は渡してくれます。SHA-256 なら自信満々の 16 進数 64 文字です。ただし、その文字列は発明されたものです。言語モデルはダイジェストを計算しません。テキストを予測するだけであり、ハッシュとは「もっともらしさ」と「正しさ」が何も共有しない、まさにその種のテキストなのです。読み取れないファイルをハッシュ化することもできません。このページは、あなたの OS と同じアルゴリズムで、あなた自身のマシン上で本物のダイジェストを計算します。入力がファイルなら、そのファイルがブラウザの外に出ることはありません。特集記事 チャットボットに秘密を扱わせてはいけない では、3 つの失敗モードをすべて解説しています。

MD5 は破れているのに、なぜここにあるのですか?

世界が今も MD5 チェックサムを公開しているからです。ベンダーのダウンロードページ、レガシーシステム、古いデータベースのダンプ、10 年分のフォーラム投稿が MD5 を指紋として使っており、ダウンロードを公開された MD5 と照合するには本物の MD5 を生成する必要があります。WebCrypto はそれを拒否するため、このページの実装は RFC 1321 から書かれ、RFC 自身のテストベクタで固定されています。衝突耐性が破れているということは、セキュリティ上の判断には使えないということです。しかし、既存の基盤が消えるわけではありません。レガシーな指紋の検証に使い、新しいものの保護には決して使わないでください。

HMAC とは何ですか?なぜキーが必要なのですか?

素のハッシュは、メッセージがダイジェストと一致することを証明します。しかし誰が作ったかは証明しません。誰でも何でもハッシュ化できるからです。HMAC は秘密キーを構造に混ぜ込むため、ダイジェストが送信者の認証も兼ねます。webhook や署名付き API リクエストの本人証明はこうして行われます。同じテキストとキーをここに入力すれば、あなたのコードが生成すべき値が得られます。計算はローカルで行われるので、本番の webhook シークレットをデバッグのためにチャットや見知らぬサーバーに貼る必要は決してありません。

パスワードのハッシュ化にこれらを使ってもいいですか?

いいえ。これらは高速な汎用ダイジェストであり、「高速」はパスワードハッシュにあってはならない性質そのものです。GPU を持つ攻撃者は 1 秒に何十億回も試行します。パスワードは、意図的に遅くソルト付きに設計された bcrypt、scrypt、Argon2 の領分です。ハッシュがあって何が生成したか知りたい場合は ハッシュ識別ツールがその形状を読みます。新しいパスワードが必要なら パスワード生成ツールがローカルで作ります。

16 進数の大文字と小文字は重要ですか?

ダイジェストにとっては重要ではありません。16 進数は表記法であり、A-F と a-f の違いはタイポグラフィです。比較にとっては重要です。バイト単位の文字列比較は、同じハッシュを別物と判定するからです。この切り替えはすべての出力を一度に書き換え、比較対象のチェックサムの書式に合わせられます。ほとんどの Unix ツールは小文字で、Windows ツールの一部は大文字で出力します。