シーザー暗号 / ROT13 ツールは, 貼り付けたテキストをアルファベットシフトの置換で置き換えるもので, すべてブラウザ内でライブに計算します. ページには, プレースホルダーが テキストを入力... のテキストエリア, ROT13, ROT5, カスタム の 3 つのプリセットボタン, 暗号化 と 復号 の 2 つの方向ボタン, 両端に 1 と 25 を示すシフトスライダー, 同サイズの読み取り専用出力ボックス, その横にあるコピーボタン, 下のシフト表が並んでいます. タイプすると同じ刻に出力に出ます. 実行ボタンはなく, 押すものは何もありません. ページの下には小さな問題を報告するリンクもあります. 何も送信されません. シフト, 表, コピー, すべてはデバイス上で動きます.
受け取るもの, 出すもの
入力は 4 つです: テキストそのもの, プリセット, 方向, シフト量. プリセットが動く文字表を決め, 方向がアルファベットをどちらへ動かすかを定め, シフト量が何文字分かを担います. ROT13 かカスタムならシーザーのアルファベットシフト, ROT5 なら数字シフトが適用されます. 出力はライブなので, 結果の生成を待つ瞬間はありません. テキストエリアを空にすると出力も空になり, 一文を貼ればシフト後のテキストはもう読み取り専用ボックスの中にあります. コピーボタンはボックスの全文をクリップボードに書き, 2 秒間 コピー済み を表示します. 中身があるときしか動きません.
シーザーシフトの仕組み
シフトはラテン文字の各文字を指定分だけ進め, 末尾で先頭に回り戻します. シフト 3 なら a が d, b が e, x, y, z は a, b, c に回り込みます. 大文字と小文字はそれぞれ別々の列を移動して大小を保持するので, ROT13 では a は n, Z は M になります. ラテン文字以外の文字はすべてそのまま通過します. 数字, 句読点, 空白, タブ, 改行, アクセント付き文字や CJK テキストを含むすべての非ラテン文字も, 一切動きません. 定番のテスト: ROT13 プリセットでは, 文 Hello, World! は Uryyb, Jbeyq! になり, カンマ, 大文字, 感嘆符はすべてそのまま同行します.
ROT13 と復号方向
ROT13 はちょうど 13 文字のシーザーシフトで, 文字表の半分です. だから 2 回当てると元に戻り, 同じ操作で暗号化も復号もできます. その他のプリセットは方向ボタンを使います. 暗号化はシフト分だけ文字を前に進め, 復号は後ろへ戻しますが, ツールの実装は 26 引くシフト量だけ前に進めることです. つまりシフト 3 の復号は 23 進みのシフトと同じです. 具体的に: シフト 3 で abc を暗号化すると def, その def をシフト 3 で復号すると abc に戻ります. 端も数学どおりです. シフト 25 は負 1 のシフトと同じなので, シフト 25 で A を暗号化すると Z になります. シフト 1 の復号は 25 進みです. 1 から 25 までのすべてのシフトが正確に往復するため, 復号方向は信頼できます.
ROT5 とプリセットボタン
ROT5 プリセットはアルファベットを 10 個の数字に差し替えます. 各数字を 5 進めて 9 で回り戻すので, 12345 は 67890, 9 は 4, 0 は 5 になり, アルファベットはすべてその場に留まります. 混合テキスト A1a は A6a に, 19 は 64 になります. このプリセットから出る UI の細部が 2 つあります. ROT5 では方向の行が自分から隠れます. 数字シフトはどちらの方向でも同じ形なので, 選ぶ方向がないからです. スライダーの値は出力では無視されますが, 下の表は 26 の文字対の代わりに 10 個の数字対を表示します. ROT13 かカスタムのプリセットを押すとスライダーは 13 にリセットされます. ROT5 を押しても今のシフトはそのままなので, ROT5 からカスタムへ戻ると 13 シフトのシーザーに戻り, 前回調整したカスタム値ではありません.
スライダーとシフト表
スライダーは 1 から 25 までで, 両端にその 2 つの値が表示されます. 0 は意図的に届かない範囲です. シフト 0 は恒等写像で, 恒等は暗号ではないからです. できる最小の変化は 1 文字です. 出力の下にあるシフト表は現在の対応をライブで描きます. 26 組の大文字対で, ROT13 では A から N まで, どのカスタムシフトでも再計算され, 復号へ切り替えた瞬間にもう一度再計算されるので, 表は常に出力が今まさに使っている対応を表示します. ROT5 では同じパネルが 10 組の数字対, 0 から 5 まで 9 から 4 までを, 同じ組形式で出します. 表は参考用で, 入力の対象ではありません. 表で何をしてもテキストは変わりません.
空のテキストのとき
空のテキストエリアは, どちらのプリセットでも空の出力になります. 出力ボックスはページに常にあります. 空でもそこにあり, だからプレースホルダーの結果はなく, テキストを空にした後も古い値は残りません. コピーボタンは出力に何かあるまで無動作です. 空のボックスで押しても何も起きず, コピー成功後は 2 秒間 コピー済み が表示され, そのもと コピー に戻ります. 履歴の保存はありません. ページを再読み込みすると, 空のテキスト, シフト 13, 方向 暗号化, プリセット ROT13 の状態から最初から始まります. アクセスのたびに同じ状態です.
テキストの行き先, と, それが何でないか
デバイス外にはどこへも行きません. テキストエリアはページが読み, 置換はブラウザ内で走り, いかなる時点でもネットワーク要求は起きません. シフト後のテキストはページ状態の中にだけあり, コピーボタンがあなたの依頼で機械の外, つまりクリップボードへ出る唯一の道です. そして正直な注記: シーザー暗号は玩具で, セキュリティツールではありません. あり得るシフトは 25 通りしかなく, どれも 1 回のパスで逆算できます. つまりパーティのヒントやパズルの答えを素人の目から隠すことはできても, それだけです. パスワードや秘密をここに入れるのはやめましょう. 本物の機密が仕事なら, AES 暗号化/復号 ツールが対称暗号をまともに担い, Base64 エンコーダ/デコーダ はエンコードと暗号は別の生き物であることを示し, パスワード生成 は本物の秘密を守るための強いパスワードや鍵を作り, メッセージの完全性の側面については HMAC ガイド を見てください.