ハッシュ生成

テキストを貼り付けると 5 つのダイジェストを一度に取得 — ボタン不要、アップロードなし。

使い方

  1. テキストを入力または貼り付けると、5 つのダイジェストが一度に表示されます。ボタンを押す必要はありません。
  2. 各行のボタンで任意のダイジェストをコピーするか、5 つすべてを .txt ファイルとしてダウンロードできます。コピーされるのはラベルのない 16 進数文字列のみです。
  3. 比較対象のシステムがダイジェストを大文字で出力する場合は「16 進数を大文字にする」をオンにします。切り替えても入力内容は消えません。
  4. すべてブラウザー内で動作します。アップロード、保存、アドレスバーへの書き込みは行いません。

例

テキスト

hello world

ダイジェスト

MD5:     5eb63bbbe01eeed093cb22bb8f5acdc3
SHA-1:   2aae6c35c94fcfb415dbe95f408b9ce91ee846ed
SHA-256: b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
SHA-384: fdbd8e75a67f29f701a4e040385e2e23986303ea10239211af907fcbb83578b3e417cb71ce646efd0819dd8c088de1bd
SHA-512: 309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee511a7c7a9bcd3ca86d4cd86f989dd35bc5ff499670da34255b45b0cfd830e81f605dcf7dc5542e93ae9cd76f

11 文字が 11 UTF-8 バイトとしてハッシュ化されています。「你好,世界」は 5 文字ですが 15 バイトです。結果の上に表示されるバイト数が、実際にハッシュ化された数です。

ルール・制限・既知の問題

  • MD5 と SHA-1 は破られており、セキュリティに関わる用途には絶対に使わないでください。衝突を任意に生成できます。ここに用意しているのは、非敵対的な整合性確認(手元のテキストがどこかに公開された値と一致するかの確認など)のみです。
  • これらのダイジェストをパスワードの保存に使わないでください。ソルト、鍵導出、ワークファクターがありません。パスワードの保存には bcrypt、scrypt、Argon2、PBKDF2 が必要です。
  • テキストのみです。ファイルはハッシュ化しません。ダウンロードのチェックサムが必要な場合は、ご自身のマシンで sha256sum や shasum を使ってください。
  • 入力は常に UTF-8 バイトとしてエンコードします。UTF-16、16 進数、Base64 の入力モードはなく、生のバイト列をハッシュ化する方法もありません。
  • ハッシュ化前に入力は一切変更しません。トリミング、Unicode 正規化、大文字小文字の変換、不可視文字の削除は行いません。別のシステムとダイジェストが一致しない場合、テキストがバイト単位で同一でない可能性がほぼ確実です。
  • Unicode 正規化は重要です。「é」を 1 コードポイントで書いた場合と、「e」+結合アクセントで書いた場合は異なるバイト列であり、異なるダイジェストになります。これは正しい挙動です。黙って正規化すると違いが隠れてしまいます。
  • 末尾のスペースや最後の改行も入力の一部です。`echo "abc" | sha256sum` は「abc\n」をハッシュ化するため、ここでの「abc」のダイジェストと異なります。比較が必要な場合は改行を自分で追加してください。
  • ハッシュは大文字小文字を区別し、一方向です。「Hello」と「hello」は異なり、ダイジェストから元のテキストに戻すことはできません。
  • 非対応:HMAC などの鍵付きダイジェスト、SHA-224、SHA-3、RIPEMD、Whirlpool、BLAKE、CRC32、ソルト付き KDF、ファイルハッシュ化、「期待するダイジェストを貼り付けて照合する」機能。鍵付き HMAC ダイジェストには JWT ツールを使ってください。
  • 最大 100,000 文字です。それを超えると切り詰めた結果ではなくエラーを表示します。アップロード、保存、URL への書き込み、共有は一切行いません。共有ボタンが共有するのはこのページのアドレスのみです。

ダイジェストと一緒に使われることの多いツールです。