ROT47 暗号エンコード・デコード|数字も記号も含めた ASCII 全域を 1 関数で可逆変換
ASCII の印字可能領域 33〜126 を 47 文字ずらす ROT47 で、テキストを符号化・復号する変換ツール。英字だけの ROT13 と違い、数字や記号も対象に入ります。同じ操作を 2 回かければ元に戻る自己逆元。
💡 このツールについて
ROT13 で文章を隠そうとしたら、数字やカッコがそのまま残ってしまった——そんな経験から ROT47 にたどり着く人は多いです。ROT13 は英字 26 文字だけを 13 ずらす方式なので、Player1 (HP:30) のような文字列は数字も記号も読めたまま残ります。
ROT47 は対象を ASCII 33〜126 の印字可能 94 文字に広げ、その半分にあたる 47 だけずらします。94 の半分なので、符号化と復号がまったく同じ操作になります。エンコード用とデコード用で関数を切り替える必要がなく、同じ文字列を 2 回通せば必ず元に戻る点が扱いやすさの核です。
空白・タブ・改行、そして日本語のような ASCII 範囲外の文字は変換せずそのまま残るため、レイアウトや区切りを保ったまま英数字・記号部分だけを難読化できます。CTF の問題文づくり、掲示板でのネタバレ伏せ字、軽い目隠しといった「読めなくすればよい」用途に向いています。
🧐 よくある質問
ROT13 と ROT47 は何が違いますか? ROT13 は英字 26 文字のみを 13 ずらします。ROT47 は ASCII 33〜126 の 94 文字(数字・記号を含む)を 47 ずらします。記号や数字も変換したいときは ROT47 を使います。
日本語や絵文字は変換されますか? 変換されません。ASCII 33〜126 の範囲外なので、ひらがな・漢字・絵文字はそのまま残ります。英数字と記号の部分だけが変換されます。
空白や改行はどうなりますか? 半角スペース(ASCII 32)・タブ・改行は変換対象外なので、入力の区切りや行構成はそのまま保たれます。
暗号として安全ですか? いいえ。ROT47 は鍵を持たず、誰でも同じ手順で元に戻せます。機密保持ではなく「ぱっと見で読めなくする」難読化用途のものです。
デコード用の別ボタンはありませんか? 不要です。ROT47 は自己逆元なので、変換結果をもう一度入力欄に戻せばそれが復号になります。
📚 ROT47 の成り立ち
ROT47 は Usenet 時代に広まった ROT13 の発展形です。ROT13 はジョークのオチやネタバレを「見たい人だけ読める」形で隠す慣習として英語圏フォーラムに根づきましたが、対象が英字に限られるため数字や記号が漏れるという弱点がありました。
ROT47 はこれを ASCII 印字可能領域全体に拡張したもので、94 文字の半周である 47 をシフト量に選ぶことで自己逆元という性質を保っています。シフト量が周期のちょうど半分になっているのがポイントで、これが「2 回で戻る」「エンコードとデコードが同じ」という使い勝手を生んでいます。現在でも CTF の入門問題やパズル、署名欄の遊びとして登場し続けています。