🔐 Encodeur & Décodeur ROT13
Transformez du texte avec le chiffre auto-réversible ROT13 - Parfait pour cacher des spoilers et pour l'obfuscation de base
🎯 Mappage de l'Alphabet ROT13
ROT13 remplace chaque lettre par la lettre située 13 positions après. Comme il y a 26 lettres, appliquer ROT13 deux fois renvoie le texte original.
🏛️ Qu'est-ce que ROT13 ?
ROT13 ("rotation de 13 places") est un cas spécial du chiffre de César avec un décalage fixe de 13. Il est largement utilisé sur les forums en ligne et les groupes de discussion pour cacher des spoilers, des solutions d'énigmes et des chutes de blagues.
Chiffre de substitution simple
Chaque lettre est remplacée par une autre lettre située 13 positions plus loin dans l'alphabet.
Auto-réversible
Appliquez ROT13 deux fois pour retrouver le texte original - même opération pour l'encodage et le décodage.
Préservation de la casse
Les lettres majuscules restent majuscules, les minuscules restent minuscules.
Largement supporté
Utilisé sur de nombreuses plateformes, forums et éditeurs de texte pour une obfuscation rapide.
⚙️ Comment ça Marche
Chaque lettre est remplacée par la lettre 13 positions plus loin dans l'alphabet. En arrivant à la fin, on revient au début :
- A ↔ N, B ↔ O, C ↔ P, etc.
- Les chiffres et symboles restent inchangés (sauf si l'option est activée)
- Formule mathématique : (x + 13) mod 26
- Même processus pour l'encodage et le décodage
🔐 Sécurité & Usage
ROT13 n'offre aucune sécurité cryptographique et est trivialement cassable. Cependant, il est parfait pour : and is trivially broken. However, it's perfect for:
🎬 Cacher des spoilers
Empêche la lecture accidentelle de spoilers de films, livres ou jeux sur les forums.
📧 Obfuscation d'e-mails
Masquer les adresses e-mail des robots spammeurs sur les sites web.
🎓 Enseigner la cryptographie
Introduire les concepts de base du chiffrement aux étudiants.
🎮 Énigmes & jeux
Créer des puzzles de mots et des devinettes simples.
❓ Foire Aux Questions
💻 ROT13 dans Différents Langages de Programmation
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;
}
Ligne de Commande 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
📚 Contexte Historique
ROT13 est devenu populaire sur Usenet dans les années 1980 comme moyen de cacher du contenu potentiellement offensant. Il est décrit comme "l'équivalent Usenet de l'impression d'une réponse à l'envers".
- Né dans la culture précoce d'Internet
- Toujours utilisé dans les forums et groupes de discussion modernes
- Intégré dans de nombreux éditeurs de texte (comme Vim)
- Standard dans les utilitaires Unix
🔗 Outils de Chiffrement Associés
🔄 Chiffre de César
Chiffre à décalage classique avec des valeurs de décalage personnalisables (1-25). Plus flexible que ROT13.
🔀 Chiffre Atbash
Ancien chiffre hébreu qui inverse l'alphabet (A↔Z, B↔Y). Une autre méthode auto-réversible.
🔐 Chiffre de Vigenère
Chiffre polyalphabétique utilisant un chiffrement basé sur un mot-clé pour une sécurité plus avancée.
📊 Encodeur Base64
Convertit les données binaires en une représentation textuelle ASCII pour une transmission de données sécurisée.