凯撒密码 / ROT13 工具把粘贴的文本按字母位移替换, 实时地在浏览器里完成. 页面有一个文本框, 占位符是 输入文本...; 一行三个预设按钮, 标着 ROT13, ROT5 和 自定义; 一行两个方向按钮, 标着 加密 和 解密; 一个移位量滑块, 两端标着 1 和 25; 一个同样大小的只读输出框; 旁边一个复制按钮; 下面一张移位表. 你每敲一个字符, 输出框里同一刻就出现位移后的文本; 没有运行按钮, 也不用按任何东西. 页面底部还有一个小的 报告问题 链接. 不发送任何东西: 位移, 表格, 复制, 全在设备上进行.
工具接收什么, 给出什么
输入有四个: 文本本身, 预设, 方向, 移位量. 预设决定哪套字符表移动, 方向决定字母往哪边移, 移位量决定移几位. ROT13 或 自定义 时走凯撒字母位移, ROT5 时走数字位移. 因为输出是实时算的, 不存在某个结果等待生成的时刻: 清空文本框, 输出跟着清空; 粘一句话, 位移后的版本已经坐在只读框里. 复制按钮把那个框写进剪贴板, 显示 已复制 状态两秒; 只有框里有东西时它才会动作.
凯撒位移怎么工作
位移把拉丁字母表的每个字母向前推所选的位数, 到表尾就绕回开头: 移位 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 位的凯撒位移, 正好是字母表的一半, 所以用两次就回到原文; 同一个操作既能编码也能解码. 其他预设用方向按钮. 加密把字母向前移移位量, 解密把字母往回移, 工具的实现是向前移 26 减去移位量, 所以移位 3 解密等价于向前移 23. 具体说: 移位 3 加密 abc 得 def, 再用移位 3 解密 def, 就落回 abc. 两端符合数学: 移位 25 等价于移位 负1, 所以移位 25 加密 A 得 Z; 移位 1 解密是向前移 25. 1 到 25 的每个移位都能精确往返, 这正是解密方向可靠的原因.
ROT5 与预设按钮
ROT5 预设把字母表换成十个数字: 每个数字向前移 5, 到 9 绕回, 所以 12345 变 67890, 9 绕成 4, 0 绕成 5, 所有字母原地不动; 混合文本 A1a 回来是 A6a, 19 变 64. 两个界面细节来自这个预设. ROT5 下方向那一行自己藏起来, 因为数字位移两边同形, 没有方向可选; 滑块的值对输出被忽略, 但下面的表格改显示十个数字对, 而不是二十六个字母. 按下 ROT13 或 自定义 预设会把滑块重置回 13; 按下 ROT5 则保留你当前选的移位, 所以从 ROT5 切回 自定义 时回到的是 13 位凯撒, 不是你上次调过的自定义值.
滑块与移位表
滑块从 1 到 25, 两端标着这两个值. 0 被刻意排除在外, 因为移位 0 是恒等映射, 恒等不是密码; 你能做的最小改动是 1 位. 输出框下面的移位表实时渲染当前映射: 二十六大写字母对, ROT13 下是 A 到 N, 任何自定义移位都会重算, 切到 解密 的瞬间又重算一次, 所以表格永远显示的是输出此刻真正在用的映射. ROT5 下同一块面板显示十个数字对, 0 到 5 直到 9 到 4, 同样的成对格式. 表格只是参考, 不是输入: 你在表上做任何事都不会改变文本.
空输入时发生什么
空文本框产生空输出, 两个预设都一样; 输出框始终在页面上, 空着也占位, 所以没有占位结果, 清空输入后也没有残留的旧值. 复制按钮在输出有内容前保持空闲; 空框上按它什么都不发生, 复制成功后 已复制 标签显示两秒, 然后回到 复制. 没有保存的历史: 刷新页面, 工具从空输入, 移位 13, 方向 加密, 预设 ROT13 的状态重新开始, 每次访问都一样.
文本去了哪里, 以及它不是什么
不出设备. 文本框由页面读取, 替换在浏览器里执行, 任何时刻都不发网络请求; 位移后的文本只存在于页面状态里, 复制按钮是你要求时它离开机器的唯一途径, 进你的剪贴板. 以及一句诚实的话: 凯撒密码是玩具, 不是安全工具. 只有 25 种可能的移位, 每一种都能一次扫描反转, 所以它能把派对提示或谜题答案挡在路人视线之外, 仅此而已; 密码或秘密不属于它. 真需要保密时, AES 加密解密 工具做正经的对称加密, Base64 编解码器 展示编码和加密是两回事, 密码生成器 生成真正机密该用的强密码和强密钥, 消息完整性那一侧, 见 HMAC 指南.