W3docs

str_rot13()

Artigo sobre a função PHP str_rot13(), usada para realizar a codificação ROT13 em uma string, substituindo cada letra por outra 13 posições à frente.

A função str_rot13() no PHP realiza a codificação ROT13 em uma string. ROT13 é uma cifra de substituição simples que substitui cada caractere alfabético pela letra 13 posições à frente no alfabeto. Caracteres não alfabéticos permanecem inalterados.

A sintaxe da função str_rot13() é a seguinte:

A sintaxe PHP do str_rot13()

str_rot13($string)

A função recebe um parâmetro obrigatório: $string. $string é a string a ser codificada usando ROT13. Note que str_rot13() processa apenas letras ASCII e ignora caracteres multibyte UTF-8. Apenas caracteres alfabéticos são transformados; todos os outros caracteres permanecem inalterados.

Veja um exemplo de como usar a função str_rot13():

Exemplo do PHP str_rot13()

php— editable, runs on the server

Neste exemplo, temos uma variável de string $string que contém a frase "Hello, World!". Usamos a função str_rot13() para realizar a codificação ROT13 na string, passando a variável $string como parâmetro.

A saída deste código será:

Uryyb, Jbeyq!

Como você pode ver, a função str_rot13() codificou com sucesso a string original usando ROT13.

ROT13 é sua própria inversa

A propriedade mais útil do ROT13 é que codificar e decodificar são a mesma operação. Como o alfabeto tem 26 letras e o ROT13 desloca exatamente metade disso, aplicar a função duas vezes rotaciona uma letra em 13 + 13 = 26 posições completas, retornando-a ao ponto de partida. Isso significa que você chama str_rot13() novamente para obter a string original — não existe uma função 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";
?>

A saída deste código será:

Uryyb, Jbeyq!
Hello, World!

O que é transformado

Apenas as 52 letras ASCII (az e AZ) são rotacionadas. A capitalização é preservada, e todos os outros caracteres — dígitos, pontuação, espaços e caracteres multibyte UTF-8 — passam sem alteração.

<?php
echo str_rot13("PHP 7.4 — café") . "\n";
?>

A saída deste código será:

CUC 7.4 — pnsé

Observe que 7.4, os espaços e o travessão permanecem inalterados, o é acentuado é deixado intacto (é um caractere multibyte, não ASCII), enquanto as letras ASCII são cada uma deslocada 13 posições: PC, HU, cp, an, fs.

Quando usar

O ROT13 é útil para ocultar texto de um olhar casual — tags de spoiler em fóruns, respostas de puzzles ou para ofuscar levemente um endereço de e-mail no código-fonte. Por preservar o comprimento e ser reversível com uma única chamada, também é um exemplo didático comum de cifra de substituição.

Ele nunca deve ser usado para proteger informações sensíveis: o ROT13 não tem chave e pode ser facilmente revertido por qualquer pessoa. Para proteção real, use password_hash() do PHP para senhas ou as extensões Sodium / OpenSSL para criptografia.

Funções relacionadas

Prática

Prática
O que a função str_rot13() faz no PHP?
O que a função str_rot13() faz no PHP?
Was this page helpful?