Cifrario XOR
Combina il suo testo con una chiave ripetuta tramite XOR e mostra il risultato in esadecimale: «Hello» con la chiave «key» diventa 230015070a, e la stessa chiave lo riporta a testo. Pensato per enigmi, allenamenti CTF e lezioni, non per proteggere segreti. 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
- Chiave
- key
- Modalità di calcolo
- Encrypt
- Risultato
- 230015070a
- Lunghezza della chiave
- 3
- Byte
- 5
Il cifrario XOR è un cifrario a flusso classico a chiave ripetuta che combina ogni byte di dati con un byte della chiave tramite l'operazione or-esclusivo. Poiché XOR è la propria inversa, la stessa chiave che mescola un messaggio lo ripristina quando viene applicata di nuovo. La modalità decrypt accetta quell'hex, riapplica il flusso di chiave e restituisce testo UTF-8 quando la chiave corrisponde. Si usa il XOR a chiave ripetuta per riscaldamenti CTF, dimostrazioni in aula di cifrari a flusso, libri di enigmi e offuscamento leggero quando la crittografia autenticata moderna sarebbe eccessiva.
Regole di validazione, chiavi vuote ed errori comuni
Le stringhe di mode non valide al di fuori di encrypt, decrypt, encode e decode falliscono allo stesso modo. Non tratti l'output come crittografia per la riservatezza: il XOR a chiave ripetuta è vulnerabile ad attacchi a testo noto, crib dragging e analisi delle frequenze quando la chiave è corta rispetto al messaggio, e la pagina del prodotto non deve mai presentare questo strumento come controllo di sicurezza per password, token o dati personali.
Preferisca questa pagina quando l'intento di ricerca è cifrario xor, XOR a chiave ripetuta o cifra decifra XOR in hex; Atbash e ROT13 rispondono alla sostituzione fissa d'alfabeto, la trasposizione a steccato risponde alla trasposizione, Base64 e hex-text rispondono alla codifica senza chiave, quindi restano strumenti separati. Quando decifra, usi esattamente la stessa stringa di chiave che ha prodotto il testo cifrato; una chiave sbagliata fallisce la validazione UTF-8 o produce geroglifici che non corrisponderanno al testo in chiaro originale.
Usi in aula e limiti pratici
Chiami il cifrario XOR gratuito nel browser per verificare compiti, slide di lezioni, pratica CTF ed esecuzioni occasionali di cifratura o decifratura senza scrivere un ciclo di flusso di chiave in ogni linguaggio. Un tipico flusso d'aula mostra che una chiave di un byte è un semplice flusso in stile Cesare sui byte, poi allunga la chiave e dimostra che la lunghezza del testo cifrato eguaglia quella del testo in chiaro in byte mentre l'hex raddoppia il conteggio dei caratteri.
I playbook di supporto possono invertire annotazioni leggermente offuscate che il personale ha scritto con una chiave condivisa nota. I siti di enigmi possono precalcolare risposte hex per la visualizzazione e rivelarle su richiesta con mode decrypt. Lo abbini a librerie crittografiche moderne solo quando un passo successivo richiede crittografia autenticata — tenga XOR sulla propria pagina così che l'intento SEO resti centrato sull'or-esclusivo classico a chiave ripetuta.
Casi d'uso
Riscaldamenti XOR per CTF ed enigmi
Nasconda brevi flag o indizi sotto una chiave ripetuta nota, pubblichi l'hex e poi decifri con la stessa chiave quando i partecipanti hanno bisogno della rivelazione senza installare librerie crittografiche.
Domande frequenti
Come cifro il testo con il cifrario XOR?
Il campo result della risposta contiene il testo cifrato esadecimale in minuscolo.
Come decifro un testo cifrato XOR in hex?
Invii la stringa hex come text, la stessa chiave usata per cifrare e mode decrypt (o decode). Il risultato è il testo in chiaro UTF-8 ricostruito quando la chiave corrisponde.
Cosa succede se la chiave è vuota?
Una chiave non vuota è richiesta affinché il flusso di chiave ripetuta sia ben definito.
Il cifrario XOR è gratuito?
Lo strumento del browser funziona gratis sul suo dispositivo.
Il XOR a chiave ripetuta è una crittografia sicura?
No. È un cifrario classico didattico e ludico, non riservatezza per segreti. Non lo usi mai per password o dati sensibili di produzione; usi invece la crittografia autenticata moderna.
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/xor \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello","key":"key"}'const res = await fetch("https://api.kit.forhosting.com/enc/xor", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello",
"key": "key"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/xor",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello",
"key": "key"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/xor", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello","key":"key"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello","key":"key"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/xor", 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",
"key": "key"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.xor",
"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
Questa capacità codifica il testo in chiaro come UTF-8, fa scorrere i byte della chiave sul payload e presenta il testo cifrato come esadecimale compatto in minuscolo così che i risultati binari restino copiabili. Inserisca testo non vuoto, una chiave non vuota e una modalità encrypt o decrypt opzionale; le chiavi vuote falliscono con invalid_input.
Come funziona il XOR a chiave ripetuta e cosa contiene la risposta
La cifratura converte prima il suo messaggio in byte UTF-8 così che i caratteri multibyte siano trattati allo stesso modo in ogni isolate. Anche la stringa della chiave è codificata in UTF-8; quei byte di chiave formano un flusso che riparte dall'inizio ogni volta che il messaggio è più lungo della chiave. Ogni byte di dati subisce l'or-esclusivo con il byte di chiave alla posizione indice modulo lunghezza della chiave, producendo un testo cifrato binario di uguale lunghezza. La decifratura inverte la presentazione: il campo text deve essere esadecimale (spazi, due punti, trattini o prefissi 0x opzionali vengono rimossi), si applica lo stesso flusso di chiave e i byte risultanti sono decodificati come testo UTF-8. I valori di mode accettati sono encrypt, encode, decrypt e decode; encode corrisponde a encrypt e decode a decrypt. Invii JSON con il campo stringa obbligatorio text impostato al messaggio in chiaro o al testo cifrato hex, il campo stringa obbligatorio key con qualsiasi passphrase non vuota, e mode opzionale che di default è encrypt. Gli alias input, value, s, message e ciphertext funzionano per il body; password, secret, k e passphrase sono alias della chiave; op, action e direction sono alias di mode. In caso di successo la risposta include result con la stringa hex o in chiaro, mode normalizzato a encrypt o decrypt, key_length uguale alla lunghezza in byte UTF-8 della chiave, bytes uguale al numero di byte di dati elaborati, e method uguale a xor così che i client possano diramare senza annusare le forme. Input identici producono sempre JSON identico perché il percorso è pura aritmetica su byte, senza rete, senza seme casuale e senza orologio.
Regole di validazione, chiavi vuote ed errori comuni
Un text mancante, non stringa o una stringa vuota sollevano invalid_input e non vengono addebitati sull'API prepagata dopo che il motore rifiuta la richiesta. Una key mancante, non stringa o una chiave vuota falliscono anch'esse con invalid_input; la promessa del prodotto è un vero flusso di chiave ripetuta, e zero byte di chiave lascerebbero i dati invariati o indefiniti come cifrario. In modalità decrypt, hex di lunghezza dispari dopo la rimozione dei separatori, caratteri non esadecimali o byte decifrati che non sono UTF-8 valido sollevano ugualmente invalid_input, così che i client non ricevano mai stringhe corrotte in silenzio.
Uso dell'API, prezzi, flussi in aula e limiti pratici
Usi l'API prepagata KIT quando un backend, una funzione serverless, una piattaforma di tutoring o un SDK ha bisogno di un contratto stabile con saldo a $0.002 per elemento riuscito; i fallimenti di validazione non consumano mai saldo dopo il rifiuto. Gli autori che pubblicano SDK possono mappare il campo result direttamente su un pulsante di copia mentre mode, key_length, bytes e method rendono gli esempi OpenAPI autoesplicativi. Mantenga i payload a dimensioni testuali ordinarie, adatte a una chiamata di elemento in un isolate di Worker; questo strumento è per messaggi e frammenti, non per blob binari di diversi megabyte.
Casi di integrazione
Dimostrazioni di cifrario a flusso in aula
Gli insegnanti mostrano che XOR è la propria inversa, confrontano il testo cifrato hex con il testo in chiaro e fissano Hello con la chiave key come fixture da manuale che gli studenti possono ricalcolare a mano.
Fixture per pipeline e CI
Script e test di integrazione continua fissano output hex XOR deterministici e l'errore di chiave vuota così che bug accidentali nel flusso di chiave o nella formattazione hex falliscano subito.