Chiffre Playfair
Avec le mot-clé MONARCHY, INSTRUMENTS devient GATLMZCLRQXA : les lettres sont groupées par paires, un X complète la fin impaire et chaque paire change dans un carré de cinq sur cinq. Déchiffrez avec le même mot-clé pour retrouver les lettres. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Texte
- INSTRUMENTS
- Clé
- MONARCHY
- Mode de calcul
- Encrypt
- Résultat
- GATLMZCLRQXA
- Entrée
- INSTRUMENTS
- Clé utilisée
- MONARCHY
- Normalisé
- INSTRUMENTS
Le chiffre Playfair est un système classique de substitution par digrammes inventé pour un usage de terrain bien avant la cryptographie moderne : au lieu de mapper une lettre à la fois, il travaille sur des paires de lettres tirées d'un carré cinq par cinq que vous construisez à partir d'un mot-clé secret. Saisissez tout mot-clé non vide, le texte à protéger ou à récupérer, et un mode encrypt ou decrypt ; l'outil normalise les lettres, fusionne J en I pour tenir dans la grille de vingt-cinq cases, insère le rembourrage X traditionnel entre lettres répétées et en fin de messages de longueur impaire, puis applique les trois règles Playfair — décalage dans une ligne, décalage dans une colonne, ou les deux autres coins du rectangle formé par ces deux lettres.
Fonctionnement du carré de clé et des règles de digramme
Playfair commence par transformer votre mot-clé en une matrice cinq par cinq sur l'alphabet latin avec I et J partageant une case, ce qui laisse vingt-cinq symboles distincts. Les lettres du mot-clé sont écrites de gauche à droite et de haut en bas, en sautant les doublons et en traitant chaque J comme I ; les lettres restantes non utilisées de l'alphabet remplissent le reste de la grille dans l'ordre.
Le texte en clair est réduit aux majuscules uniquement, puis empaqueté en digrammes : si une paire potentielle contient deux fois la même lettre, un X est inséré après la première occurrence pour briser la paire, et si le flux final a une longueur impaire un X final est ajouté.
Le chiffrement parcourt chaque paire : lorsque les deux lettres sont sur la même ligne, chacune avance d'une case vers la droite avec rebouclage ; lorsqu'elles sont dans la même colonne, chacune descend d'une case avec rebouclage ; sinon les deux lettres définissent un rectangle et chacune est remplacée par la lettre de la même ligne mais de la colonne de l'autre.
Le déchiffrement inverse les décalages de ligne et de colonne — une case à gauche ou vers le haut — tandis que la règle du rectangle est sa propre inverse.
Conseils pratiques, limites et recherches associées
Choisissez un mot-clé avec plusieurs lettres distinctes pour que le carré ne soit pas presque alphabétique ; de courts mots mémorables suffisent pour les démos, mais de longues phrases à lettres uniques mélangent davantage la matrice. Souvenez-vous que espaces, ponctuation et chiffres sont retirés avant le chiffrement, donc numéros de téléphone ou étiquettes mixtes perdent leurs séparateurs dans le flux de lettres — pré-segmentez-les ou encodez-les à part si vous en avez besoin plus tard.
Pour déchiffrer, fournissez le chiffré lettres seules (longueur paire après normalisation) ; s'il reste des espaces d'une fiche imprimée, le solver les ignore. Les contrôles aller-retour sont le meilleur test de cohérence : chiffrez une phrase, déchiffrez le résultat avec la même clé et comparez au texte normalisé avec rembourrages.
Cette page cible ceux qui cherchent un chiffre Playfair, un chiffreur de digrammes ou un outil de carré de clé en ligne ; ce n'est pas AES, pas un coffre-fort moderne de mots de passe, pas ROT13, et pas un traducteur de code Polybius. Préférez cette capacité lorsque vous avez besoin d'une cryptographie classique de digrammes transparente pour l'éducation ou les puzzles ; pour un vrai secret, 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 Playfair pour un mot-clé publié sans maintenir un script hors ligne séparé.
Démos de crypto historique
Musées et blogs montrent en direct comment les chiffres par digrammes diffèrent de la substitution monoalphabétique en chiffrant des phrases de visiteurs avec une clé partagée.
Questions fréquentes
Qu'est-ce que le chiffre Playfair ?
Un chiffre classique par digrammes : les lettres sont chiffrées par paires avec un carré 5×5 construit à partir d'un mot-clé. Les règles couvrent même ligne, même colonne et rectangle.
Pourquoi I et J sont-elles identiques ?
Une grille 5×5 a vingt-cinq cases pour vingt-six lettres. Le Playfair classique fusionne I et J en une case pour que chaque lettre latine reste mappée.
Que se passe-t-il si la clé est vide ?
Un mot-clé avec au moins une lettre A–Z est requis pour construire le carré.
Comment gère-t-on lettres doubles et longueur impaire ?
Au chiffrement, un X est inséré entre deux lettres identiques qui formeraient une paire, et un X final complète un flux de longueur impaire pour que chaque unité soit un digramme.
Le chiffre Playfair 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/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)Exemple de requête
{
"text": "HIDE THE GOLD",
"key": "MONARCHY"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.playfair",
"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.
Limites
max_chars | 100000 |
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
Les clés vides sont rejetées avec une erreur invalid_input claire afin qu'un champ de formulaire vide ne produise jamais silencieusement une transformation identité sans sens. Le chemin est une arithmétique de lettres purement déterministe — pas de réseau, pas de graines aléatoires, pas de 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é et la liste des digrammes, chaque fois que vous l'appelez pour l'enseignement, des write-ups CTF ou des exercices historiques de chiffrement.
Comment appeler l'API et ce qu'elle renvoie
Le text doit de même produire au moins une lettre après suppression des non-lettres. Envoyez un corps JSON avec deux champs chaîne obligatoires, text 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 ; key accepte aussi keyword, passphrase, secret et k ; mode accepte operation, op, direction et action, et reconnaît des synonymes courants comme encode ou decode. La key doit être non vide et contenir au moins une lettre A–Z après normalisation ; une chaîne vide ou une clé faite uniquement de chiffres et de ponctuation est invalid_input et n'est jamais facturée. En cas de succès la réponse répète le text et la key d'origine, indique key_used comme les lettres distinctes du mot-clé dans l'ordre du carré, mode comme encrypt ou decrypt, normalized comme le flux lettres seules, digraphs comme le tableau des unités de deux lettres traitées, result et text comme le chiffré ou les lettres récupérées, square comme les cinq lignes de cinq lettres, pairs comme le nombre de digrammes, length comme le nombre de caractères de sortie, formula comme une courte mnémotechnique de règles, et message comme un résumé d'une ligne. Le tarif est un forfait $0.002 par requête réussie avec unité item et prix marginal unitaire nul.
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. En enseignement, associez des exemples : un mot-clé classique comme MONARCHY avec une courte phrase montre les déplacements rectangle et ligne ; un mot à lettres doubles démontre le rembourrage X ; et une clé vide démontre le chemin strict invalid_input. Les tâches en échec qui renvoient invalid_input ne consomment pas le solde prépayé, ce qui maintient peu coûteux les scripts exploratoires lorsque les clients testent des clés vides.
Cas d'intégration
Travaux pratiques de chiffre classique
Les élèves construisent à la main un carré de clé, chiffrent une courte phrase, puis comparent digrammes et flux final au résultat déterministe de l'API.