Cifra Grandpré
Com as linhas CODE, ABLE, FISH e TRAP, a palavra CAT vira 112141: cada letra passa a ser o número da sua linha e da sua coluna na grade que você monta. Ao decifrar, os pares voltam a ser letras. 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
- CAT
- Palavras
- CODE, ABLE, FISH, TRAP
- Modo de cálculo
- Encrypt
- Resultado
- 112141
- Comprimento
- 6
- Letras mapeadas
- 3
- Pares
- 3
A cifra Grandpré é uma substituição homofônica clássica que numera cada letra pelas suas coordenadas em uma grade de linhas de palavras-chave. Você fornece as palavras que preenchem cada linha do tabuleiro, cola texto simples ou um fluxo de pares de dígitos e escolhe cifrar ou decifrar. A cifragem percorre as letras latinas da mensagem e substitui cada uma pelo rótulo de dois dígitos linha-coluna da primeira célula correspondente em ordem linha-maior; a decifragem coleta os dígitos, lê-os em pares e busca cada par na mesma grade. Como a mesma letra pode aparecer mais de uma vez entre as linhas de palavras, o sistema é homofônico em princípio —letras repetidas do texto simples não precisam sempre compartilhar um código— enquanto esta implementação permanece totalmente determinística ao escolher sempre a primeira célula. Quando a lista de palavras não cobre o alfabeto completo, a resposta ainda é bem-sucedida para as letras presentes e informa o status de grade incompleta com a lista de letras ausentes, para que você possa ampliar o quadrado.
Como as linhas de palavras-chave Grandpré viram pares de coordenadas
Um quadrado Grandpré é montado com palavras dispostas uma por linha de forma que cada célula contenha uma única letra latina. As descrições clássicas preferem um tabuleiro dez por dez cujas dez palavras também fazem a primeira coluna formar uma décima primeira palavra, mas qualquer conjunto retangular de linhas de palavras-chave com a mesma contagem de letras funciona do mesmo modo: remove-se o que não é letra, passa-se a maiúsculas e exige-se que cada linha tenha a mesma largura entre duas e dez colunas, com no máximo dez linhas.
Os eixos são rotulados a partir de um; quando um lado tem dez células, o décimo rótulo é o dígito zero, conforme a convenção 1–9–0 dos manuais. A cifragem substitui cada letra do texto simples pelo código de dois dígitos formado pelo rótulo da linha seguido do da coluna. Se a letra aparece várias vezes na grade, esta ferramenta seleciona sempre a primeira correspondência da esquerda para a direita e de cima para baixo, de modo que entradas idênticas sempre produzem o mesmo fluxo de dígitos sem aleatoriedade.
A decifragem inverte a consulta à tabela: os dígitos são colhidos da entrada em ordem e consumidos de dois em dois como rótulo de linha e de coluna. Uma contagem ímpar de dígitos, um rótulo fora do eixo ativo ou um par que não endereça nenhuma célula falham de imediato. Caracteres que não são letras no texto simples são ignorados na cifragem para o ciphertext permanecer só em dígitos de coordenadas; caracteres não numéricos na decifragem são ignorados enquanto o fluxo de dígitos é montado.
Não há deslocamento modular do alfabeto nem chave aditiva secundária — apenas a grade aberta de palavras-chave —, de modo que a cifra depende de quão completa e cuidadosa é a escolha dessas linhas.
Onde ferramentas Grandpré aparecem no trabalho real
Cursos introdutórios de criptografia e clubes de enigmas ainda atribuem grades no estilo Grandpré para os alunos praticarem substituição homofônica por coordenadas antes de conhecer cifras de máquina; um oráculo confiável que cifra e decifra a partir de linhas de palavras explícitas acelera demonstrações e autoavaliadores. Aquecimentos de capture-the-flag e desafios de geocaching escondem mensagens de pares de dígitos ao lado de um quadrado de palavras publicado, e quem resolve quer um codificador de primeira correspondência rápido e previsível, não um suite geral de criptoanálise.
Equipes de conteúdo e suporte às vezes codificam levemente spoilers, respostas de quiz ou rótulos internos como pares de coordenadas sobre uma lista de palavras compartilhada e precisam do caminho inverso sem instalar uma biblioteca criptográfica por linguagem.
Se você precisa de um quadrado de Políbio fixo cinco por cinco sem palavras-chave, um quadrado digráfico Playfair, uma camada aditiva Nihilist, deslocamentos Caesar ou Vigenère, ou recuperação automática de um tabuleiro Grandpré desconhecido só a partir do ciphertext, trate isso como intenções de busca e landings separadas, em vez de sobrecarregar esta página da cifra de coordenadas por linhas de palavras-chave.
Casos de uso
Demonstrações escolares de coordenadas homofônicas
Cifre e decifre palavras de exemplo em uma grade de linhas de palavras-chave publicada para que lições introdutórias de criptografia compartilhem um mapeamento de referência e vejam relatórios de cobertura de grade incompleta.
Desafios de enigmas e CTF com pares de dígitos
Codifique ou inverta fluxos de coordenadas Grandpré contra um quadrado de palavras conhecido sem escrever um script avulso para cada conjunto de problemas.
Perguntas frequentes
O que é a cifra Grandpré?
Uma cifra homofônica clássica que coloca letras em uma grade de linhas de palavras-chave e substitui cada letra do texto simples pelas coordenadas de dois dígitos linha-coluna de uma célula correspondente.
Como forneço a grade?
Passe words como um array de strings, uma linha de palavra-chave por entrada. Todas as linhas devem ter a mesma contagem de letras após remover não-letras. Tamanhos de 2×2 até 10×10 são aceitos.
O que significa grade incompleta?
A cifragem ainda funciona para as letras presentes; só falha quando o texto simples precisa de uma letra ausente.
Qual coordenada é escolhida quando uma letra aparece mais de uma vez?
A primeira célula em ordem linha-maior (da esquerda para a direita, de cima para baixo). Isso mantém a cifragem determinística e sem aleatoriedade, ainda permitindo homófonos no tabuleiro.
Quanto custa?
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/grandpre \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"CAT","words":["CODE","ABLE","FISH","TRAP"]}'const res = await fetch("https://api.kit.forhosting.com/enc/grandpre", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "CAT",
"words": [
"CODE",
"ABLE",
"FISH",
"TRAP"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/grandpre",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "CAT",
"words": [
"CODE",
"ABLE",
"FISH",
"TRAP"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/grandpre", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"CAT","words":["CODE","ABLE","FISH","TRAP"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"CAT","words":["CODE","ABLE","FISH","TRAP"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/grandpre", 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": "CAT",
"words": [
"CODE",
"ABLE",
"FISH",
"TRAP"
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.grandpre",
"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
Como as linhas de palavras-chave Grandpré viram pares de coordenadas
Letras que nunca aparecem entre as palavras fornecidas não podem ser cifradas: a requisição falha com invalid_input e nomeia a lacuna de grade incompleta em vez de inventar um substituto.
O que você envia e o que recebe de volta
Envie um campo string obrigatório chamado text, um campo array obrigatório chamado words com uma string de palavra-chave por linha da grade, e um campo opcional mode com valor encrypt ou decrypt. Falhas de validação não consomem saldo pré-pago. Verificações clássicas incluem cifrar CAT nas palavras de exemplo quatro por quatro CODE, ABLE, FISH, TRAP em um fluxo de seis dígitos, decifrar esse fluxo de volta a CAT, confirmar que incomplete é true quando faltam letras como G ou Z, e rejeitar um ciphertext de cinco dígitos em vez de truncar em silêncio. Quando mode é omitido, encrypt é o padrão, de modo que um payload mínimo ainda produz pares de coordenadas. Em sucesso a resposta ecoa mode e text, devolve result como o fluxo de dígitos ou as letras maiúsculas recuperadas, length desse resultado, letters_mapped e pairs como quantas células foram usadas, digit_count do fluxo de coordenadas, rows e cols do tamanho da grade, grid como as linhas de palavras em maiúsculas normalizadas, incomplete como booleano, missing_letters como os caracteres A–Z ausentes do tabuleiro, alphabet_coverage como quantas letras distintas as palavras fornecem, row_labels e col_labels como strings compactas de eixos, e cipher igual a grandpre para clientes que validam o perfil. Falta de text ou words, menos de duas linhas, mais de dez linhas, uma linha sem letras latinas, comprimentos de linha desiguais após remover não-letras, valores de mode não suportados, strings maiores que o máximo documentado, payloads de cifragem sem letras, de decifragem sem dígitos, número ímpar de dígitos e pares de coordenadas fora dos eixos rotulados falham com invalid_input e uma mensagem clara em inglês. O preço das chamadas de API bem-sucedidas é a base publicada de US$ 0,002 por item.
Onde ferramentas Grandpré aparecem no trabalho real
Como esta capacidade é um motor parse puro, o preço da API é a base publicada de US$ 0,002 por item bem-sucedido e a validação falha não consome saldo.
Casos de integração
Codificação de rótulos com lista de palavras compartilhada
Transforme respostas de quiz ou rótulos internos em pares dígito linha-coluna sobre uma lista de palavras combinada e decodifique-os depois com o mesmo contrato no navegador ou na API.