Cifrario shift QWERTY: crittare o decrittare, gratis
Con uno spostamento di uno, hello diventa jraap: ogni lettera passa al tasto alla sua destra sulla stessa riga QWERTY, e la l torna alla a. Lo stesso spostamento in modalità decifratura restituisce hello. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Testo
- hello
- Spostamento
- 1
- Modalità di calcolo
- Encrypt
- Risultato
- jraap
- Lunghezza
- 5
- Lettere spostate
- 5
- Disposizione
- qwerty
Un cifrario a scorrimento di tastiera non ruota le lettere lungo l’alfabeto come fa un cifrario di Cesare. Sposta invece ogni carattere su un tasto vicino su un layout fisico QWERTY: con offset uno in modalità encrypt, Q diventa W, W diventa E, A diventa S, e così via sulla stessa riga. La decrittazione cammina nella direzione opposta, così un offset noto recupera sempre il messaggio originale quando ogni carattere era una lettera supportata o uno spazio. Questa capacità implementa quella trasformazione a tasti adiacenti con un offset intero configurabile e una modalità encrypt o decrypt.
Come uno shift QWERTY sposta le lettere
La griglia di lettere QWERTY degli Stati Uniti è trattata come tre righe indipendenti: la riga superiore qwertyuiop, la riga home asdfghjkl e quella inferiore zxcvbnm. La crittazione sposta ogni lettera di un numero fisso di tasti a destra sulla propria riga; la decrittazione si sposta della stessa distanza a sinistra. Il conteggio dei passi è l’offset intero che Lei fornisce.
Il movimento si avvolge solo all’interno della riga: la lettera dopo P è di nuovo Q, dopo L è A e dopo M è Z, così ogni carattere alfabetico atterra sempre su un’altra lettera della stessa riga fisica. Il caso è preservato: una H maiuscola con offset uno diventa J maiuscola e una h minuscola diventa j. Gli spazi vengono copiati invariati affinché le frasi multi-parola mantengano la forma.
Cifre, punteggiatura, emoji e lettere fuori dal blocco latino di base non sono sulla mappa supportata; il motore si ferma subito con un errore di tasto non supportato invece di inventare un vicino. Matematicamente la trasformazione è aritmetica modulare sull’indice di riga: si trova la posizione del carattere sulla riga, si somma o si sottrae l’offset modulo la lunghezza della riga e si mappa di nuovo a un carattere dello stesso caso. Offset zero è l’identità; undici su una riga di dieci tasti equivale a uno.
Non c’è chiamata di rete, seme casuale né timestamp nel percorso. Questa pagina implementa solo l’adiacenza QWERTY sulla stessa riga — non la rotazione alfabetica di Cesare, non una camminata diagonale multi-riga e non una crittografia forte.
Cosa invia e cosa riceve
Invii un campo stringa obbligatorio chiamato text, un intero obbligatorio chiamato offset e un campo mode opzionale impostato su encrypt o decrypt. La modalità encrypt sposta le lettere a destra sulla riga QWERTY; decrypt le sposta a sinistra della stessa distanza assoluta, invertendo un encrypt precedente con quell’offset. I fallimenti di validazione non consumano il saldo prepagato.
Controlli classici: crittare hello con offset uno dà jraap (h→j, e→r, l→a con wrap di riga, o→p); decrittare quel testo con lo stesso offset recupera hello; e confermare che hello! fallisce perché il punto esclamativo è un tasto non supportato.
Dove i cifrari a tastiera compaiono nel lavoro reale
La crittografia introduttiva e i puzzle di layout tastiera chiedono spesso agli studenti di confondere un messaggio scorrendo le dita di un tasto di lato invece di contare le posizioni dell’alfabeto; un oracolo affidabile che critta e decritta con un offset intero esplicito accelera le demo dei compiti e gli auto-correttori. I riscaldamenti di capture-the-flag e gli oggetti di escape room a volte nascondono frasi shiftate QWERTY su note o immagini, e i risolutori vogliono uno strumento adiacente rapido e prevedibile piuttosto che una suite generale di crittoanalisi.
I team di supporto e contenuti possono offuscare leggermente spoiler o risposte di quiz con uno scorrimento banale della tastiera e necessitano del percorso inverso senza installare una libreria specifica del linguaggio. Se Le serve la rotazione alfabetica classica di Cesare, chiavi polialfabetiche Vigenère, codifica Base64 o crittografia autenticata forte, le tratti come intenzioni di ricerca e landing page separate invece di sovraccaricare questa pagina di tasti adiacenti QWERTY.
Casi d'uso
Demo di adiacenza QWERTY in classe
Critti e decritti parole di esempio con un offset intero noto così gli studenti vedono i vicini di tastiera sulla stessa riga invece della matematica alfabetica.
Puzzle e CTF con shift di tastiera
Applichi o inverta uno scorrimento fisso di tasti adiacenti su stringhe di sfida senza scrivere uno script monouso per ogni set di problemi.
Domande frequenti
Cos’è un cifrario a scorrimento di tastiera?
Una sostituzione che sposta ogni lettera su un tasto vicino su una riga QWERTY di un offset intero fisso, invece di ruotare lungo l’alfabeto come Cesare.
Come decritto il testo?
Imposti mode su decrypt con lo stesso offset intero usato per crittare. Ciò sposta ogni lettera a sinistra sulla sua riga e recupera l’originale quando c’erano solo lettere e spazi.
Lo shift si avvolge a fine riga?
Sì. Il movimento è modulare nella stessa riga QWERTY, quindi P con offset uno diventa Q, e L con offset uno diventa A.
Quanto costa?
Lo strumento del browser è gratuito e gira in locale.
Le maiuscole e gli spazi vengono mantenuti?
Sì. Ogni lettera resta maiuscola o minuscola, quindi una H maiuscola con spostamento di uno diventa J e una h minuscola diventa j. Gli spazi vengono copiati senza modifiche e una frase di più parole mantiene la sua forma.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
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)Esempio di richiesta
{
"text": "hello",
"offset": 1
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.keyboard_shift",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Solo le lettere latine dalla A alla Z vengono spostate, il caso è preservato, gli spazi restano e qualsiasi cifra, punteggiatura o altro simbolo viene respinto come tasto non supportato con un errore invalid_input chiaro.
Come uno shift QWERTY sposta le lettere
Poiché ogni passo è aritmetica intera con una tabella di layout fissa, il cifrario è del tutto deterministico: testo, offset e modalità identici producono sempre lo stesso JSON.
Cosa invia e cosa riceve
Quando mode è omesso, encrypt è il valore predefinito così un payload minimo resta utile. In caso di successo la risposta riecheggia mode, il text originale, l’offset intero fornito, la stringa result trasformata, length di quel risultato, letters_shifted come conteggio dei caratteri alfabetici spostati, più le etichette layout, rows e cipher per i client che affermano il profilo raggiunto. Text assente, offset assente, oggetti non stringa per text, valori di mode non supportati, stringhe più lunghe del massimo documentato, offset non interi inclusi valori in virgola come uno punto cinque, e qualsiasi carattere che non sia lettera latina o spazio — punteggiatura, cifre, simboli — falliscono con invalid_input e un messaggio chiaro in inglese che nomina il tasto non supportato quando rilevante. Il prezzo delle chiamate API riuscite è la base pubblicata di $0.002 per elemento.
Dove i cifrari a tastiera compaiono nel lavoro reale
Poiché questa capacità è un motore di parse puro, il prezzo dell’API è la base pubblicata di $0.002 per elemento riuscito e una validazione fallita non consuma il saldo.
Casi di integrazione
Offuscamento leggero di spoiler
Faccia scorrere di lato risposte di quiz o etichette su QWERTY e le decritti dopo con lo stesso contratto nel browser o nell’API.
Domande tecniche
Cosa conta come tasto non supportato?
Qualsiasi carattere che non sia una lettera latina A–Z/a–z né uno spazio — cifre, punteggiatura, emoji e lettere accentate falliscono con invalid_input e non vengono addebitati.