Cifra ROT5 de dígitos
0123456789 vira 5678901234: cada dígito avança cinco posições num círculo de dez, e letras, espaços e hífens ficam onde estão. Aplique de novo e os dígitos originais voltam. Útil para disfarçar telefones ou números de pedido em demonstrações. 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
- 0123456789
- Resultado
- 5678901234
- Entrada
- 0123456789
- Texto
- 5678901234
- Dígitos girados
- 10
Uma cifra ROT5 de dígitos é a prima numérica da rotação clássica de letras ROT13: cada dígito ASCII de zero a nove é deslocado cinco posições em um círculo de dez dígitos, de modo que zero vira cinco, um vira seis, dois vira sete, três vira oito, quatro vira nove, e a segunda metade do alfabeto de dígitos mapeia de volta pelo outro lado. Como cinco é metade de dez, aplicar a mesma substituição uma segunda vez restaura a string original—codificar e decodificar são operações idênticas. Letras, pontuação, espaços e quaisquer pontos de código Unicode que não sejam dígitos passam inalterados, o que torna o ROT5 ideal para ofuscação leve de telefones, IDs de pedido, PINs embutidos em texto misto ou strings de passatempo estilo CTF sem tocar a prosa ao redor. Digite qualquer texto não vazio; a ferramenta devolve a string transformada, quantos dígitos foram rotacionados, quantos caracteres não dígito foram deixados sozinhos e uma mensagem de status curta.
O que o ROT5 faz aos dígitos e o que deixa em paz
ROT5 pertence à família de cifras de substituição modular usadas em passatempos cripto clássicos e brinquedos de texto leves. O alfabeto são os dez dígitos ASCII de zero a nove. Para qualquer caractere dígito d cujo valor numérico é n de zero a nove, a cifra emite o único caractere de (n mais cinco) módulo dez.
Essa tabela é fixa e pública: zero mapeia para cinco, um para seis, dois para sete, três para oito, quatro para nove, cinco para zero, seis para um, sete para dois, oito para três e nove para quatro. Como o deslocamento é metade do tamanho do alfabeto, o mapeamento é uma involução—cada símbolo é a própria inversa—então não há modo de decodificar separado nem chave secreta.
Tudo que não é dígito ASCII é copiado integralmente: letras maiúsculas e minúsculas, espaços, hífens em telefones, símbolos de moeda, quebras de linha e Unicode multi-byte sobrevivem. Formas de dígito de largura total e outros sistemas numéricos fora do intervalo ASCII não são reescritos; só participam os dez caracteres com pontos de código quarenta e oito a cinquenta e sete.
Quando você reenvia o result como entrada, recupera o texto original para cada dígito que estava presente, que é a checagem de ida e volta padrão que professores e autores de CTF usam para verificar uma implementação de ROT5.
Casos de uso
Exercícios de cifra em CTF e sala de aula
Alunos aplicam ROT5 a sequências de dígitos em enunciados de desafio e aplicam de novo para verificar a propriedade de involução antes de avançar a cifras clássicas mais difíceis.
Ofuscação leve de IDs em demos
Demos de produto e capturas de tela substituem números de pedido ou dígitos de telefone de amostra por ROT5 mantendo separadores e rótulos legíveis para a audiência.
Perguntas frequentes
O que é ROT5?
ROT5 gira cada dígito ASCII 0–9 cinco posições módulo 10. Zero vira cinco, um vira seis, e assim por diante; cinco mapeia de volta para zero. Não dígitos ficam inalterados.
Como decodifico ROT5?
Aplique ROT5 de novo. O mapeamento é uma involução: executar a mesma transformação duas vezes restaura os dígitos originais.
O ROT5 muda letras?
Não. Só os dígitos ASCII 0–9 são reescritos. Letras, espaços, pontuação e outros caracteres Unicode passam como estão.
O que acontece com entrada vazia?
É exigida uma string não vazia para que campos em branco não sejam tratados como resultado vazio bem-sucedido.
A cifra ROT5 de dígitos é gratuita?
A ferramenta do navegador é gratuita e roda localmente.
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/enc/rot5 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Phone: 555-0199"}'const res = await fetch("https://api.kit.forhosting.com/enc/rot5", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Phone: 555-0199"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/rot5",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Phone: 555-0199"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/rot5", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Phone: 555-0199"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Phone: 555-0199"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/rot5", 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": "Phone: 555-0199"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.rot5",
"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_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
Entrada vazia é rejeitada com erro claro invalid_input para que chamadores nunca tratem um campo em branco como no-op bem-sucedido. O caminho é aritmética de caracteres pura e determinística—sem rede, sem sementes aleatórias, sem dependência de relógio—então o executor gratuito do navegador e a API pré-paga devolvem o mesmo JSON toda vez.
O que o ROT5 faz aos dígitos e o que deixa em paz
Strings vazias não são aqui uma transformação identidade válida: a API as recusa com invalid_input para que um campo de formulário ausente não produza em silêncio outra string vazia que pareça bem-sucedida.
Como chamar a API e o que volta
A string deve ser não vazia e não exceder o limite de caracteres publicado de cem mil caracteres. Envie um corpo JSON com um campo string obrigatório chamado text. Aliases comuns também aceitos pelo solver incluem input, value, data, message e s, para que clientes existentes que já rotulam um payload de texto livre possam chamar esta capacidade sem renomear a chave. Em sucesso a resposta ecoa o payload original sob input, define tanto result quanto text para a string transformada por ROT5 para que qualquer chave sirva a pipelines posteriores, informa digits_rotated como a contagem de dígitos ASCII remapeados, non_digits como a contagem de caracteres deixados inalterados, length como a contagem de caracteres de saída (sempre igual ao comprimento de entrada), formula como o mnemônico curto dígito seta parêntese aberto dígito mais cinco parêntese fechado mod dez, e message como um resumo de uma linha em inglês de quantos dígitos se moveram. Validação falha—campo ausente, tipo errado, string vazia ou payload grande demais—retorna invalid_input e nunca é cobrada. O preço é um US$ 0,002 fixo por requisição bem-sucedida com unidade item e preço unitário marginal zero.
Dicas práticas, limites e buscas relacionadas
Prefira enviar a string mista completa em vez de remover a pontuação primeiro quando o contexto ao redor importa: formatos de telefone como cinco cinco cinco hífen zero um nove nove mantêm hífens e espaços enquanto só os dígitos rotacionam, que é exatamente o que redações de passatempos e demos de redação leve costumam querer. Se sua fonte só contém letras, a ferramenta ainda tem sucesso e informa zero dígitos rotacionados—isso é intencional, não um erro, porque o caminho identidade em não dígitos faz parte da definição da cifra. Esta página mira quem busca uma cifra ROT5, um rotacionador de dígitos ou uma ferramenta ROT de números online; não é ROT13 de letras, não é César geral com deslocamento arbitrário, não é Base64 e não é cifragem que forneça segredo contra um atacante motivado. Prefira esta capacidade quando precisar de uma substituição só de dígitos, transparente e reversível, para demos, planilhas ou passos de passatempo; se precisar de rotação de letras, use em vez disso uma ferramenta ROT13 orientada a letras. Para decodificar, chame o mesmo endpoint de novo com o result anterior; não há flag de modo a definir. Mantenha os payloads abaixo do comprimento máximo publicado para limitar a memória do Worker. Ao ensinar, emparelhe exemplos: a sequência de dígitos zero um dois três quatro cinco seis sete oito nove vira cinco seis sete oito nove zero um dois três quatro; uma string estilo telefone com hífens mostra preservação de pontuação; e uma string vazia demonstra o caminho duro invalid_input. Tarefas falhas que retornam invalid_input não consomem saldo pré-pago, o que mantém scripts exploratórios baratos quando clientes sondam campos vazios. Checagens de ida e volta são fáceis: reenvie o result e afirme igualdade com o original, e confirme que uma string só de não dígitos deixa result e input idênticos enquanto digits_rotated fica zero.
Casos de integração
Testes unitários de pipeline para transformações de dígitos
Suítes de teste geram strings de dígitos conhecidas, afirmam o mapeamento fixo (n+5) mod 10 e incluem um caso invalid_input de entrada vazia como fixture negativo.