ROT13エンコーダー

ROT13は、今も使われている最もシンプルな文字の隠し方です。アルファベットの各文字を13文字ずらし、同じ回転をもう一度かければ元に戻ります。Usenetで映画のネタバレやパズルの答え、きわどい冗談を隠すのに使われ、今でもテキストのかたまりを不意の視線から一時的に隠すのに便利ですが、本当の秘密保持には決して向きません。

ROT13のしくみ

  1. 1

    文字を1つ取り出す

    A–Zとa–zのみが対象です。数字、記号、空白はそのまま残します。

  2. 2

    13文字分だけ前へずらす

    AはNになります。MはZになります。NはAへと折り返します。

  3. 3

    2回かけて復号する

    アルファベットは26文字なので、13を2回ずらすと元に戻ります。

対応表

ROT13 ROT13
A N N A
B O O B
C P P C
D Q Q D
E R R E
F S S F
G T T G
H U U H
I V V I
J W W J
K X X K
L Y Y L
M Z Z M

なぜ13なのか

13 = 26 ÷ 2 なので、符号化と復号は同じ操作になります。符号化用と復号用の関数を別に用意する必要はなく、同じコードが両方をこなします。この対称性こそ、プログラマー向けの暗号ライブラリがどこにでもある時代より前に、ROT13を広く使わせた理由です。

ROT13が実際に役立つ場面

  • ネタバレ隠し: 「Qbg Fabjonyy vf Ebo’f qnq.」は切り替えれば読めますが、ぱっと見では無害です。
  • パズルの答え: 答えを回転させておき、平文で見せないようにします。
  • クロスワードのヒント対策: 一部のアプリは意図しないネタバレを防ぐためにヒントを回転させます。
  • 古いHTMLでのメール隠し: JavaScriptによる難読化が一般的になる前の、ちょっとした収集よけです。

ROT13がまったく向かない場面

  • パスワード。 暗号化ではありません。ひと目で破られ、自動化されたコードならマイクロ秒で元に戻せます。
  • 秘密。 「Guvf vf frperg」を見た人は、あなたが何をしたか、どう戻すかをすぐに理解します。
  • バイナリデータ。 ROT13は文字だけを対象にするため、バイナリのかたまりでは他の文字が壊れます。

派生

  • ROT5: 数字のみ、5だけずらします。0↔5、1↔6、2↔7、3↔8、4↔9。同じく自分自身が逆になる性質を持ちます。
  • ROT18: 文字にROT13、数字にROT5を適用します。英数字が混在する内容に対応します。
  • ROT47: 印刷可能なASCII(33〜126)を47ずらします。対称で記号も含みますが、出力はノイズのように見えます。
  • シーザー暗号: Nだけずらす一般形です。ROT13は自分自身が逆になる特別な場合にあたります。

歴史メモ

Usenetの慣習は1980年代初め、rec.humor などのニュースグループで生まれ、読者はネタバレタグ付きの投稿を任意で回転して読めました。今も多くのニュースリーダーが「ROT13を復号」する機能をキー1つで備えています。「ROT13」という名前はRFCの文書で定着しましたが、公式なプロトコルになったことは一度もありません。

よくある質問

シーザー暗号という意味では技術的には暗号ですが、鍵(13)は簡単に見当がつき、操作も広く知られています。セキュリティではなく、隠し(難読化)と考えてください。

いいえ。ずれるのはA–Zとa–zだけです。数字、空白、記号はそのまま通ります。

もう一度ROT13をかけます。13は26の半分なので、符号化と復号は同じ操作です。

はい。1〜25のどのずらし量でも、シーザー暗号エンコーダーを使ってください。ROT13はずらし量13の特別な場合にすぎません。

いいえ。入力したテキストは回転結果を作るためだけに使われ、その後は保存されません。ROT13は暗号化ではなく難読化なので、本当に秘密の内容はどのROT13ツールにも貼り付けないでください。

関連ツール

このツールは他の言語でも利用できます