Cifra de deslocamento QWERTY: criptografar ou decifrar, grátis
Com deslocamento um, hello vira jraap: cada letra passa para a tecla à direita na mesma linha QWERTY, e o l dá a volta até o a. O mesmo deslocamento no modo decifrar recupera hello. 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
- hello
- Deslocamento
- 1
- Modo de cálculo
- Encrypt
- Resultado
- jraap
- Comprimento
- 5
- Letras deslocadas
- 5
- Disposição
- qwerty
Uma cifra de deslocamento de teclado não gira as letras do alfabeto como a de César. Em vez disso, move cada caractere para uma tecla vizinha no layout físico QWERTY: com offset um no modo encrypt, Q vira W, W vira E, A vira S, e assim por diante na mesma linha. A decriptação caminha na direção oposta, de modo que um offset conhecido sempre recupera a mensagem original quando todos os caracteres eram letras admitidas ou espaços. Esta capacidade implementa essa transformação de teclas adjacentes com um offset inteiro configurável e um modo encrypt ou decrypt.
Como um deslocamento QWERTY move as letras
A grade de letras QWERTY dos Estados Unidos é tratada como três linhas independentes: a linha superior qwertyuiop, a linha home asdfghjkl e a inferior zxcvbnm. A criptografia move cada letra um número fixo de teclas para a direita na própria linha; a decriptação move a mesma distância para a esquerda. A contagem de passos é o offset inteiro que você informa.
O movimento só envolve dentro da linha: a letra depois de P é Q de novo, depois de L é A e depois de M é Z, de modo que todo caractere alfabético sempre cai em outra letra da mesma linha física. O caso é preservado: um H maiúsculo com offset um vira J maiúsculo e um h minúsculo vira j. Os espaços são copiados sem alteração para que frases com várias palavras mantenham a forma.
Dígitos, pontuação, emoji e letras fora do bloco latino básico não estão no mapa admitido; o motor para imediatamente com erro de tecla não admitida em vez de inventar um vizinho. Matematicamente a transformação é aritmética modular no índice da linha: encontra-se a posição do caractere na linha, soma-se ou subtrai-se o offset módulo o comprimento da linha e mapeia-se de volta a um caractere do mesmo caso. Offset zero é a identidade; onze numa linha de dez teclas equivale a um.
Não há chamada de rede, semente aleatória nem carimbo de tempo no caminho. Esta página implementa apenas adjacência QWERTY na mesma linha — não rotação alfabética César, não caminhada diagonal multi-linha e não criptografia forte.
O que você envia e o que recebe de volta
Envie um campo de string obrigatório chamado text, um inteiro obrigatório chamado offset e um campo mode opcional com valor encrypt ou decrypt. O modo encrypt desloca as letras para a direita na linha QWERTY; decrypt as desloca para a esquerda na mesma distância absoluta, o que inverte um encrypt anterior com esse offset. Falhas de validação não consomem saldo pré-pago.
Verificações clássicas: criptografar hello com offset um dá jraap (h→j, e→r, l→a com wrap de linha, o→p); decriptar esse texto com o mesmo offset recupera hello; e confirmar que hello! falha porque o ponto de exclamação é tecla não admitida.
Onde cifras de teclado aparecem no trabalho real
Criptografia introdutória e puzzles de layout de teclado costumam pedir aos alunos que embaralhem uma mensagem deslizando os dedos uma tecla de lado em vez de contar posições do alfabeto; um oráculo confiável que criptografa e decripta com um offset inteiro explícito acelera demos de lição de casa e autoavaliadores. Aquecimentos de capture-the-flag e props de escape room às vezes escondem frases deslocadas QWERTY em notas ou imagens, e os solucionadores querem uma ferramenta adjacente rápida e previsível em vez de um suite geral de criptoanálise.
Equipes de suporte e conteúdo podem ofuscar levemente spoilers ou respostas de quiz com um deslize trivial de teclado e precisam do caminho inverso sem instalar uma biblioteca específica da linguagem. Se você precisa de rotação alfabética César clássica, chaves polialfabéticas Vigenère, codificação Base64 ou criptografia autenticada forte, trate isso como intenções de busca e páginas de destino separadas em vez de sobrecarregar esta página de teclas adjacentes QWERTY.
Casos de uso
Demos de adjacência QWERTY em aula
Criptografe e decripte palavras de exemplo com um offset inteiro conhecido para que os alunos vejam vizinhos de teclado na mesma linha em vez de matemática alfabética.
Puzzles e CTF com deslocamento de teclado
Aplique ou inverta um deslize fixo de teclas adjacentes em strings de desafio sem escrever um script descartável para cada conjunto de problemas.
Perguntas frequentes
O que é uma cifra de deslocamento de teclado?
Uma substituição que move cada letra para uma tecla vizinha numa linha QWERTY por um offset inteiro fixo, em vez de girar pelo alfabeto como César.
Como faço para decifrar o texto?
Defina mode como decrypt com o mesmo offset inteiro usado na criptografia. Isso desloca cada letra para a esquerda na sua linha e recupera o original quando só havia letras e espaços.
O deslocamento envolve no fim da linha?
Sim. O movimento é modular dentro da mesma linha QWERTY, então P com offset um vira Q, e L com offset um vira A.
Quanto custa?
A ferramenta do navegador é gratuita e roda localmente.
As maiúsculas e os espaços são mantidos?
Sim. Cada letra continua maiúscula ou minúscula, então um H maiúsculo com deslocamento um vira J e um h minúsculo vira j. Os espaços são copiados sem mudança, e uma frase de várias palavras mantém a forma.
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/keyboard-shift \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"hello","offset":1}'const res = await fetch("https://api.kit.forhosting.com/enc/keyboard-shift", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "hello",
"offset": 1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/keyboard-shift",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "hello",
"offset": 1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/keyboard-shift", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"hello","offset":1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"hello","offset":1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/keyboard-shift", 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": "hello",
"offset": 1
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.keyboard_shift",
"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
Somente as letras latinas de A a Z são deslocadas, o caso é preservado, os espaços permanecem e qualquer dígito, pontuação ou outro símbolo é rejeitado como tecla não admitida com um erro invalid_input claro.
Como um deslocamento QWERTY move as letras
Como cada passo é aritmética inteira com uma tabela de layout fixa, a cifra é totalmente determinística: texto, offset e modo idênticos sempre produzem o mesmo JSON.
O que você envia e o que recebe de volta
Quando mode é omitido, encrypt é o padrão para que um payload mínimo ainda seja útil. Em sucesso a resposta ecoa mode, o text original, o offset inteiro que você enviou, a string result transformada, length desse resultado, letters_shifted como contagem de caracteres alfabéticos movidos, mais rótulos layout, rows e cipher para clientes que afirmam o perfil atingido. Text ausente, offset ausente, objetos não string para text, valores de mode não admitidos, strings maiores que o máximo documentado, offsets não inteiros incluindo valores flutuantes como um ponto cinco, e qualquer caractere que não seja letra latina ou espaço — pontuação, dígitos, símbolos — falham com invalid_input e uma mensagem clara em inglês nomeando a tecla não admitida quando relevante. O preço das chamadas API bem-sucedidas é a base publicada de US$ 0,002 por item.
Onde cifras de teclado aparecem no trabalho real
Como esta capacidade é um motor de parse puro, o preço da API é a base publicada de US$ 0,002 por item bem-sucedido e validação falha não consome saldo.
Casos de integração
Ofuscação leve de spoilers
Deslize de lado respostas de quiz ou rótulos no QWERTY e decripte-os depois com o mesmo contrato no navegador ou na API.
Perguntas técnicas
O que conta como tecla não admitida?
Qualquer caractere que não seja letra latina A–Z/a–z nem espaço — dígitos, pontuação, emoji e letras acentuadas falham com invalid_input e não são cobrados.