Cifra Gronsfeld
Com a chave 31415, ATTACKATDAWN vira DUXBHNBXEFZO: cada dígito avança a próxima letra esse número de posições, e a chave se repete até o fim da mensagem. Para descriptografar, o deslocamento volta. 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
- ATTACKATDAWN
- Chave
- 31415
- Modo de cálculo
- Encrypt
- Resultado
- DUXBHNBXEFZO
- Entrada
- ATTACKATDAWN
- Texto
- DUXBHNBXEFZO
- Letras deslocadas
- 12
A cifra Gronsfeld é um sistema polialfabético clássico parecido com Vigenère, mas usa uma sequência de dígitos em vez de uma palavra-chave de letras: cada dígito de zero a nove é o deslocamento César aplicado à próxima letra da mensagem, e o fluxo de dígitos se repete até processar todas as letras.
Como a chave numérica e os deslocamentos de letras funcionam
Gronsfeld é mais fácil de entender como Vigenère com um alfabeto de chave restrito a dez símbolos. Escreva o seu segredo como sequência de dígitos decimais; o primeiro dígito é o deslocamento da primeira letra, o segundo da segunda, e assim por diante, voltando ao início da chave quando a mensagem é mais longa que a chave.
A criptografia soma o dígito ao índice da letra no alfabeto latino e reduz módulo vinte e seis; a descriptografia subtrai o mesmo dígito com o mesmo envelopamento modular, de modo que uma ida e volta restaura as letras originais. O caso é preservado: um A maiúsculo deslocado em três vira D, e um a minúsculo vira d, o que mantém frases de exemplo legíveis em demos.
Caracteres que não são letras —espaços, vírgulas, dígitos no corpo da mensagem, emoji— passam inalterados e não consomem uma posição da chave, seguindo a convenção usual de ensino polialfabético. Uma chave que, após aparar espaços, contenha qualquer caractere não dígito é inválida: Gronsfeld é definido por chave numérica, então letras, espaços e pontuação no campo da chave são erros, não um silêncio que caia para uma palavra-chave Vigenère.
Dicas práticas, limites e buscas relacionadas
Escolha uma chave com vários dígitos distintos para que o fluxo de deslocamentos não seja uma única cifra de César disfarçada; sequências curtas e memoráveis ainda funcionam para demos, mas strings irregulares mais longas embaralham mais o alfabeto. Lembre-se de que só letras avançam a chave: se você criptografar uma frase com espaços, os espaços permanecem e a próxima letra ainda toma o próximo dígito, o que os alunos esperam ao marcar colunas à mão.
Checagens de ida e volta são o melhor teste de sanidade: criptografe uma frase, descriptografe o resultado com a mesma chave e confirme que o fluxo de letras coincide com a entrada original sensível a maiúsculas. Esta landing mira quem busca cifra Gronsfeld, Vigenère de chave numérica ou encryptor de deslocamento por dígitos online; não é AES, não é um cofre moderno de senhas, não são digrafos Playfair nem ROT13.
Prefira esta capacidade quando precisar de criptografia polialfabética clássica transparente com chave só de dígitos para educação ou puzzles; se precisar de sigilo real, use uma cifra autenticada moderna.
Casos de uso
Verificação de CTF e puzzles
Autores de desafios conferem encrypt e decrypt Gronsfeld com uma chave numérica publicada sem manter um script offline separado.
Demos históricas de cripto
Museus e blogs mostram ao vivo como uma chave de dígitos difere de uma palavra-chave Vigenère de letras criptografando frases de visitantes no navegador.
Perguntas frequentes
O que é a cifra Gronsfeld?
Uma cifra polialfabética clássica: como Vigenère, mas a chave é uma string de dígitos 0–9. Cada dígito é o deslocamento César da letra correspondente, repetindo-se conforme necessário.
Como Gronsfeld difere de Vigenère?
Gronsfeld restringe a chave a dígitos 0–9, então cada deslocamento é no máximo nove posições.
O que acontece se a chave tiver letras ou espaços?
Uma chave Gronsfeld deve conter apenas dígitos 0–9 após o trim.
Espaços e pontuação são criptografados?
Não. Só A–Z e a–z são deslocados. Outros caracteres passam inalterados e não consomem um dígito da chave.
A cifra Gronsfeld é 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/gronsfeld \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"ATTACKATDAWN","key":"31415"}'const res = await fetch("https://api.kit.forhosting.com/enc/gronsfeld", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "ATTACKATDAWN",
"key": "31415"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/gronsfeld",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "ATTACKATDAWN",
"key": "31415"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/gronsfeld", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"ATTACKATDAWN","key":"31415"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"ATTACKATDAWN","key":"31415"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/gronsfeld", 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": "ATTACKATDAWN",
"key": "31415"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.gronsfeld",
"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
Informe o texto que deseja proteger ou recuperar, uma chave numérica como três um quatro um cinco, e o modo de criptografar ou descriptografar; a ferramenta desloca letras módulo vinte e seis preservando maiúsculas e minúsculas, deixa espaços e pontuação intactos e rejeita qualquer chave que não seja só dígitos com um erro invalid_input claro, para que um erro de digitação nunca se torne em silêncio um alfabeto errado. Como o mapeamento é aritmética modular determinística pura —sem rede, sem sementes aleatórias, sem relógio de parede— o executor gratuito do navegador e a API pré-paga devolvem o mesmo JSON, incluindo a lista de deslocamentos aplicados a cada letra, sempre que você a chama para planilhas de aula, prática CTF ou demos históricas de cifras.
Como a chave numérica e os deslocamentos de letras funcionam
Texto vazio e chaves vazias também são rejeitados para que a API nunca devolva uma transformação identidade que pareça bem-sucedida mas não ensine nada.
Como chamar a API e o que volta
O texto deve ser uma string não vazia de no máximo cem mil caracteres. Envie um corpo JSON com dois campos de string obrigatórios, text e key, mais um mode opcional que por omissão é encrypt quando omitido. Alias aceitos para text incluem input, value, data, message, plaintext e ciphertext; key também aceita digits, numeric_key, secret, k e passphrase; mode aceita operation, op, direction e action, e reconhece sinônimos comuns como encode ou decode. A chave deve ser não vazia após o trim e combinar apenas caracteres de zero a nove; qualquer letra, espaço ou pontuação gera invalid_input e não é cobrada. Em sucesso a resposta ecoa o texto de entrada original, reporta key como a string de dígitos normalizada, mode como encrypt ou decrypt, result e text como a string transformada, letters_shifted e non_letters como contagens, key_length como o número de dígitos, length como a contagem de caracteres de saída, shifts_applied como a lista ordenada de dígitos usados para cada letra em ordem, formula como um mnemônico modular curto, e message como um resumo em uma linha. O preço é fixo US$ 0,002 por requisição bem-sucedida com unidade item e preço marginal unitário zero.
Dicas práticas, limites e buscas relacionadas
Mantenha cargas abaixo do máximo publicado de cem mil caracteres para limitar a memória do Worker. Ao ensinar, combine exemplos: ATTACKATDAWN com chave três um quatro um cinco mostra um encrypt polialfabético clássico; o mesmo ciphertext com mode decrypt recupera a frase; e uma chave com uma letra demonstra o caminho rígido invalid_input exigido pelo contrato do produto. Tarefas falhas que retornam invalid_input não consomem saldo pré-pago, o que mantém scripts exploratórios baratos quando clientes testam chaves não numéricas.
Casos de integração
Laboratórios polialfabéticos em sala
Alunos aplicam deslocamentos por dígitos à mão e comparam letra a letra os resultados e a lista shifts_applied com a saída determinística da API.