🔐 ROT13 编码器和解码器

使用自可逆的ROT13密码转换文本 - 非常适合隐藏剧透和基本文本混淆

📥 输入文本 0 个字符
📤 输出文本 0 个字符

⚙️ 选项

🎯 ROT13 字母表映射

ROT13 将每个字母替换为其后13位的字母。由于字母表有26个字母,应用两次ROT13会返回原始文本。

🏛️ 什么是ROT13?

ROT13(“旋转13位”)是凯撒密码的一个特例,固定偏移量为13。它在在线论坛和新闻组中广泛用于隐藏剧透、谜题答案和笑点。

简单的替换密码

每个字母被字母表中13位后的另一个字母替换。

自可逆

应用两次ROT13即可恢复原始文本——编码和解码操作相同。

保留大小写

大写字母保持大写,小写字母保持小写。

广泛支持

跨平台、论坛和文本编辑器使用,用于快速文本混淆。

⚙️ 工作原理

每个字母都被字母表中前进13位的字母替换。到达末尾时,它会绕回到开头:

  • A ↔ N, B ↔ O, C ↔ P, 等。
  • 数字和符号保持不变(除非启用选项)
  • 数学公式: (x + 13) mod 26
  • 编码和解码过程相同

🔐 安全性与用途

ROT13不提供任何加密安全性,可以轻易破解。但是,它非常适合: and is trivially broken. However, it's perfect for:

🎬 隐藏剧透

防止在论坛中意外读到电影、书籍或游戏的剧透。

📧 邮箱地址混淆

在网站上混淆电子邮件地址,以防垃圾邮件机器人。

🎓 教授密码学

向学生介绍基本的加密概念。

🎮 谜题和游戏

创建简单的单词谜题和谜语。

❓ 常见问题解答

ROT13与其他凯撒密码有何不同?
ROT13的独特之处在于它使用恰好13位的偏移,这是26个字母的字母表的一半。这意味着相同的操作既可以编码也可以解码文本——应用两次ROT13即可返回原始消息。这种自可逆的特性使其在快速混淆任务中特别方便。
ROT13对保护敏感信息安全吗?
不,ROT13绝对不提供任何加密安全性。它非常容易解码,绝不应用于保护密码、个人信息或机密数据。它仅用于隐藏剧透、谜题答案或模糊您不希望被意外阅读的文本。
既然不安全,为什么还在使用ROT13?
ROT13非常适合那些您只想对信息进行随意隐藏而不需要真正安全的场景。常见用途包括:在在线讨论中隐藏电影/书籍剧透,混淆电子邮件地址以防垃圾邮件机器人,创建简单的单词谜题,以及教授密码学基础知识。其简单性和自可逆性使其成为这些目的的理想选择。
ROT13可以编码数字和特殊字符吗?
传统的ROT13只转换字母(A-Z,a-z),而数字、空格和特殊字符保持不变。但是,有扩展版本如ROT18(包含数字旋转0-9)和ROT47(包含更多ASCII字符)。我们的工具提供一个可选设置,可以使用5位旋转(0↔5, 1↔6, 等)来处理数字。
如何解码ROT13文本?
由于ROT13是自可逆的,解码方式与编码方式完全相同——只需再次应用ROT13!只需将编码后的文本粘贴到输入字段中,然后点击“处理ROT13”。ROT13的美妙之处在于不需要单独的编码/解码操作。
今天ROT13通常用在哪里?
ROT13广泛用于:在线论坛和讨论区(如Reddit, Stack Exchange)隐藏剧透;地理藏宝谜题;网站上的电子邮件地址混淆;Unix/Linux系统(内置于vim等编辑器中);编程练习和编码挑战;以及教育环境中教授基本加密概念。

💻 不同编程语言中的ROT13

Python

import codecs # Method 1: Using codecs text = "Hello World" encoded = codecs.encode(text, 'rot13') print(encoded) # Output: Uryyb Jbeyq # Method 2: Manual implementation def rot13(text): result = [] for char in text: if char.isalpha(): offset = 65 if char.isupper() else 97 result.append(chr((ord(char) - offset + 13) % 26 + offset)) else: result.append(char) return ''.join(result) print(rot13("Hello World")) # Output: Uryyb Jbeyq

JavaScript

function rot13(str) { return str.replace(/[a-zA-Z]/g, function(char) { const code = char.charCodeAt(0); const offset = code >= 65 && code <= 90 ? 65 : 97; return String.fromCharCode((code - offset + 13) % 26 + offset); }); } console.log(rot13("Hello World")); // Output: Uryyb Jbeyq

PHP

<?php // Method 1: Using str_rot13 $text = "Hello World"; $encoded = str_rot13($text); echo $encoded; // Output: Uryyb Jbeyq // Method 2: Manual implementation function rot13_manual($str) { $result = ''; for ($i = 0; $i < strlen($str); $i++) { $char = $str[$i]; if (ctype_alpha($char)) { $offset = ord(ctype_upper($char) ? 'A' : 'a'); $result .= chr((ord($char) - $offset + 13) % 26 + $offset); } else { $result .= $char; } } return $result; } ?>

Java

public class ROT13 { public static String encode(String text) { StringBuilder result = new StringBuilder(); for (char c : text.toCharArray()) { if (Character.isLetter(c)) { char offset = Character.isUpperCase(c) ? 'A' : 'a'; result.append((char) ((c - offset + 13) % 26 + offset)); } else { result.append(c); } } return result.toString(); } public static void main(String[] args) { System.out.println(encode("Hello World")); // Output: Uryyb Jbeyq } }

C++

#include <iostream> #include <string> #include <cctype> std::string rot13(const std::string& text) { std::string result; for (char c : text) { if (std::isalpha(c)) { char offset = std::isupper(c) ? 'A' : 'a'; result += (c - offset + 13) % 26 + offset; } else { result += c; } } return result; } int main() { std::cout << rot13("Hello World") << std::endl; // Output: Uryyb Jbeyq return 0; }

Linux/Unix 命令行

# Using tr command echo "Hello World" | tr 'A-Za-z' 'N-ZA-Mn-za-m' # Output: Uryyb Jbeyq # Decode (same command) echo "Uryyb Jbeyq" | tr 'A-Za-z' 'N-ZA-Mn-za-m' # Output: Hello World # Process a file cat input.txt | tr 'A-Za-z' 'N-ZA-Mn-za-m' > output.txt

📚 历史背景

ROT13在20世纪80年代的Usenet上流行起来,作为一种隐藏潜在冒犯性内容的方式。它被描述为“Usenet上相当于将答案倒印”。

  • 起源于早期互联网文化
  • 仍在现代论坛和讨论区中使用
  • 内置于许多文本编辑器(如Vim)中
  • Unix实用程序中的标准功能

🔗 相关密码工具