MD5 / SHA ハッシュ計算
エンコード・暗号処理はすべてブラウザ内で完結します。データは送信されません
テキストの MD5・SHA-1・SHA-256・SHA-512 のダイジェストを計算し、16進数または Base64 で出力します。日本語や中国語、emoji は常に UTF-8 のバイト列として計算するので、「こんにちは」のダイジェストは openssl や sha256sum が同じファイルに対して出す値と完全に一致します —— 文字単位で計算すると、多言語が混在したテキストでは誰も検証できない結果になります。MD5 は本ツール内蔵の実装を使います。ブラウザ標準の Web Crypto がすでに提供していないからです。最後に一言:MD5 と SHA-1 はパスワードや署名にはとうに不向きで、チェックサムや、他人から渡されたダイジェストの再現にだけ向いています。
機能
- 4つのアルゴリズム:MD5・SHA-1・SHA-256・SHA-512
- 出力は16進数(大文字・小文字を切替可)または Base64
- 日本語や中国語、emoji は UTF-8 バイトで計算し、結果は openssl や sha256sum と 1 桁まで一致
- MD5 は内蔵実装 —— ブラウザの Web Crypto はすでに MD5 を提供していません
- 数 MB のテキストでも計算しきり、ページが応答しなくなることはありません
- ダイジェストは端末のメモリ内で計算され、内容がブラウザの外へ出ることはありません
使い方
- テキストを入力欄に貼り付けます
- アルゴリズムと出力のエンコードを選びます(16進数の大文字が必要ならチェックを入れます)
- Ctrl/⌘ + Enter を押すか「実行」をクリックします
- 「コピー」でダイジェストを取り出せます
よくある質問
- 「現在の環境では Web Crypto が利用できません」と出るのはなぜですか?
- SHA 系はブラウザ標準の crypto.subtle を使いますが、これは安全なコンテキストにしか存在しません:https:// か localhost / 127.0.0.1 でこのページを開いた場合だけです。http:// や社内 IP で開くとそのままでは使えません —— これはブラウザの安全ポリシーであり、本ツールの制限ではありません。その環境でも MD5 は計算できます。あの実装は crypto.subtle に依存していないからです。
- MD5 はまだ使えますか?
- チェックサムなら使えますが、セキュリティ用途には使えません。MD5 と SHA-1 はどちらも衝突を構成できることが実証されています —— 異なる2つの内容が同じダイジェストになるのです。ですからパスワードの保存、デジタル署名、改ざん検知には使わないでください。パスワードには bcrypt・scrypt・Argon2 のような、遅くなるよう設計された専用のハッシュを使ってください。
- ハッシュと暗号化は何が違いますか?
- ハッシュは一方向です:内容からダイジェストは計算できますが、ダイジェストから内容へは戻せず、「復号」というものもありません。暗号化は可逆で、鍵が必要です。ですから世の中の「MD5 復号」は実質的にレインボーテーブルか総当たりであり、出てくるのはたまたま一致した原文にすぎません。
- 日本語で計算したダイジェストが、渡された値と違うのはなぜですか?
- 多くの場合、符号化の違いです。同じ「こんにちは」でも UTF-8 では 15 バイト、Shift_JIS では 10 バイトなので、ダイジェストが違って当然です。このサイトは常に UTF-8 で処理します —— これも現在の Web ページと API の共通の約束事です。
- 入力の長さに上限はありますか?
- 入力の上限はおよそ 5 MB で、超えるとページが固まるのではなく明確なメッセージが出ます。ダイジェスト自体の長さは固定です:MD5 は 128 ビット、SHA-1 は 160 ビット、SHA-256 は 256 ビット、SHA-512 は 512 ビットで、入力の長さとは関係ありません。
関連ツール
HMAC 署名
エンコード・暗号秘密鍵とメッセージから HMAC 署名を計算します。空白や日本語、中国語を含む鍵でも Node・Java・Python と一致し、鍵は端末内の計算にだけ使われて送信されません。
Base64 変換
エンコード・暗号テキストを Base64 に変換し、Base64 からテキストへ戻します。日本語や中国語、emoji も UTF-8 として正しく処理。すべてブラウザ内で完結し、内容は送信しません。
パスワード生成
生成長さと文字種を指定して強力なランダムパスワードを生成。エントロピーを即時表示し、強さを数値で比較できます。パスワードは端末内のみ、送信も記録もありません。
URL エンコード
エンコード・暗号日本語や中国語、空白・記号を %XX にエスケープし、復元します。URL 全体とパラメータ値では方式が異なり、間違えるとリンクが開けません。ブラウザ内で処理します。
HTML 実体参照
エンコード・暗号< > & と引用符を HTML 実体参照に変換し、文字へ戻します。デコードは1回だけで、&lt; は山括弧ではなく < になります。すべてブラウザ内で処理します。
JWT デコード
エンコード・暗号JWT を header・payload・signature に分け、iat や exp を読める日時に変換します。署名は検証せず、その旨を出力に明記します。すべてブラウザ内で処理します。