古典暗号の復号
エンコード処理はすべてブラウザ内で完結します。データは送信されません
この種のツールの実際の用途は「どう処理されたか分からないテキストが手元にある」(パズル、CTF、友人から送られた暗号文)ことで、「カエサルだと分かっているから解きたい」ことではありません。そこで既定ではよくある変換をまとめて表示し、読める行を探せるようにしています。1 つに絞りたいときは方式を選んでください。 動かすべき文字だけを動かします。 カエサル・アトバシュ・ヴィジュネルは英字だけを対象とし、約物・数字・空白はそのまま残します —— 一緒にずらすとテキストの構造が壊れ、元に戻せなくなるためです。唯一の例外が ROT47 で、これは表示可能 ASCII 全体を 47 桁回すと定義されているため約物も変わります。その旨は結果に明記します。
機能
- 既定ではすべて表示:ROT13・アトバシュ・ROT47・ROT18・ROT5 を一度に出し、読める行を一目で探せます
- カエサルは任意のシフトに対応し、総当たり(25 通り)も可能
- ヴィジュネルは任意の鍵に対応。鍵は鍵の英字でのみ進み、約物は鍵を消費しません
- ポリュビオス方陣の符号化と復号
- ⚠️ ROT47 だけは約物と数字も変わり、その理由を結果に明記します
- ⚠️ 方陣は I と J を統合するため、復号すると J はすべて I になります —— 暗号の性質であり、結果にも明記します
- 培根暗号(ベーコン暗号)は実装しません:24 文字版と 26 文字版の 2 つの字母があり、同じ A/B 列が全く別の文に復号される一方、テキストからはどちらか判別できないためです
使い方
- 処理したいテキストを貼り付けます
- 既定の「すべて表示」でよくある変換が出ます。1 つに絞る場合は「方式」で選択します
- カエサルでシフトが不明な場合は「総当たり」を有効にして順に読みます
よくある質問
- すべての文字を一緒にずらさないのはなぜですか?
- 古典暗号は英字だけを対象に定義されているからです。カエサル・アトバシュ・ヴィジュネルはいずれも字母の置換で、約物・数字・空白は関与しません。それらまでずらすと読みやすい構造が壊れ、復号しても元に戻りません。唯一の例外が ROT47 で、定義上表示可能 ASCII 全体を 47 桁回します。
- ROT13 で暗号化と復号が同じ操作になるのはなぜですか?
- 英字は 26 文字で、13 はちょうど半分だからです —— 2 回回すと元に戻ります。アトバシュと ROT47 も同様です(後者は表示可能な 94 文字を 47 桁回すので、これも半分)。したがってこれらの方式に「方向」は不要で、本ツールもそれを装いません。
- ヴィジュネルの鍵に数字や記号があるとどうなりますか?
- 無視され、英字だけが使われます。鍵はシフト量を決めるもので、シフトは 0〜25 しかあり得ないため、数字や記号に対応するシフトは存在しません。また鍵は鍵の英字でのみ進みます:暗号文の約物や空白は鍵を消費しません。そうしないと、空白が数個増えただけで同じ平文が全体的にずれてしまいます。
- ベーコン暗号がないのはなぜですか?
- 互換性のない 2 つの字母があるからです:原版は 24 文字(I/J と U/V が同じ枠)、後の版は 26 文字です。同じ A/B の並びが版によって全く別の文に復号される一方、テキスト自体からはどちらか分かりません。確認のしようがない「復号結果」を出すのは、出さないより悪いと判断しました。
関連ツール
Base64 変換
エンコードテキストを Base64 に変換し、Base64 からテキストへ戻します。日本語や中国語、emoji も UTF-8 として正しく処理。すべてブラウザ内で完結し、内容は送信しません。
URL エンコード
エンコード日本語や中国語、空白・記号を %XX にエスケープし、復元します。URL 全体とパラメータ値では方式が異なり、間違えるとリンクが開けません。ブラウザ内で処理します。
HTML 実体参照
エンコード< > & と引用符を HTML 実体参照に変換し、文字へ戻します。デコードは1回だけで、&lt; は山括弧ではなく < になります。すべてブラウザ内で処理します。
JWT デコードと検証
エンコードJWT を header・payload・signature に分け、秘密鍵で HS256/384/512 の署名を検証します。exp・nbf は読める日時に変換。すべてブラウザ内で処理します。
Unicode エスケープ
エンコード日本語や中国語、emoji などの非 ASCII 文字を \uXXXX・\xXX・&#xXXXX; のエスケープ表記に変換し、復元もできます。すべてブラウザ内で処理し、送信しません。
ファイル → Base64
エンコードファイルをドロップすると Base64 と src・url() にそのまま貼れる data URL が得られます。MIME・サイズ・エンコード後の長さも表示。送信はありません。