Cifrario Playfair
Con la parola chiave MONARCHY, INSTRUMENTS diventa GATLMZCLRQXA: le lettere vengono divise in coppie, una X completa la fine dispari e ogni coppia cambia dentro un quadrato di cinque per cinque. Decifri con la stessa chiave per riavere le lettere. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Testo
- INSTRUMENTS
- Chiave
- MONARCHY
- Modalità di calcolo
- Encrypt
- Risultato
- GATLMZCLRQXA
- Ingresso
- INSTRUMENTS
- Chiave usata
- MONARCHY
- Normalizzato
- INSTRUMENTS
Il cifrario Playfair è un sistema classico di sostituzione a digrafi inventato per uso sul campo molto prima della crittografia moderna: invece di mappare una lettera alla volta, lavora su coppie di lettere prese da un quadrato cinque per cinque che Lei costruisce a partire da una parola chiave segreta. Inserisca una chiave non vuota, il testo da proteggere o recuperare e una modalità encrypt o decrypt; lo strumento normalizza le lettere, unisce J in I per entrare nella griglia di venticinque celle, inserisce il riempitivo X tradizionale tra lettere ripetute e alla fine di messaggi di lunghezza dispari, poi applica le tre regole Playfair: scorrimento nella riga, scorrimento nella colonna, oppure gli altri due angoli del rettangolo formato da quelle due lettere.
Come funzionano il quadrato di chiave e le regole dei digrafi
Playfair inizia trasformando la Sua parola chiave in una matrice cinque per cinque sull'alfabeto latino con I e J che condividono una cella, lasciando venticinque simboli distinti. Le lettere della chiave si scrivono da sinistra a destra e dall'alto in basso, saltando i duplicati e trattando ogni J come I; le lettere rimanenti non usate dell'alfabeto riempiono il resto della griglia in ordine.
Il testo in chiaro si riduce solo a maiuscole e poi si impacca in digrafi: se una coppia potenziale contiene due volte la stessa lettera, si inserisce una X dopo la prima occorrenza per spezzare la coppia, e se il flusso finale ha lunghezza dispari si aggiunge una X finale.
La crittografia scorre ogni coppia: quando entrambe le lettere stanno sulla stessa riga, ciascuna si sposta di una cella a destra con wrap-around; quando stanno nella stessa colonna, ciascuna scende di una cella con wrap-around; altrimenti le due lettere definiscono un rettangolo e ciascuna è sostituita dalla lettera della stessa riga ma della colonna dell'altra. La decrittazione inverte gli scorrimenti di riga e colonna —una cella a sinistra o in alto— mentre la regola del rettangolo è la propria inversa.
Consigli pratici, limiti e ricerche correlate
Scelga una parola chiave con diverse lettere distinte così il quadrato non è quasi alfabetico; parole corte e memorabili bastano per le demo, ma frasi lunghe con lettere uniche mescolano di più la matrice. Ricordi che spazi, punteggiatura e cifre vengono rimossi prima della crittografia, quindi numeri di telefono o etichette miste perdono i separatori nel flusso di lettere —pre-segmenti o codifichi a parte se le serve dopo. Per decrittare, fornisca il cifrato solo lettere (lunghezza pari dopo normalizzazione); se restano spazi da una scheda stampata, il solver li ignora.
I controlli andata e ritorno sono il miglior test di sanità: crittografi una frase, decritti il risultato con la stessa chiave e confronti con il testo normalizzato con riempitivi. Questa pagina intercetta chi cerca un cifrario Playfair, un crittografatore di digrafi o uno strumento di quadrato di chiave online; non è AES, non è una cassaforte moderna di password, non è ROT13 e non è un traduttore di codice a colpi Polybius.
Preferisca questa capacità quando le serve crittografia classica a digrafi trasparente per educazione o puzzle; se le serve segretezza reale, usi un cifrario autenticato moderno.
Casi d'uso
Write-up CTF e puzzle
Gli autori di sfide verificano i passi di crittografia e decrittazione Playfair per una chiave pubblicata senza mantenere uno script offline separato.
Demo di cripto storica
Musei e blog mostrano come i cifrari a digrafi differiscono dalla sostituzione monoalfabetica crittografando dal vivo frasi dei visitatori con una chiave condivisa.
Domande frequenti
Che cos'è il cifrario Playfair?
Un cifrario classico a digrafi: le lettere si crittografano a coppie con un quadrato 5×5 costruito da una parola chiave. Le regole coprono stessa riga, stessa colonna e rettangolo.
Perché I e J sono uguali?
Una griglia 5×5 ha venticinque celle per ventisei lettere. Il Playfair classico unisce I e J in una cella così ogni lettera latina resta mappata.
Cosa succede se la chiave è vuota?
Serve una parola chiave con almeno una lettera A–Z per costruire il quadrato.
Come funzionano lettere doppie e lunghezza dispari?
In crittografia si inserisce una X tra due lettere identiche che formerebbero una coppia, e una X finale completa un flusso di lunghezza dispari così ogni unità è un digrafo.
Il cifrario Playfair è gratuito?
Lo strumento nel browser è gratuito e gira in locale.
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/playfair \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"HIDE THE GOLD","key":"MONARCHY"}'const res = await fetch("https://api.kit.forhosting.com/enc/playfair", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "HIDE THE GOLD",
"key": "MONARCHY"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/playfair",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "HIDE THE GOLD",
"key": "MONARCHY"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/playfair", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"HIDE THE GOLD","key":"MONARCHY"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"HIDE THE GOLD","key":"MONARCHY"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/playfair", 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": "HIDE THE GOLD",
"key": "MONARCHY"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.playfair",
"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.
Limiti
max_chars | 100000 |
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
Le chiavi vuote vengono rifiutate con un errore invalid_input chiaro così un campo modulo vuoto non produce mai in silenzio una trasformazione identità priva di senso. Il percorso è aritmetica di lettere puramente deterministica —niente rete, niente semi casuali, niente dipendenza dall'orologio— così l'esecutore gratuito del browser e l'API prepagata restituiscono lo stesso JSON, compreso il quadrato e l'elenco dei digrafi, ogni volta che lo invoca per didattica, write-up CTF o esercizi storici di cifrario.
Come chiamare l'API e cosa restituisce
Il text deve parimenti produrre almeno una lettera dopo la rimozione dei non-lettere. Invii un corpo JSON con due campi stringa obbligatori, text e key, più un mode opzionale che di default è encrypt se omesso. Gli alias accettati per text includono input, value, data, message, plaintext e ciphertext; key accetta anche keyword, passphrase, secret e k; mode accetta operation, op, direction e action, e riconosce sinonimi comuni come encode o decode. La key deve essere non vuota e contenere almeno una lettera A–Z dopo la normalizzazione; una stringa vuota o una chiave fatta solo di cifre e punteggiatura è invalid_input e non viene mai addebitata. In caso di successo la risposta ripete text e key originali, riporta key_used come le lettere distinte della chiave nell'ordine del quadrato, mode come encrypt o decrypt, normalized come il flusso solo di lettere, digraphs come l'array delle unità di due lettere elaborate, result e text come il cifrato o le lettere recuperate, square come le cinque righe di cinque lettere, pairs come il conteggio dei digrafi, length come il numero di caratteri in uscita, formula come una breve mnemonica delle regole e message come un riepilogo di una riga. Il prezzo è un $0.002 fisso per richiesta riuscita con unità item e prezzo marginale unitario zero.
Consigli pratici, limiti e ricerche correlate
Mantenga i payload sotto il massimo pubblicato di centomila caratteri per limitare la memoria del Worker. In didattica, abbini esempi: una chiave classica come MONARCHY con una frase breve mostra movimenti di rettangolo e riga; una parola a lettere doppie dimostra il riempitivo X; e una chiave vuota dimostra il percorso duro invalid_input. Le attività fallite che restituiscono invalid_input non consumano saldo prepagato, il che mantiene economici gli script esplorativi quando i client provano chiavi vuote.
Casi di integrazione
Laboratori scolastici di cifrario classico
Gli studenti costruiscono a mano un quadrato di chiave, crittografano una frase breve e confrontano digrafi e flusso finale con il risultato deterministico dell'API.