str_rot13()
Artículo sobre la función PHP str_rot13(), que realiza la codificación ROT13 en una cadena mediante sustitución simple de letras.
La función str_rot13() en PHP realiza la codificación ROT13 en una cadena. ROT13 es un cifrado simple de sustitución de letras que reemplaza cada carácter alfabético con la letra que se encuentra 13 posiciones adelante en el alfabeto. Los caracteres no alfabéticos permanecen sin cambios.
La sintaxis de la función str_rot13() es la siguiente:
La sintaxis PHP de str_rot13()
str_rot13($string)La función acepta un parámetro obligatorio: $string. $string es la cadena a codificar con ROT13. Tenga en cuenta que str_rot13() solo procesa letras ASCII e ignora los caracteres multibyte UTF-8. Solo los caracteres alfabéticos se transforman; todos los demás caracteres permanecen sin cambios.
A continuación se muestra un ejemplo de cómo usar la función str_rot13():
Ejemplo de str_rot13() en PHP
En este ejemplo, tenemos una variable de cadena $string que contiene la frase "Hello, World!". Utilizamos la función str_rot13() para realizar la codificación ROT13 en la cadena pasando la variable $string como parámetro.
La salida de este código será:
Uryyb, Jbeyq!Como puede ver, la función str_rot13() ha codificado correctamente la cadena original usando ROT13.
ROT13 es su propio inverso
La propiedad más útil de ROT13 es que codificar y decodificar son la misma operación. Dado que el alfabeto tiene 26 letras y ROT13 desplaza exactamente la mitad, aplicar la función dos veces rota una letra 13 + 13 = 26 posiciones completas, devolviéndola al punto de partida. Esto significa que se llama a str_rot13() de nuevo para obtener la cadena original: no existe ninguna función str_unrot13() separada.
<?php
$plain = "Hello, World!";
$encoded = str_rot13($plain); // Uryyb, Jbeyq!
$decoded = str_rot13($encoded); // Hello, World!
echo $encoded . "\n";
echo $decoded . "\n";
?>La salida de este código será:
Uryyb, Jbeyq!
Hello, World!Qué se transforma
Solo las 52 letras ASCII (a–z y A–Z) son rotadas. Se preservan las mayúsculas y minúsculas, y todos los demás caracteres —dígitos, puntuación, espacios y caracteres multibyte UTF-8— pasan sin modificación.
<?php
echo str_rot13("PHP 7.4 — café") . "\n";
?>La salida de este código será:
CUC 7.4 — pnséObserve que 7.4, los espacios y el guion largo permanecen sin cambios; la é acentuada se deja intacta (es un carácter multibyte, no ASCII), mientras que las letras ASCII se desplazan 13 posiciones: P→C, H→U, c→p, a→n, f→s.
Cuándo usarlo
ROT13 es útil para ocultar texto de una mirada casual — etiquetas de spoiler en foros, respuestas a acertijos o para ofuscar levemente una dirección de correo electrónico en el código fuente. Como preserva la longitud y es reversible con una sola llamada, también es un ejemplo didáctico habitual de cifrado por sustitución.
Nunca debe usarse para proteger información sensible: ROT13 no tiene clave y cualquiera puede revertirlo trivialmente. Para una protección real, use password_hash() de PHP para contraseñas, o las extensiones Sodium / OpenSSL para cifrado.
Funciones relacionadas
strrev()— invierte los caracteres de una cadena.str_replace()— sustituye subcadenas dentro de una cadena.substr_replace()— reemplaza una porción de una cadena por posición.