Cifra rail fence
Escreva a mensagem em zigue-zague sobre vários trilhos e leia linha por linha: com 3 trilhos, WEAREDISCOVEREDFLEEATONCE vira WECRLTEERDSOEEFEAOCAIVDEN, e o mesmo número de trilhos desfaz tudo. Serve para enigmas e aulas, não para segredos. 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
- WEAREDISCOVEREDFLEEATONCE
- Número de trilhos
- 3
- Modo de cálculo
- Encrypt
- Resultado
- WECRLTEERDSOEEFEAOCAIVDEN
- Comprimento
- 25
A cifra rail fence é uma cifra clássica de transposição que reordena os caracteres escrevendo-os em zigue-zague para baixo e para cima ao longo de um número fixo de trilhos e depois lendo cada trilho da esquerda para a direita. Com dois ou mais trilhos a mensagem se embaralha sem mudar a identidade das letras, de modo que espaços e pontuação se movem com o zigue-zague em vez de serem substituídos. Usa-se em livros de passatempos, aquecimentos de CTF, demos de aula sobre transposição versus substituição e ofuscação leve de spoilers quando uma cifra moderna com chave é excessiva. Esta capacidade aceita texto não vazio, um inteiro de trilhos de pelo menos dois e um modo opcional de cifrar ou decifrar; devolve a string transformada com o modo normalizado, os trilhos usados e o comprimento.
Como funciona o zigue-zague rail-fence e o que a resposta contém
A cifragem escreve cada caractere sucessivo em trilhos sucessivos enquanto o caminho desce do trilho superior ao inferior e sobe de novo, repetindo até colocar a mensagem inteira. A leitura concatena todos os caracteres do primeiro trilho da esquerda para a direita, depois o segundo, e assim até o último; essa concatenação é o texto cifrado.
A decifragem reconstrói o mesmo padrão de ocupação para o comprimento e o número de trilhos conhecidos, preenche cada trilho com o próximo pedaço do cifrado e percorre o zigue-zague de novo para recuperar a ordem original. O modo opcional padrão é encrypt; encrypt e encode executam o zigue-zague adiante, enquanto decrypt e decode o invertem.
Regras de validação, limites de trilhos e erros comuns
Espaços, dígitos, pontuação e caracteres não latinos não são removidos: cada unidade de código participa da transposição, então as mensagens mantêm seus símbolos e só a ordem muda. Não trate o resultado como cifragem de confidencialidade: quem conhece o número de trilhos pode reverter o esquema rapidamente, e a página do produto nunca deve vender o rail fence como controle de segurança para senhas, tokens ou dados pessoais.
Prefira esta página quando a intenção de busca for cifra rail fence, cifra zigue-zague ou cifrar e decifrar rail-fence; Atbash e ROT13 respondem a intenções de substituição, e Base64 ou hex a intenções de codificação, permanecendo ferramentas separadas. Ao decifrar, use o mesmo número de trilhos que produziu o texto cifrado; um número errado gera outra permutação que não coincidirá com o texto original.
Uso em sala de aula e limites práticos
Use a cifra rail fence gratuita no navegador para rascunhos de passatempos, slides de aula, prática de CTF e checagens pontuais sem escrever uma rotina de zigue-zague em cada linguagem. Playbooks de suporte podem reverter notas de tickets levemente embaralhadas que a equipe escreveu de propósito com um número de trilhos conhecido. Sites de passatempos podem pré-calcular respostas para exibição e revelá-las sob demanda com mode decrypt.
Autores que publicam SDKs podem mapear o campo result direto para um botão de copiar, enquanto mode, rails e method tornam os exemplos OpenAPI autoexplicativos. Combine com ferramentas de substituição só quando um passo didático posterior precisar de outra família de cifras: mantenha o rail fence na sua própria página para que a intenção SEO continue nítida em torno da transposição em zigue-zague.
Casos de uso
Aquecimentos de transposição em passatempos e CTF
Esconda pistas ou flags de desafio com um número de trilhos conhecido e decifre com os mesmos trilhos quando quem resolve precisar da revelação sem instalar bibliotecas de cripto.
Demos de transposição em sala de aula
Professores contrastam o reordenamento em zigue-zague com cifras de substituição: cifre, decifre e mostre que as letras permanecem iguais enquanto a ordem muda.
Perguntas frequentes
Como cifro texto com a cifra rail fence?
O campo result da resposta contém o texto cifrado em zigue-zague.
Como decifro texto cifrado com rail-fence?
Envie o texto cifrado como text, o mesmo valor de rails usado na cifragem e mode decrypt (ou decode). O result é o texto original reconstruído quando o número de trilhos coincide.
O que acontece se eu usar menos de dois trilhos?
O produto rail-fence exige pelo menos dois trilhos; um único trilho deixaria o texto inalterado.
A ferramenta de cifra rail fence é gratuita?
A ferramenta do navegador roda grátis no seu dispositivo.
A rail fence é uma cifragem segura?
Não. Rail fence é uma transposição clássica para passatempos e ensino, não para confidencialidade. Nunca a use para senhas ou dados sensíveis.
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/rail-fence \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"WEAREDISCOVEREDFLEEATONCE","rails":3}'const res = await fetch("https://api.kit.forhosting.com/enc/rail-fence", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "WEAREDISCOVEREDFLEEATONCE",
"rails": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/rail-fence",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "WEAREDISCOVEREDFLEEATONCE",
"rails": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/rail-fence", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"WEAREDISCOVEREDFLEEATONCE","rails":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"WEAREDISCOVEREDFLEEATONCE","rails":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/rail-fence", 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": "WEAREDISCOVEREDFLEEATONCE",
"rails": 3
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.rail_fence",
"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.
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
Menos de dois trilhos ou texto vazio falham com invalid_input.
Como funciona o zigue-zague rail-fence e o que a resposta contém
Envie JSON com o campo string obrigatório text com qualquer mensagem não vazia e o inteiro obrigatório rails de pelo menos dois; os aliases input, value, s e message servem para o corpo do texto, enquanto key, n e num_rails alias o número de trilhos quando formulários antigos reutilizam esses nomes. Em sucesso a resposta inclui result com o texto transformado, mode normalizado para encrypt ou decrypt, rails ecoando o inteiro usado, length igual à contagem de caracteres de entrada e method igual a rail_fence para que clientes possam ramificar sem adivinhar formas. Entradas idênticas sempre produzem JSON idêntico porque o caminho é aritmética pura de índices, sem rede, sem semente aleatória e sem relógio.
Regras de validação, limites de trilhos e erros comuns
Texto ausente, não string ou string vazia geram invalid_input e não são cobrados na API pré-paga após a rejeição do motor. Rails ausente, não inteiro ou contagem abaixo de dois também falham com invalid_input; a promessa do produto é um zigue-zague real de vários trilhos, e um único trilho deixaria a mensagem inalterada. Mais de duzentos e cinquenta e seis trilhos são rejeitados para manter a construção do padrão limitada dentro de uma chamada de item em isolate Worker.
Uso da API, preços, fluxos de sala de aula e limites práticos
Use a API pré-paga do KIT quando um backend, função serverless, plataforma de tutoria ou SDK precisar de um contrato estável com saldo a US$ 0,002 por item bem-sucedido; falhas de validação nunca consomem saldo após a rejeição. Um fluxo típico de sala de aula escreve uma frase curta em trilhos de papel, compara as respostas dos alunos com o resultado da API e depois decifra para mostrar que a transposição é invertível quando a chave é o número de trilhos. Mantenha os payloads em tamanhos de texto comuns adequados a uma chamada de item em isolate Worker; esta ferramenta é para mensagens e trechos, não para blobs binários de vários megabytes.
Casos de integração
Fixtures de pipeline e CI
Scripts e testes de integração contínua fixam saídas determinísticas do rail-fence para que bugs acidentais de padrão ou de limites de trilhos falhem rápido.