Chiffre ADFGVX
Chiffrez ou déchiffrez avec le chiffre de campagne allemand à six sur six qui accepte lettres et chiffres : ATTACKAT1200, avec la clé de carré PRIVACY et la clé de transposition GERMAN, devient GFVVVVVVAAAVGXGFGFGFGAGV. Les deux mêmes clés le rétablissent. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Texte
- ATTACKAT1200
- Clé du carré
- PRIVACY
- Key
- GERMAN
- Mode de calcul
- Encrypt
- Résultat
- GFVVVVVVAAAVGXGFGFGFGAGV
- Entrée
- ATTACKAT1200
- Grille de clé utilisée
- PRIVACY
- Normalisé
- ATTACKAT1200
Le chiffre ADFGVX est le chiffre de campagne allemand six par six qui fractionnait les messages via un carré de type Polybe à clé, puis brouillait le flux d'étiquettes avec un second mot-clé de transposition. Contrairement à une simple substitution ou à une transposition en colonnes pure, ADFGVX combine les deux étapes de sorte que chaque lettre ou chiffre du clair devient une paire d'étiquettes du jeu A, D, F, G, V et X avant d'être écrites dans une grille et lues dans l'ordre du mot-clé. Cette capacité accepte un mot-clé de carré, une clé de transposition, le texte à protéger ou à récupérer, et un mode chiffrer ou déchiffrer.
Comment fonctionnent le carré 6×6 et le fractionnement
ADFGVX commence en transformant votre mot-clé de carré en une matrice six par six sur les trente-six symboles formés par les lettres latines de A à Z et les chiffres décimaux de zéro à neuf. Les lettres et chiffres du mot-clé de carré sont écrits de gauche à droite et de haut en bas, en ignorant les doublons et en passant les lettres en majuscules ; les symboles restants de l'alphabet et de l'ensemble des chiffres remplissent le reste de la grille dans l'ordre naturel.
Les lignes et colonnes sont étiquetées avec les six lettres favorables au Morse A, D, F, G, V et X plutôt qu'avec les chiffres de un à six. Au chiffrement, le clair est réduit aux seuls alphanumériques majuscules, puis chaque symbole est remplacé par les deux étiquettes de sa cellule —étiquette de ligne d'abord, puis de colonne—, produisant un flux continu deux fois plus long que le message normalisé. Ce flux fractionné est l'entrée de la seconde étape.
Au déchiffrement, après inversion de la transposition, chaque paire consécutive d'étiquettes ADFGVX est recherchée dans le même carré pour récupérer une lettre ou un chiffre.
Conseils pratiques, limites et recherches associées
Choisissez un mot-clé de carré avec plusieurs lettres distinctes et des chiffres optionnels pour que la matrice ne soit pas presque alphabétique ; les mots courts mémorables conviennent encore aux démonstrations, mais des phrases plus longues aux symboles uniques brassent davantage le carré. Choisissez une clé de transposition aux lettres variées pour que l'ordre des colonnes ne soit pas l'identité de gauche à droite ; les lettres répétées sont autorisées et départagent par position.
Rappelez-vous que les espaces, la ponctuation et les autres non alphanumériques sont retirés avant le chiffrement, de sorte que les numéros de téléphone gardent leurs chiffres mais perdent les séparateurs, et que les libellés mixtes perdent la ponctuation dans le flux de symboles —segmentez-les ou codez-les à part si vous en avez besoin ensuite—. Pour déchiffrer, fournissez un flux de chiffré uniquement ADFGVX de longueur paire après normalisation ; si une fiche imprimée a encore des espaces, le solveur ignore les caractères hors étiquettes.
Les contrôles aller-retour sont le meilleur test de cohérence : chiffrez une phrase avec des chiffres, déchiffrez le résultat avec les deux mêmes clés, et comparez au clair alphanumérique normalisé. Cette page vise les personnes qui cherchent un chiffre ADFGVX, un chiffreur ADFGVX ou un outil de transposition fractionnante six par six en ligne ; ce n'est pas AES, pas un coffre-fort de mots de passe moderne, pas Playfair, pas Polybe simple, et pas une transposition en colonnes seule.
Préférez cette capacité lorsque vous avez besoin d'une cryptographie classique ADFGVX transparente pour l'éducation ou les puzzles ; pour un secret réel, utilisez un chiffrement authentifié moderne.
Cas d’usage
Write-ups CTF et puzzles
Les auteurs de défis vérifient les étapes de chiffrement et de déchiffrement ADFGVX pour des clés de carré et de transposition publiées sans maintenir un script hors ligne séparé.
Démos de crypto historique
Musées et démos de blogs montrent comment les chiffres fractionnants de la Première Guerre mondiale diffèrent de la substitution monoalphabétique en chiffrant en direct des phrases de visiteurs avec horaires ou numéros d'unité.
Questions fréquentes
Qu'est-ce que le chiffre ADFGVX ?
Un chiffre de campagne allemand classique : chaque lettre ou chiffre est mappé sur une paire d'étiquettes A/D/F/G/V/X via un carré 6×6 à mot-clé, puis le flux d'étiquettes est réordonné avec une clé de transposition en colonnes.
Pourquoi six étiquettes A, D, F, G, V, X ?
Ces six lettres ont des motifs Morse distincts, ce qui réduisait les erreurs de transmission sur le terrain lorsque les opérateurs envoyaient le chiffré fractionné par télégraphie sans fil.
Que se passe-t-il si une clé est manquante ou vide ?
Le mot-clé de carré et la clé de transposition sont tous deux obligatoires et non vides (le mot-clé de carré exige au moins un caractère A–Z ou 0–9).
ADFGVX prend-il en charge les chiffres ?
Oui. Le carré 6×6 contient vingt-six lettres et dix chiffres, de sorte que des messages comme ATTACKAT1200 peuvent être chiffrés sans retirer les chiffres de l'heure.
Le chiffre ADFGVX est-il gratuit ?
L'outil navigateur est gratuit et s'exécute en local.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre 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)Exemple de requête
{
"text": "ATTACKAT1200",
"square_key": "PRIVACY",
"key": "GERMAN"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.adfgvx",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Elle signale les clés manquantes ou vides par une erreur invalid_input claire afin qu'un formulaire vide ne produise jamais en silence une transformation identité sans sens. Le chemin est une arithmétique de lettres pure et déterministe —sans réseau, sans graines aléatoires, sans dépendance à l'horloge— de sorte que l'exécuteur gratuit du navigateur et l'API prépayée renvoient le même JSON, y compris le carré, le flux fractionné et l'ordre des colonnes, chaque fois que vous l'appelez pour l'enseignement, des write-ups CTF ou des exercices de chiffre historique.
Comment fonctionnent la clé de transposition, les champs de l'API et la réponse
Après le fractionnement, le flux d'étiquettes est écrit ligne par ligne dans une grille dont la largeur égale la longueur de la clé de transposition. Les colonnes sont ensuite lues dans l'ordre obtenu en triant les caractères de la clé en ordre Unicode, en utilisant l'index d'origine de gauche à droite comme départage stable lorsque la même lettre se répète. Le déchiffrement inverse cette étape : les étiquettes du chiffré remplissent les colonnes dans l'ordre du mot-clé selon la hauteur de chaque colonne pour la longueur du flux, puis la grille est lue de gauche à droite et de haut en bas. Le texte doit produire des symboles utilisables après normalisation —lettres ou chiffres au chiffrement, étiquettes ADFGVX au déchiffrement—. Envoyez un corps JSON avec trois champs chaîne obligatoires —text, square_key et key— plus un mode optionnel qui vaut encrypt par défaut s'il est omis. Les alias acceptés pour text incluent input, value, data, message, plaintext et ciphertext ; square_key accepte aussi square_keyword, polybius_key, keyword et square ; key accepte transposition_key, column_key, tkey et colkey ; mode accepte operation, op, direction et action, et reconnaît des synonymes courants comme encode ou decode. Toute clé manquante ou vide est invalid_input et n'est jamais facturée. En cas de succès la réponse renvoie le texte et les clés d'origine, indique square_key_used comme les symboles distincts du mot-clé de carré dans l'ordre de remplissage, mode comme encrypt ou decrypt, les flux intermédiaires normalized et fractionated, result et text comme les étiquettes du chiffré ou les symboles récupérés, square comme les six lignes de six cellules, labels comme l'ensemble fixe ADFGVX, column_order comme la permutation des indices de colonnes, length et fractionated_length, formula comme une brève règle mnémonique, et message comme un résumé en une ligne. Le tarif est un forfait $0.002 par requête réussie avec unité item.
Conseils pratiques, limites et recherches associées
Gardez les charges sous le maximum publié de cent mille caractères pour borner la mémoire du Worker. Pour enseigner, associez des exemples : un mot-clé classique de carré comme PRIVACY avec transposition GERMAN sur un message mixte montre le fractionnement et le réordonnancement des colonnes ; une courte démo CODE42 montre les cellules de chiffres ; et une clé de transposition vide démontre le chemin strict invalid_input qui signale la clé manquante. Les tâches en échec qui renvoient invalid_input ne consomment pas le solde prépayé, ce qui garde les scripts exploratoires peu coûteux lorsque les clients testent des clés vides.
Cas d'intégration
Travaux pratiques de chiffre classique en classe
Les élèves construisent à la main un carré ADFGVX 6×6, fractionnent un court message mixte lettres-chiffres, appliquent la clé de transposition, puis comparent étiquettes et flux final au résultat déterministe de l'API.