🧰 UtlKit

凯撒密码 / ROT13 怎么用: 实时字母位移, ROT5 数字, 无按钮, 浏览器里

粘贴文本, 看每个字母实时位移: ROT13, ROT5 数字, 1 到 25 的自定义移位, 加密和解密方向, 实时移位表, 什么都不离开浏览器。

凯撒密码 / 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 指南.

相关工具

常见问题

ROT13 是真密码吗?

不是. ROT13 是固定 13 位的凯撒位移, 只是 25 种可能位移中的一种, 每一种都能把同样的位移倒推回来, 或在几秒内试遍全部 25 种反转. 用它把派对提示或谜题答案挡在路人视线之外没问题; 它不是安全工具, 密码或秘密不属于它. 真需要保密时, 该做的是 AES 式加密.

怎么解密 ROT13 文本?

再用 ROT13 一次. 因为 13 是字母表的一半, 这个操作是自己的逆: 把 Uryyb, Jbeyq! 移 13 就落回 Hello, World!. 工具里, 保持 ROT13 预设, 按任一方向都行; 或切到 自定义 预设, 把移位量设成文本编码时用的那位, 选 解密. 移位 3 编码的文本用移位 3 解密有效, 因为工具把 3 位解密转成向前移 23.

为什么数字和标点不变?

凯撒位移只移动 a 到 z 和 A 到 Z 这 26 个字母; 其他一切, 数字, 标点, 空格, 换行, 非拉丁字符, 都原样通过, 所以 Hello, World! 回来是 Uryyb, Jbeyq!, 逗号和感叹号完好. 如果目标是位移数字, ROT5 预设把每个数字向前移 5 并绕回, 所以 12345 变 67890, 字母原地不动.

移位滑块干什么, 为什么停在 25?

滑块设定每个字母移几位, 从 1 到 25. 0 被刻意排除, 因为移位 0 什么都不改; 25 是向前最大有意义的步, 等价于向后一步. 注意按 ROT13 或 自定义 预设会把滑块重置到 13, 而 ROT5 预设保留你当前的移位; 输出下面的移位表永远显示此刻生效的映射, 切到 解密 之后也一样.

工具会把我的文本发到哪去?

不会. 替换完全在浏览器里执行, 任何时刻都不发网络请求, 你的文本离开机器的唯一途径是复制按钮, 你按它时把输出放进你的剪贴板. 刷新页面清掉一切, 因为什么都不存.

相关文章