Cifra de César e ROT13
Com ROT13, Hello, World! vira Uryyb, Jbeyq!: cada letra anda 13 posições, as maiúsculas continuam maiúsculas e a vírgula, o espaço e a exclamação ficam no lugar. Escolha qualquer deslocamento, positivo ou negativo, e decodifique com o mesmo número. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Texto original
- Hello, World!
- Resultado
- Uryyb, Jbeyq!
- Deslocamento solicitado
- 13
- Deslocamento efetivo
- 13
- Operação
- Encode
A cifra de César desloca letras um valor fixo; ROT13 é o caso de deslocamento 13.
Como o deslocamento de César move cada letra
A cifra de César move cada letra um número fixo de posições no alfabeto e, ao passar do Z, volta para o A. O ROT13 é o caso mais conhecido, um deslocamento de 13, e é o padrão aqui. Só as letras de A a Z se movem: as maiúsculas giram entre maiúsculas e as minúsculas entre minúsculas, então Hello, World! vira Uryyb, Jbeyq! com a vírgula, o espaço e a exclamação no mesmo lugar. Números e demais sinais também não mudam, e a mensagem mantém a sua forma.
Deslocamentos, decodificação e o caminho de volta
Qualquer número inteiro serve, inclusive negativos ou maiores que 25. Como o alfabeto tem 26 letras, um deslocamento de 26 não muda nada e um de −1 equivale a 25; o resultado sempre mostra a rotação efetiva aplicada. Decodificar é girar as letras no sentido contrário pela mesma quantidade, por isso codificar e depois decodificar com o mesmo deslocamento sempre devolve o texto original. Isso torna a ferramenta útil em sala de aula, para testar deslocamentos rapidamente em um enigma ou para esconder de leve um spoiler ou uma resposta.
Letras giram; o resto fica
Só letras ASCII se movem. Espaços, dígitos e pontuação passam iguais. Maiúsculas e minúsculas preservam-se em faixas separadas.
Assim mensagens com vírgulas e espaços mantêm a forma após codificar, útil em demos de aula e em testes automáticos de ida e volta.
Qualquer inteiro de deslocamento
O padrão é 13 (ROT13). Shift 26 é identidade; −1 equivale a 25.
Decode é a rotação inversa
Decode aplica −shift e ainda reporta o shift original. Encode seguido de decode com o mesmo shift restaura o texto claro de forma determinística para qualquer inteiro de deslocamento em faixa ampla.
Casos de uso
ROT13 e aulas
Mostre substituição clássica com um deslocamento e decode imediato.
CTF
Teste deslocamentos em cifras sem surpresas de ponto flutuante.
Mascarar texto
Oculte levemente spoilers onde só letras importam.
Perguntas frequentes
Como é o decode?
Rotação −shift com os mesmos campos de shift.
Qual é o deslocamento padrão?
O padrão é 13, o clássico ROT13. Com ele, Hello, World! vira Uryyb, Jbeyq!, e aplicar 13 de novo devolve o texto original, porque duas voltas de 13 somam as 26 letras do alfabeto.
Os números também giram?
Não. Só as letras de A a Z se movem; números, espaços e pontuação passam sem mudança. Maiúsculas e minúsculas giram cada uma no seu próprio alfabeto, então a capitalização é mantida.
O que faz um deslocamento de 26 ou de −1?
Um deslocamento de 26 devolve cada letra a ela mesma, então o texto não muda. Um de −1 equivale a 25. Qualquer número inteiro é aceito, e o resultado mostra o deslocamento efetivo, entre 0 e 25, que foi aplicado.
O ROT13 é um jeito seguro de esconder uma mensagem?
Só de forma leve. O ROT13 esconde um spoiler ou a resposta de um enigma de uma olhada rápida, mas qualquer pessoa desfaz a cifra aplicando o mesmo deslocamento outra vez. Serve para mascarar e ensinar, não para proteger informações privadas.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/text/caesar-cipher \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello, World!"}'const res = await fetch("https://api.kit.forhosting.com/text/caesar-cipher", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello, World!"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/caesar-cipher",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello, World!"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/caesar-cipher", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello, World!"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello, World!"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/caesar-cipher", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"text": "Hello, World!"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.caesar_cipher",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_text_chars | 100000 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Esta ferramenta só gira A–Z e a–z, mantém dígitos e pontuação, informa o deslocamento efetivo módulo 26 e coincide no navegador grátis e na API.
Qualquer inteiro de deslocamento
Negativos e valores acima de 25 são aceitos; o efetivo é ((shift % 26) + 26) % 26, devolvido como shift_effective a partir do shift de entrada também no decode.
Erros tipados e limites
Texto é obrigatório, até 100000 caracteres.
Casos de integração
CI
Fixe ida e volta encode/decode em fixtures.
Perguntas técnicas
Deslocamento padrão?
13 — ROT13 clássico.
Dígitos giram?
Não; só letras.
O que é shift_effective?
Shift de entrada reduzido a 0…25.
Shift negativo?
Sim; −1 ≡ 25.
É grátis?
Sim no navegador; app US$ 0,002.