Codificador e decodificador da cifra de Vigenère
Cifra “Attack at dawn” com a chave LEMON em “Lxfopv ef rnhr” e decifra de volta com a mesma chave. Cada letra recebe seu próprio deslocamento de César conforme a chave repetida, maiúsculas e minúsculas se mantêm, e espaços e pontuação ficam no lugar. 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
- Attack at dawn
- Chave
- LEMON
- Modo de cálculo
- encrypt
- Resultado
- Lxfopv ef rnhr
- Codificação
- vigenere
- Letras da chave
- LEMON
- Comprimento da chave
- 5
Esta ferramenta de cifra de Vigenère cifra ou decifra texto com a clássica substituição polialfabética, que usa uma palavra-chave repetida para escolher um deslocamento de César diferente para cada letra. Diferente de um único deslocamento fixo de César, o fluxo de chave percorre a palavra-chave, então a mesma letra do texto plano pode mapear para letras diferentes no texto cifrado, dependendo da posição, o que é a força histórica do método para demonstrações de sala de aula e design de quebra-cabeças. Apenas caracteres alfabéticos se movem: cada letra A–Z é deslocada pela letra de chave correspondente, com aritmética modular em um anel de vinte e seis letras, o caso é preservado, e espaços, dígitos, pontuação, e outros símbolos passam sem consumir um passo de chave. Uma verificação padrão é Attack at dawn com a chave LEMON, cifrando para um texto cifrado conhecido, que decifra de volta sob a mesma palavra-chave.
O que é a cifra de Vigenère e o que esta ferramenta retorna
A cifra de Vigenère é uma substituição polialfabética sobre o alfabeto latino de vinte e seis letras. Você informa uma palavra-chave cujas letras definem cada uma um deslocamento de César, de zero para A até vinte e cinco para Z. As letras do texto plano são transformadas em ordem: a primeira letra usa a primeira letra da chave, a segunda usa a próxima, e quando a palavra-chave termina, o fluxo dá a volta para o início novamente.
A cifragem soma o deslocamento de chave módulo vinte e seis; a decifragem o subtrai com a mesma volta modular, para que as duas operações sejam exatamente inversas quando a mesma palavra-chave é usada. Caracteres que não são letras nunca mudam e nunca avançam o índice de chave, o que mantém espaçamento de frase e pontuação legíveis ao redor das letras embaralhadas. Esta página sempre usa essa regra de livro-texto, com preservação de caso e sem tabelas de alfabeto opcionais que pudessem divergir entre localidades.
A Vigenère em aulas, quebra-cabeças e conferências
Desenvolvedores e educadores encontram a cifra de Vigenère em aquecimentos de capture-the-flag, capítulos de livros didáticos sobre criptologia clássica, e demonstrações leves que mostram por que palavras-chave repetidas acabam vazando estrutura sob o exame de Kasiski. Equipes de frontend podem embaralhar frases de exemplo para capturas de tela sem inventar um alfabeto personalizado, e depois recuperá-las com decrypt sob a mesma chave.
Serviços de backend codificam strings curtas de desafio para APIs de quebra-cabeça ou sandboxes de ensino, em que os estudantes precisam aplicar a palavra-chave correta para desbloquear o próximo passo. Engenheiros de qualidade geram pares determinísticos de cifragem e decifragem para testes de contrato, para que um middleware que afirma suportar Vigenère não possa trocar silenciosamente para um único deslocamento de César. Organizadores de competições pré-calculam gabaritos para frases modestas em inglês sem depender de brinquedos web opacos que mudam regras de espaçamento ou forçam saída apenas em maiúsculas.
Ferramentas de produto e educação usam a transformação quando um aprendiz cola um texto cifrado e a interface precisa mostrar o texto plano recuperado sob a palavra-chave documentada. Combine-a com outros auxiliares de codificação clássica ao montar um pequeno laboratório de ferramentas de texto gratuitas e determinísticas, e nunca trate a Vigenère como substituta de criptografia moderna autenticada.
Casos de uso
Prática de CTF e cifras clássicas
Cifre e decifre frases polialfabéticas baseadas em palavra-chave para quebra-cabeças, salas de aula, e aquecimentos de capture-the-flag.
Lições de história da criptografia
Demonstre a substituição com chave repetida, transformações que preservam caso, e por que não letras não devem avançar o fluxo de chave.
Perguntas frequentes
Como decifro uma mensagem de Vigenère?
Envie o texto cifrado como text, a mesma palavra-chave como key, e defina mode como decrypt (ou dec, decode, d). A cifragem é o padrão quando mode é omitido.
O que acontece se a chave não tiver letras?
A palavra-chave deve conter pelo menos uma letra A–Z; dígitos ou símbolos puros são rejeitados.
Quais caracteres são deslocados?
Apenas letras alfabéticas A–Z, em qualquer caso. Espaços, dígitos, pontuação, e outros símbolos passam sem alteração e não avançam a chave.
Vigenère é segura para segredos reais?
Não. É uma cifra didática clássica. Use criptografia moderna autenticada, como AES-GCM, para confidencialidade real.
Por que a mesma letra vira letras diferentes?
Porque cada letra usa o deslocamento da próxima letra da chave, que se repete. Com LEMON, os três “a” de “Attack at dawn” viram L, depois e, depois n: é isso que diferencia a Vigenère de um César fixo.
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/vigenere \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Attack at dawn","key":"LEMON"}'const res = await fetch("https://api.kit.forhosting.com/enc/vigenere", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Attack at dawn",
"key": "LEMON"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/vigenere",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Attack at dawn",
"key": "LEMON"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/vigenere", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Attack at dawn","key":"LEMON"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Attack at dawn","key":"LEMON"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/vigenere", 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": "Attack at dawn",
"key": "LEMON"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.vigenere",
"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
Use gratuitamente no navegador para aquecimentos de CTF, lições de história da criptografia, e planilhas de quebra-cabeça reversíveis, ou chame a API por US$ 0,002 a cada solicitação bem-sucedida quando pipelines precisarem de transformações de Vigenère reproduzíveis em CI e serviços de backend.
O que é a cifra de Vigenère e o que esta ferramenta retorna
A resposta em JSON inclui result para a string transformada, encoding fixado em vigenere, mode definido como encrypt ou decrypt, key_letters mostrando o fluxo de letras maiúsculas normalizado extraído da sua palavra-chave, key_length, input_length e output_length que coincidem porque a transformação preserva o comprimento, shifted_chars contando quantas letras realmente se moveram, e uma string formula que reafirma o mapeamento modular para documentação e testes. Não há caminho de streaming nem fallback silencioso para ROT13 ou um César fixo: ou você informa um texto não vazio e uma palavra-chave com pelo menos uma letra, ou a solicitação falha com invalid_input. Se você precisa de AES, ROT47, Base64, ou Morse, use esses endpoints dedicados; esta página responde apenas ao contrato clássico de palavra-chave de Vigenère, que os capítulos de história da criptografia e os aquecimentos de CTF já descrevem.
Como texto, chave e modo são interpretados e como os resultados permanecem reproduzíveis
Os campos de payload preferidos são text para a mensagem, key para a palavra-chave, e mode opcional para encrypt ou decrypt. Text aceita aliases como input, value, s, message, plaintext e ciphertext, para que formulários e clientes de SDK possam reutilizar nomes de coluna já existentes. Key aceita keyword, k, password e passphrase; apenas caracteres alfabéticos dentro da chave são mantidos e colocados em maiúsculas em key_letters, enquanto dígitos e símbolos na chave são ignorados. Se, depois desse filtro, nenhuma letra permanecer, o mecanismo rejeita a solicitação com invalid_input e uma mensagem clara de que a palavra-chave deve conter pelo menos uma letra A–Z. Mode assume encrypt por padrão quando omitido, e também aceita aliases curtos como enc, encode, e para encrypt, e dec, decode, d para decrypt; qualquer outra string falha na validação. Text ausente, texto vazio, tipos não string, e modos desconhecidos todos geram invalid_input, para que um formulário em branco não pareça uma operação vazia bem-sucedida. Cada letra é processada com o mapa modular fixo, e o índice de chave avança apenas em letras, então cifrar e depois decifrar com a mesma palavra-chave sempre restaura o payload original. Combine a execução gratuita no navegador desta página com a API paga quando precisar do mesmo resultado matemático dentro de um pipeline automatizado, sem reimplementar o fluxo polialfabético você mesmo. Entradas inválidas retornam invalid_input e não são cobradas, o que mantém a validação barata enquanto as transformações bem-sucedidas permanecem com um preço fixo por item.
Onde a Vigenère se encaixa em lições, quebra-cabeças e fixtures de teste
Nesta página o trabalho roda inteiramente no seu navegador; pela API, cada consulta bem-sucedida custa US$ 0,002, a validação com falha não é cobrada, e nada é armazenado depois que a resposta é devolvida. Essa divisão — exploração interativa gratuita e uma API paga e idêntica — segue o padrão do resto do catálogo tier A do KIT e permite passar de uma demonstração em sala de aula para um pipeline automatizado sem mudar o resultado transformado.
Casos de integração
Fixtures determinísticas de CI
Gere pares reproduzíveis de texto cifrado e texto plano de Vigenère para testes unitários, arquivos golden e verificações de contrato.
Perguntas técnicas
Quanto custa a ferramenta de cifra de Vigenère?
É gratuita no navegador, nesta página. Pela API, uma solicitação bem-sucedida custa US$ 0,002; entradas inválidas não são cobradas.