🔑 ROT13 加密解密
ROT13/ROT47/ROT5加密解密,输入即转换,支持批量多行处理。
🔤 ROT13 字符映射表
什么是 ROT13 工具?
ROT13 工具是一款实现 ROT13 编码与解码的在线工具。ROT13(Rotate by 13 places)是一种简单的替换密码,将英文字母表中的每个字母替换为其后第 13 个字母。由于英文字母共有 26 个,ROT13 的加密和解密使用完全相同的操作——对同一段文本执行两次 ROT13 就会还原为原文(A→N→A,B→O→B)。这种对称性是 ROT13 的独特特征。ROT13 在互联网文化中有着悠久的历史,最早使用于 1980 年代的 Usenet 新闻组,用于隐藏剧透内容、谜题答案和冒犯性笑话。如今 ROT13 不用于真正的加密(它的安全性为零),但仍然被用于:隐藏 spoilers、CTF 安全竞赛、简单的文本混淆、以及作为编程学习中的经典练习。本工具支持实时编码/解码,同时保留非字母字符不变。
如何使用 ROT13 工具
- 步骤一:输入文本 — 在输入框中粘贴需要编码或解码的文本。ROT13 只对英文字母(A-Z, a-z)进行转换,数字、标点、中文等其他字符保持不变。
- 步骤二:自动转换 — 由于编码和解密操作相同,工具自动输出 ROT13 转换结果。输入密文得到明文,输入明文得到密文,无需切换模式。
- 步骤三:复制结果 — 将转换结果复制到需要的地方。常用于论坛剧透隐藏、谜题解答、或简单的文本混淆。
常见使用场景
场景一:隐藏剧透内容
在讨论电影、游戏或书籍的论坛上,用 ROT13 编码剧透内容,感兴趣的读者自行解码查看。这种传统从 Usenet 时代延续至今,是互联网社区的一种礼仪。
场景二:CTF 安全竞赛
在 Capture The Flag 安全竞赛中,ROT13 常作为多层加密的一部分出现。识别出 ROT13 编码是解题的第一步,通常还需要结合 Base64、Caesar 密码等其他编码层层解码。
场景三:编程教学示例
ROT13 是学习密码学基础、字符串操作和编码算法的经典教学案例。它的实现简单(只需一个映射表和循环),但涵盖了替换密码的核心概念。
技术原理
ROT13 是凯撒密码(Caesar cipher)的特例,偏移量固定为 13。实现原理是对每个英文字母的 ASCII 码进行偏移运算:大写字母 A(65)-M(77) 加 13,N(78)-Z(90) 减 13;小写字母同理。JavaScript 中可以通过 String.fromCharCode() 和 charCodeAt() 实现。
// ROT13 实现
function rot13(text) {
return text.replace(/[a-zA-Z]/g, char => {
const base = char <= 'Z' ? 65 : 97; // 大写65,小写97
return String.fromCharCode(
(char.charCodeAt(0) - base + 13) % 26 + base
);
});
}
// 验证对称性
rot13(rot13("Hello World")); // "Hello World"
rot13("Hello"); // "Uryyb"
rot13("Uryyb"); // "Hello"
最佳实践与注意事项
- ROT13 不是加密算法,不能用于保护敏感信息。任何了解 ROT13 的人都能在几秒内解码。
- ROT13 只转换英文字母,数字和特殊字符保持不变。如果需要混淆包含数字的内容,考虑结合其他变换。
- 在论坛或文档中使用 ROT13 时,建议提示读者这是 ROT13 编码,方便不熟悉的人知道如何解码。
- ROT13 可以作为多层混淆的第一层,配合 Base64、反转字符串等变换增加解码难度。
常见问题
Q:ROT13 和凯撒密码有什么关系?
A>ROT13 是凯撒密码在偏移量为 13 时的特例。凯撒密码可以使用 1-25 的任意偏移量,而 ROT13 固定为 13。选择 13 的好处是加密和解密使用相同操作(因为 26/2=13),不需要区分加密模式和解密模式。
Q:ROT13 安全吗?能用来加密密码吗?
A>完全不安全。ROT13 没有密钥,算法完全公开,任何人都可以立即解码。它不能用于保护密码、个人信息或任何需要保密的数据。密码存储应使用 bcrypt、Argon2 等专业哈希算法。
Q:ROT13 能处理中文吗?
A>标准的 ROT13 只处理英文字母 A-Z 和 a-z。中文字符、数字、标点符号会保持不变。如果需要处理其他字符集,需要扩展字母映射表,但那就不再是标准 ROT13 了。
Q:如何在命令行中使用 ROT13?
A>在 Linux/macOS 上使用 tr 命令:echo "Hello" | tr 'A-Za-z' 'N-ZA-Mn-za-m'。也可以创建别名:alias rot13="tr 'A-Za-z' 'N-ZA-Mn-za-m'"。Python 的 codecs 模块内置了 ROT13:codecs.encode("Hello", "rot_13")。
Q:ROT13 有什么实际应用价值?
A>ROT13 的实用价值主要是文化和娱乐层面:隐藏剧透、谜题/寻宝游戏中的线索混淆、编程教学示例。在技术层面,ROT13 偶尔用于混淆搜索结果中的敏感词、在某些旧系统中隐藏默认密码。但它不适合任何需要真正安全性的场景。