🔐 Codificador e Decodificador ROT13
Transforme texto usando a cifra auto-reversível ROT13 - Perfeito para ocultar spoilers e ofuscação básica de texto
🎯 Mapeamento do Alfabeto ROT13
ROT13 substitui cada letra pela letra 13 posições à frente. Como existem 26 letras, aplicar ROT13 duas vezes retorna o texto original.
🏛️ O que é ROT13?
ROT13 ("rotacionar por 13 posições") é um caso especial da cifra de César com um deslocamento fixo de 13. É amplamente utilizado em fóruns online e grupos de notícias para ocultar spoilers, soluções de quebra-cabeças e piadas.
Cifra de substituição simples
Cada letra é substituída por outra letra 13 posições à frente no alfabeto.
Auto-reversível
Aplique ROT13 duas vezes para obter o texto original - mesma operação para codificar e decodificar.
Preserva maiúsculas/minúsculas
Letras maiúsculas permanecem maiúsculas, letras minúsculas permanecem minúsculas.
Amplamente suportado
Usado em plataformas, fóruns e editores de texto para ofuscação rápida.
⚙️ Como Funciona
Cada letra é substituída pela letra 13 posições à frente no alfabeto. Ao chegar ao fim, volta ao início:
- A ↔ N, B ↔ O, C ↔ P, etc.
- Números e símbolos permanecem inalterados (a menos que a opção esteja ativada)
- Fórmula matemática: (x + 13) mod 26
- Mesmo processo para codificar e decodificar
🔐 Segurança e Uso
ROT13 não oferece segurança criptográfica e é trivialmente quebrado. No entanto, é perfeito para: and is trivially broken. However, it's perfect for:
🎬 Ocultar spoilers
Evita a leitura acidental de spoilers de filmes, livros ou jogos em fóruns.
📧 Ofuscação de e-mail
Oculta endereços de e-mail de bots de spam em sites.
🎓 Ensinar criptografia
Introduz conceitos básicos de criptografia a estudantes.
🎮 Quebra-cabeças e jogos
Cria quebra-cabeças de palavras e enigmas simples.
❓ Perguntas Frequentes
💻 ROT13 em Diferentes Linguagens de Programação
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;
}
Linha de Comando 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
📚 Contexto Histórico
O ROT13 tornou-se popular na Usenet nos anos 80 como uma forma de ocultar conteúdo potencialmente ofensivo. É descrito como o "equivalente da Usenet a imprimir uma resposta de cabeça para baixo".
- Originado na cultura inicial da internet
- Ainda usado em fóruns e quadros de discussão modernos
- Embutido em muitos editores de texto (como o Vim)
- Padrão em utilitários Unix
🔗 Ferramentas de Cifra Relacionadas
🔄 Cifra de César
Cifra de deslocamento clássica com valores de deslocamento personalizáveis (1-25). Mais flexível que o ROT13.
🔀 Cifra Atbash
Antiga cifra hebraica que inverte o alfabeto (A↔Z, B↔Y). Outro método auto-reversível.
🔐 Cifra de Vigenère
Cifra polialfabética que usa criptografia baseada em palavras-chave para segurança mais avançada.
📊 Codificador Base64
Converte dados binários para representação de texto ASCII para transmissão segura de dados.