Carré de Polybe
HELLO devient 2315313134 avec le carré de Polybe : chaque lettre est remplacée par la ligne et la colonne de sa case dans une grille de cinq sur cinq, I et J partageant la case 24. Déchiffrez les chiffres 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
- HELLO
- Mode de calcul
- Encrypt
- Résultat
- 2315313134
- Longueur
- 10
- Lettres mappées
- 5
- Paires
- 5
Le carré de Polybe est un chiffrement classique par substitution qui place les vingt-cinq lettres latines sur une grille cinq par cinq et encode chaque lettre par les deux chiffres de sa ligne et de sa colonne. Dans la forme pédagogique utilisée ici, I et J partagent une case pour que l'alphabet entier tienne ; chiffrer HELLO produit le flux de chiffres 2315313134, et le déchiffrer restaure HELLO. Vous collez du texte en clair ou une chaîne de chiffres, choisissez chiffrer ou déchiffrer, et recevez un résultat déterministe avec des comptes de paires et les métadonnées du carré. Les non-lettres sont ignorées au chiffrement pour que le cryptogramme ne contienne que des paires de chiffres ; au déchiffrement, les caractères non numériques sont ignorés pendant que les chiffres sont collectés.
Comment le carré de Polybe mappe les lettres en paires de chiffres
Un carré de Polybe classique est un tableau cinq par cinq dont les lignes et colonnes sont numérotées de un à cinq. Les vingt-six lettres latines ne tiennent pas une à une, aussi la convention pédagogique fusionne I et J en une seule case—ici la case vingt-quatre—laissant vingt-cinq positions pour A à Z. En lisant de gauche à droite et de haut en bas, A vaut onze, B douze, C treize, D quatorze, E quinze, F vingt et un, et ainsi de suite jusqu'à Z à cinquante-cinq.
Le chiffrement parcourt l'entrée une fois : chaque lettre latine, sans tenir compte de la casse, est remplacée par son code à deux chiffres ligne-colonne et ajoutée à une chaîne continue de chiffres ; espaces, ponctuation, chiffres déjà présents dans le clair et autres non-lettres sont ignorés pour que le résultat ne contienne que des paires valides. Le déchiffrement inverse le processus : tout caractère qui est un chiffre décimal est collecté dans l'ordre, puis les caractères sont consommés deux par deux comme ligne et colonne.
Si une paire utilise un chiffre hors de un à cinq, ou n'apparaît pas sur le carré classique, la requête échoue aussi plutôt que d'inventer une lettre. La case vingt-quatre se déchiffre toujours en I ; J n'a jamais été une case séparée sur ce carré. Le chemin n'utilise ni réseau, ni Date, ni aléatoire.
Cette page n'implémente que le carré de Polybe classique cinq par cinq avec I/J combinés, pas une grille alphanumérique six par six, ni ADFGVX, ni une cryptanalyse automatique de carrés inconnus.
Ce que vous envoyez et ce que vous recevez
Envoyez un champ chaîne obligatoire nommé text et un champ optionnel mode à encrypt ou decrypt. Lorsque mode est omis, encrypt est la valeur par défaut pour qu'une charge minimale reste utile. Le mode encrypt mappe les lettres en paires de chiffres continues ; decrypt mappe les paires de chiffres en lettres majuscules.
Les échecs de validation ne consomment pas le solde prépayé. Contrôles classiques : chiffrer HELLO en 2315313134, déchiffrer ce flux en HELLO, mapper J au même code que I, et confirmer qu'un cryptogramme de cinq chiffres est rejeté plutôt que tronqué en silence.
Où les outils Polybe apparaissent dans le travail réel
Les cours d'introduction à la cryptographie et aux mathématiques discrètes assignent des exercices de Polybe pour que les étudiants pratiquent la substitution par coordonnées avant les chiffrements polyalphabétiques ; un oracle de confiance qui chiffre et déchiffre avec la grille pédagogique cinq par cinq accélère les démonstrations de devoirs et les correcteurs automatiques. Les échauffements capture-the-flag et les chasses aux puzzles cachent encore des messages en paires de chiffres au grand jour, et les solveurs veulent un carré rapide et prévisible plutôt qu'une suite générale de cryptanalyse.
Les équipes support et contenu encodent parfois légèrement des spoilers, réponses de quiz ou étiquettes internes en paires de chiffres et ont besoin du chemin inverse sans installer une bibliothèque crypto spécifique au langage. Si vous avez besoin d'un décalage César, de chiffrements Autokey ou Beaufort par mot-clé, d'un encodage Base32 ou d'une récupération par analyse de fréquences de clés inconnues, traitez-les comme des intentions de recherche et des pages distinctes plutôt que de surcharger cette page classique du carré de Polybe.
Cas d’usage
Démos de classe de substitution par coordonnées
Chiffrez et déchiffrez des mots d'exemple sur le carré fixe 5×5 I/J pour que les leçons d'intro à la crypto partagent un mappage de chiffres de référence.
Défis puzzle et CTF en paires de chiffres
Encodez ou inversez des flux de chiffres Polybe sur des chaînes de défi sans écrire un script ponctuel pour chaque série de problèmes.
Questions fréquentes
Qu'est-ce qu'un chiffrement par carré de Polybe ?
Un chiffrement classique qui place les lettres sur une grille 5×5 et encode chaque lettre par sa ligne et sa colonne à deux chiffres. Cet outil utilise le carré pédagogique où I et J partagent une case.
Comment déchiffrer une chaîne de chiffres ?
Réglez mode sur decrypt et collez les chiffres (espaces autorisés). Les chiffres sont collectés dans l'ordre et lus par paires.
Pourquoi I et J produisent-ils le même code ?
Le carré classique 5×5 n'a que vingt-cinq cases pour vingt-six lettres, donc I et J partagent la case 24. Déchiffrer 24 renvoie toujours I.
Les espaces et la ponctuation sont-ils chiffrés ?
Non. Au chiffrement, les non-lettres sont ignorées. Au déchiffrement, les caractères non numériques sont ignorés pendant que les chiffres forment les paires.
Quel est le coût ?
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/polybius \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"HELLO"}'const res = await fetch("https://api.kit.forhosting.com/enc/polybius", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "HELLO"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/polybius",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "HELLO"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/polybius", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"HELLO"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"HELLO"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/polybius", 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": "HELLO"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.polybius",
"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
Le déchiffrement rejette immédiatement un nombre impair de chiffres avec une erreur invalid_input claire, car des paires ligne-colonne incomplètes ne peuvent pas correspondre à des lettres.
Comment le carré de Polybe mappe les lettres en paires de chiffres
Si le nombre de chiffres collectés est impair, la requête échoue avec invalid_input en citant la règle du chiffre impair, car un chiffre final isolé ne peut pas adresser une case. Il n'y a pas de mot-clé secret, ni de décalage modulaire de l'alphabet, ni de remplissage aléatoire—seulement une table fixe et ouverte—ainsi un texte et un mode identiques produisent toujours le même JSON.
Ce que vous envoyez et ce que vous recevez
En cas de succès la réponse renvoie mode et le text d'origine, result comme la chaîne transformée, length de ce résultat, letters_mapped et pairs comme le nombre de cases encodées ou décodées, digit_count comme la longueur du flux de chiffres, plus square, ij_combined, alphabet et cipher comme étiquettes de profil. Text manquant, objets non chaîne pour text, valeurs de mode non prises en charge, chaînes plus longues que le maximum documenté, charges decrypt sans chiffres, nombre impair de chiffres et paires hors de la grille classique de un à cinq échouent avec invalid_input et un message clair en anglais. Le prix des appels API réussis est la base publiée de $0.002 par élément.
Où les outils Polybe apparaissent dans le travail réel
Comme cette capacité est un moteur de parse pur, le prix API est la base publiée de $0.002 par élément réussi et une validation échouée ne consomme pas le solde.
Cas d'intégration
Encodage léger d'étiquettes et de spoilers
Transformez des réponses de quiz ou étiquettes internes en paires ligne-colonne et décodez-les ensuite avec le même contrat dans le navigateur ou l'API.