Cifrario ADFGVX
Cifri o decifri con il cifrario da campo tedesco sei per sei che accetta lettere e cifre: ATTACKAT1200, con chiave del quadrato PRIVACY e chiave di trasposizione GERMAN, diventa GFVVVVVVAAAVGXGFGFGFGAGV. Con le stesse due chiavi torna in chiaro. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Testo
- ATTACKAT1200
- Chiave del quadrato
- PRIVACY
- Key
- GERMAN
- Modalità di calcolo
- Encrypt
- Risultato
- GFVVVVVVAAAVGXGFGFGFGAGV
- Input
- ATTACKAT1200
- Griglia della chiave usata
- PRIVACY
- Normalizzato
- ATTACKAT1200
Il cifrario ADFGVX è il cifrario da campo tedesco sei per sei che frazionava i messaggi tramite un quadrato di tipo Polibio con chiave e poi rimescolava il flusso di etichette con una seconda parola di trasposizione. A differenza di una semplice sostituzione o di una trasposizione colonnare pura, ADFGVX combina entrambe le fasi in modo che ogni lettera o cifra del testo in chiaro diventi una coppia di etichette dell'insieme A, D, F, G, V e X prima di essere scritte in una griglia e lette nell'ordine della chiave. Questa capacità accetta una parola chiave del quadrato, una chiave di trasposizione, il testo da proteggere o recuperare e una modalità di cifratura o decifratura.
Come funzionano il quadrato 6×6 e il frazionamento
ADFGVX inizia trasformando la parola chiave del quadrato in una matrice sei per sei sui trentasei simboli formati dalle lettere latine dalla A alla Z e dalle cifre decimali da zero a nove. Lettere e cifre della parola chiave del quadrato vengono scritte da sinistra a destra e dall'alto in basso, saltando i duplicati e portando le lettere in maiuscolo; i simboli rimanenti dell'alfabeto e dell'insieme delle cifre riempiono il resto della griglia in ordine naturale.
Righe e colonne sono etichettate con le sei lettere amiche del Morse A, D, F, G, V e X anziché con le cifre da uno a sei. In cifratura, il testo in chiaro si riduce ai soli alfanumerici maiuscoli e ogni simbolo è sostituito dalle due etichette della sua cella —etichetta di riga prima, poi di colonna—, producendo un flusso continuo lungo il doppio del messaggio normalizzato. Quel flusso frazionato è l'ingresso della seconda fase.
In decifratura, dopo l'inversione della trasposizione, ogni coppia consecutiva di etichette ADFGVX viene cercata nello stesso quadrato per recuperare una lettera o una cifra.
Consigli pratici, limiti e ricerche correlate
Scelga una parola chiave del quadrato con diverse lettere distinte e cifre opzionali affinché la matrice non sia quasi alfabetica; parole brevi e memorabili funzionano ancora per le demo, ma frasi più lunghe con simboli unici rimescolano di più il quadrato. Scelga una chiave di trasposizione con lettere miste affinché l'ordine delle colonne non sia l'identità da sinistra a destra; le lettere ripetute sono ammesse e spareggiano per posizione.
Ricordi che spazi, punteggiatura e altri non alfanumerici vengono rimossi prima della cifratura, così i numeri di telefono conservano le cifre ma perdono i separatori, e le etichette miste perdono la punteggiatura nel flusso di simboli —li segmenti o li codifichi a parte se le serve dopo—. Per decifrare, fornisca un flusso di crittogramma solo ADFGVX di lunghezza pari dopo la normalizzazione; se una scheda stampata ha ancora spazi, il risolutore ignora i caratteri che non sono etichette.
I controlli andata e ritorno sono il miglior test di sanità: cifri una frase con cifre, decifri il risultato con le stesse due chiavi e confronti con il testo alfanumerico normalizzato. Questa pagina si rivolge a chi cerca un cifrario ADFGVX, un cifrante ADFGVX o uno strumento di trasposizione frazionante sei per sei online; non è AES, non è un caveau moderno di password, non è Playfair, non è Polibio semplice e non è sola trasposizione colonnare.
Preferisca questa capacità quando Le serve crittografia classica ADFGVX 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 challenge verificano i passi di cifratura e decifratura ADFGVX per chiavi di quadrato e trasposizione pubblicate senza mantenere uno script offline separato.
Demo di cripto storica
Musei e demo di blog mostrano come i cifrari frazionanti della Prima guerra mondiale differiscano dalla sostituzione monoalfabetica cifrando dal vivo frasi di visitatori con orari o numeri di unità.
Domande frequenti
Che cos'è il cifrario ADFGVX?
Un cifrario da campo tedesco classico: ogni lettera o cifra si mappa su una coppia di etichette A/D/F/G/V/X tramite un quadrato 6×6 a parola chiave; poi il flusso di etichette viene riordinato con una chiave di trasposizione colonnare.
Perché sei etichette A, D, F, G, V, X?
Quelle sei lettere hanno pattern Morse distinti, il che ridusse gli errori di trasmissione sul campo quando gli operatori inviavano il crittogramma frazionato per telegrafia senza fili.
Cosa succede se una chiave manca o è vuota?
Sia la parola del quadrato sia quella di trasposizione sono obbligatorie e non vuote (quella del quadrato richiede almeno un carattere A–Z o 0–9).
ADFGVX supporta le cifre?
Sì. Il quadrato 6×6 ospita ventisei lettere e dieci cifre, così messaggi come ATTACKAT1200 possono essere cifrati senza rimuovere le cifre dell'orario.
Il cifrario ADFGVX è gratis?
Lo strumento del 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/adfgvx \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"ATTACKAT1200","square_key":"PRIVACY","key":"GERMAN"}'const res = await fetch("https://api.kit.forhosting.com/enc/adfgvx", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "ATTACKAT1200",
"square_key": "PRIVACY",
"key": "GERMAN"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/adfgvx",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "ATTACKAT1200",
"square_key": "PRIVACY",
"key": "GERMAN"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/adfgvx", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"ATTACKAT1200","square_key":"PRIVACY","key":"GERMAN"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"ATTACKAT1200","square_key":"PRIVACY","key":"GERMAN"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/adfgvx", 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": "ATTACKAT1200",
"square_key": "PRIVACY",
"key": "GERMAN"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.adfgvx",
"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
Segnala chiavi assenti o vuote con un errore invalid_input chiaro affinché un modulo vuoto non produca mai in silenzio una trasformazione identità priva di senso. Il percorso è aritmetica di lettere pura e deterministica —senza rete, senza semi casuali, senza dipendenza dall'orologio— così che l'esecutore gratuito del browser e l'API prepagata restituiscano lo stesso JSON, compreso il quadrato, il flusso frazionato e l'ordine delle colonne, ogni volta che Lei la invoca per la didattica, write-up CTF o esercizi di cifrario storico.
Come funzionano la chiave di trasposizione, i campi API e la risposta
Dopo il frazionamento, il flusso di etichette viene scritto per righe in una griglia la cui larghezza è pari alla lunghezza della chiave di trasposizione. Le colonne vengono poi lette nell'ordine ottenuto ordinando i caratteri della chiave in ordine Unicode, usando l'indice originale da sinistra a destra come spareggio stabile quando la stessa lettera si ripete. La decifratura inverte quel passo: le etichette del crittogramma riempiono le colonne nell'ordine della chiave secondo l'altezza di ciascuna colonna per la lunghezza del flusso, poi la griglia si legge da sinistra a destra e dall'alto in basso. Il testo deve produrre simboli utilizzabili dopo la normalizzazione —lettere o cifre in cifratura, etichette ADFGVX in decifratura—. Invii un corpo JSON con tre campi stringa obbligatori —text, square_key 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; square_key accetta anche square_keyword, polybius_key, keyword e square; key accetta transposition_key, column_key, tkey e colkey; mode accetta operation, op, direction e action, e riconosce sinonimi comuni come encode o decode. Qualsiasi chiave assente o vuota è invalid_input e non viene mai addebitata. In caso di successo la risposta ecoa il testo e le chiavi originali, riporta square_key_used come i simboli distinti della parola del quadrato in ordine di riempimento, mode come encrypt o decrypt, i flussi intermedi normalized e fractionated, result e text come le etichette del crittogramma o i simboli recuperati, square come le sei righe di sei celle, labels come l'insieme fisso ADFGVX, column_order come la permutazione degli indici di colonna, length e fractionated_length, formula come una breve regola mnemonica e message come un riepilogo in una riga. Il prezzo è un fisso $0.002 per richiesta riuscita con unità item.
Consigli pratici, limiti e ricerche correlate
Mantenga i payload sotto il massimo pubblicato di centomila caratteri per limitare la memoria del Worker. Nell'insegnamento, abbini esempi: una parola classica del quadrato come PRIVACY con trasposizione GERMAN su un messaggio misto mostra il frazionamento e il riordino delle colonne; una breve demo CODE42 mostra le celle di cifre; e una chiave di trasposizione vuota dimostra il percorso rigido invalid_input che segnala la chiave assente. Le attività fallite che restituiscono invalid_input non consumano il saldo prepagato, il che mantiene economici gli script esplorativi quando i client provano chiavi vuote.
Casi di integrazione
Laboratori di cifrario classico in aula
Gli studenti costruiscono a mano un quadrato ADFGVX 6×6, frazionano un breve messaggio misto lettere-cifre, applicano la chiave di trasposizione e confrontano etichette e flusso finale con il risultato deterministico dell'API.