ForHosting KIT · Ferramentas para dev

Cifra de livro

Esconda uma mensagem em um trecho que você compartilha com outra pessoa: com uma chave de 13 palavras, «quick fox river» vira 2 4 12, e esses números voltam às mesmas palavras. Ideal para charadas e aulas. Grátis no seu navegador.

  • Grátis
  • Funciona no seu navegador
  • Sem cadastro
  • Seus dados não saem do seu aparelho
Use pelo WebAPIE-mailTelegramApp em breve
Se você digitar
Ação
Encrypt
Você obtém
Resultado
2 4 12
Quantidade de palavras da chave
13
Posições
2, 4, 12
Palavras
quick, fox, river

Uma cifra de livro esconde uma mensagem curta apontando para palavras que já existem em um trecho compartilhado, em vez de inventar um alfabeto de substituição. Cole qualquer texto-chave que você e o interlocutor compartilhem—um parágrafo, um poema ou uma página impressa—e cifre uma frase em uma lista de posições de palavra a partir de 1, ou decifre esses números de volta nas palavras originais. A correspondência não diferencia maiúsculas, a pontuação inicial e final é removida na tokenização, e as palavras da mensagem que não aparecem na chave são listadas para que você possa ampliar o trecho ou reescrever o texto em claro. O motor é puro e determinístico: a mesma chave e a mesma mensagem sempre geram as mesmas posições, sem chamadas de rede, sementes aleatórias ou relógios.

Como a cifra de livro usa posições de palavra

As cifras de livro clássicas tratam um texto compartilhado como um livro de códigos. Em vez de trocar letras por outras letras, cada unidade da mensagem secreta é escrita como um ponteiro para esse texto—em geral um índice de palavra contado desde o início do trecho. Esta ferramenta implementa uma forma clara e didática dessa ideia: o texto-chave é dividido por espaços em branco, cada token perde a pontuação inicial e final, e a sequência resultante é numerada a partir de um.

Ao cifrar, cada palavra da mensagem é buscada sem diferenciar maiúsculas na primeira ocorrência da mesma palavra na lista da chave, e a cifra é a lista dessas posições (base 1) separadas por espaços. Ao decifrar, o campo message é lido como inteiros separados por espaços, vírgulas ou ponto e vírgula; cada número resolve para a palavra daquele índice na chave. Como só a primeira correspondência é usada, cifrar e decifrar permanecem inequívocos mesmo quando a palavra se repete mais adiante no trecho.

Caracteres que não são letras fora dos tokens de palavra nunca viram posições sozinhos, de modo que você sempre raciocina sobre palavras inteiras. Esta construção é propositalmente mais fraca que a criptografia moderna e destina-se a ensino, enigmas recreativos, aquecimentos de CTF e ofuscação reversível leve—não a proteger segredos reais em trânsito ou em repouso. Frequência e contexto ainda vazam quando a chave é um livro público conhecido; trate o trecho compartilhado como segredo compartilhado apenas no espírito de um truque clássico de salão, não como um canal autenticado.

História da cripto em sala de aula

Mostre aos alunos como um trecho compartilhado vira livro de códigos e como índices de palavra cifram e decifram sem alfabeto de substituição de letras.

Design de enigmas e escape rooms

Codifique pistas curtas como listas de posições que só se abrem quando os jogadores possuem o mesmo parágrafo ou poema impresso.

CTF e cifras de hobby

Gere desafios reversíveis de cifra de livro e relate palavras-chave ausentes para que os autores ajustem o trecho antes de publicar.

Quais entradas a cifra de livro precisa?

Encrypt espera palavras em claro; decrypt espera números de posição com base 1.

O que acontece se uma palavra da mensagem não estiver na chave?

Amplie o trecho-chave ou reformule a mensagem para cobri-la.

O que uma resposta bem-sucedida inclui?

Result são posições separadas por espaços no encrypt e palavras separadas por espaços no decrypt.

A cifra de livro é determinística e segura?

É uma cifra clássica de posições para ensino e enigmas, não segurança criptográfica moderna.

O que acontece se uma palavra aparece várias vezes no trecho?

