Cifrado ROT13
ROT13 — el ciferente de 13 letras de Estrecha. Cada letra es reemplazada por el 13 posiciones más adelante en el alfabeto. La codificación y la decodificación son la misma operación.
Hello World → Uryyb Jbeyq
ROT13 — el ciferente de 13 letras de Estrecha. Cada letra es reemplazada por el 13 posiciones más adelante en el alfabeto. La codificación y la decodificación son la misma operación.
Hello World → Uryyb Jbeyq
ROT13 ("rotate by 13") es un cifrado de Espiritar que cambia cada letra por 13 posiciones en el alfabeto. Debido a que el alfabeto inglés tiene 26 letras, aplicando ROT13 dos veces devuelve el texto original — la codificación y la decodificación son la misma operación.
No es una criptografía real (cualquiera puede decodificarla al instante), pero ha sido la forma estándar de ocultar a los spoilers, las puntillas y las respuestas en Usenet, foros y plataformas de chat desde los años 80.
ROT13 es un caso especial del ciférico César con un cambio de 13. El algoritmo se remonta a cada personaje en la cadena de entrada. Si el personaje es una letra de mayúscula ASCII (página superior)A–Z, Unicode code points 65–90), se mapea al personaje 13 posiciones más tarde, envolviéndose alrededor: new_code = ((old_code - 65 + 13) % 26) + 65. Del mismo modo, las letras minúsculas (a–z, puntos de código 97 a 122) uso new_code = ((old_code - 97 + 13) % 26) + 97. Todos los demás caracteres —digits, puntuación, espacios, letras no-ASCII— permanecen inalterados. Debido a que el alfabeto tiene 26 letras, la aplicación ROT13 dos veces produce el texto original; por lo tanto, la incipherencia y desciframiento son operaciones idénticas. La implementación maneja la entrada UTF-8, pero la transformación sólo afecta al rango de alfabeto latino.
ROT13 es trivialmente reversible, pero existen diferentes enfoques para lograr el mismo resultado.
| esta herramienta | Python de una sola línea | comando tr | |
|---|---|---|---|
| Facilidad de uso | Sin configuración, resultado instantáneo | Requiere Python instalado y línea de comando | Requiere shell Unix y utilidad tr |
| Preservación del caso | Conservado automáticamente | Manejado con asignaciones separadas | Preservado cuando se utilizan clases de caracteres apropiadas |
| Soporte en idiomas diferentes al inglés | Sólo letras latinas ASCII | Se puede extender a otros alfabetos. | Limitado a ASCII; necesita secuencias de comandos adicionales |
ROT13 surgió a principios de los años 80 en Usenet, un sistema descentralizado de tablones de anuncios. Se utilizó para ocultar chistes potencialmente ofensivos, spoilers, o respuestas a los rompecabezas, permitiendo a los lectores elegir si descifrar. El número 13 fue elegido porque es exactamente la mitad de 26, haciendo el cifrado y el descifrado idéntico, una conveniencia para los usuarios.
¿Poniendo un punto de película o de trama de TV? ROT13-código. Los lectores que quieren que el spoiler puede decodificar; todos los demás ven gibberish y saltones.
Establece una broma en texto plano, ROT13 la línea de punzones. Lectores que lo quieren decodificar; el resto se mueve.
Respuestas de Quiz, soluciones de rompecabezas, enigma revela — ROT13 le permite publicar la respuesta debajo de la pregunta sin que sea visible para los skimmers.
El ejemplo más simple posible de un cifrado de sustitución. Demuestra el principio sin abrumar al alumno.
El contenido de ROT13 en un comentario es inescrutable como texto simple, útil como área de notas a sí mismo o para evitar filtros de contenido crudo.
No, no para ningún propósito de privacidad real — cualquiera puede decodificarlo en segundos. Úsalo sólo para ocultar el contenido ocasionalmente de la visualización accidental.
No — sólo A–Z y a–z son cambiados. Números, espacios, puntuación y otros personajes pasan por invariable.
13 + 13 = 26, y 26 mod 26 = 0 — volver al principio. ROT13 es su propio inverso, por lo que tanto el código como el decodificador utilizan la misma operación.
ROT13 es uno de 25 posibles Cifras de Estrecho (hilos de 1 a 25). ROT13 es únicamente útil debido a la propiedad de código / código simétrico.