A ferramenta usa sempre a primeira ocorrência, então cada palavra tem uma única posição. Assim, cifrar e decifrar nunca geram ambiguidade, mesmo que a palavra se repita mais adiante no texto.

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.

POSThttps://api.kit.forhosting.com/enc/book-cipher

Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.

curl -X POST https://api.kit.forhosting.com/enc/book-cipher \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"key_text":"The quick brown fox jumps over the lazy dog near the river bank","message":"quick fox river"}'
{
  "key_text": "The quick brown fox jumps over the lazy dog near the river bank",
  "message": "quick fox river"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.book_cipher",
  "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.

por chamadaUS$ 0,002

Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.

HTTPCódigoO que significa
401unauthorizedToken ausente ou inválido. Confira o header Authorization.
402insufficient_balanceSaldo insuficiente para esta tarefa. Faça uma recarga e tente de novo.
404unknown_typeEsse tipo de tarefa não existe. Confira o campo type no catálogo.
429rate_limitedMuitas requisições em pouco tempo. Espere um instante e tente de novo.

Use grátis no navegador para demos em sala e design de enigmas, ou chame a lógica idêntica pela API a US$ 0,002 por requisição bem-sucedida.

Cifrar, decifrar e palavras ausentes

Ao cifrar, a mensagem é tokenizada em palavras da mesma forma que a chave; cada palavra é mapeada para sua primeira posição na chave quando presente. Palavras ausentes não abortam uma chamada de cifragem bem-sucedida: são reportadas para que o autor possa ampliar o trecho-chave ou remover vocabulário raro sem adivinhar qual token falhou. Um ciclo encrypt e depois decrypt com a mesma chave restaura as formas de superfície da chave para cada palavra presente, que podem diferir em capitalização do texto em claro original mantendo as mesmas entradas do dicionário. Envie uma string key_text obrigatória e uma string message obrigatória e, opcionalmente, defina action como encrypt ou decrypt (encrypt é o padrão). A resposta inclui a action normalizada, quantas palavras a chave contém, a message original, uma string result de posições separadas por espaços para cada palavra encontrada, os arrays paralelos de positions e formas de superfície tomadas da chave, uma lista missing_words de tokens que nunca aparecem na chave, e os contadores words_found e words_total. Ao decifrar, a mensagem deve conter apenas posições inteiras positivas; um fragmento não numérico ou uma posição maior que a contagem de palavras da chave falha imediatamente com invalid_input indicando o problema. A decifragem nunca inventa vocabulário ausente: cada número mapeia para uma palavra da chave ou rejeita a requisição. key_text vazio após a tokenização, message vazia após a tokenização no encrypt, campos ausentes e valores ilegais de action também falham com invalid_input e não são cobrados.

Uso da API, preços e dicas práticas

Nunca reutilize a página de um romance público como se fosse uma chave moderna: quem adivinhar o livro pode tentar as mesmas buscas. O status é beta enquanto a superfície pública se estabiliza, mas as regras de mapeamento de posições seguem esta construção clássica fixa e não mudarão para entradas idênticas. Chame a capacidade com key_text e message como campos obrigatórios. Use action decrypt quando a message já for uma lista de posições produzida para essa mesma chave. O preço da API hospedada é um valor fixo de US$ 0,002 por requisição bem-sucedida; falhas de validação como key_text ausente, trecho vazio, token de decifragem não inteiro ou posição fora do intervalo não consomem saldo. Prefira um trecho longo o bastante para cobrir o vocabulário, de modo que missing_words fique vazio, e uma redação distintiva para verificar à mão os índices de primeira ocorrência. Em pipelines, envie cada mensagem como sua própria tarefa e colete resultados pelo fluxo habitual de webhook ou link assinado. Mantenha nomes de campo explícitos em vez de empacotar prosa livre em um único bloco: o contrato permanece alinhado a OpenAPI, tipos de SDK e controles de formulário, e evita análise ambígua de chave versus texto cifrado.

Quanto custa a API da cifra de livro?

Cada chamada bem-sucedida à API custa US$ 0,002. O mesmo motor roda grátis no seu navegador sem conta. Entrada inválida não é cobrada.

Ver a documentação completa do KIT →