Chiffre à clé courante
Avec le passage It was the best of times pour clé, Attack at dawn devient Impaud hx eeog : chaque lettre est décalée par la lettre suivante d'un long texte qui ne se répète jamais, et les espaces restent en place. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Texte
- Attack at dawn
- Key
- It was the best of times
- Mode de calcul
- encrypt
- Résultat
- Impaud hx eeog
- Encodage
- running_key
- Lettres de la clé
- ITWASTHEBESTOFTIMES
- Longueur de la clé
- 19
Cet outil de chiffre à clé courante chiffre ou déchiffre un texte par une substitution polyalphabétique classique qui utilise un long passage de texte-clé comme flux de clé non répétitif, et non un mot-clé court qui reboucle. Seuls les caractères A–Z se déplacent : l’arithmétique modulaire sur un anneau de vingt-six lettres préserve la casse, et les espaces, chiffres, signes de ponctuation et autres symboles passent sans consommer d’étape de clé.
Ce qu’est le chiffre à clé courante et ce que renvoie cet outil
Le chiffre à clé courante appartient à la famille de Vigenère et remplace un court mot-clé répétitif par un long flux de texte externe — historiquement une page de livre, une colonne de journal ou tout passage convenu. Vous fournissez ce texte-clé ; ses lettres alphabétiques définissent chacune un décalage de César, de zéro pour A à vingt-cinq pour Z.
Les lettres du clair sont transformées dans l’ordre : la première utilise la première lettre de clé, la deuxième la suivante, et ainsi de suite sans rebouclage lorsque le flux s’épuiserait. Le chiffrement ajoute le décalage de clé modulo vingt-six ; le déchiffrement le soustrait avec le même cycle modulaire, de sorte que les deux opérations sont des inverses exactes lorsque le même passage est utilisé.
Les caractères non alphabétiques ne changent jamais et n’avancent jamais l’index de clé, ce qui conserve la lisibilité des espaces et de la ponctuation autour des lettres chiffrées. Cette page applique toujours cette règle de manuel, avec préservation de la casse et un contrôle strict de longueur : le flux de clé doit contenir au moins autant de lettres que le message.
La clé courante en cours et en énigmes
Les développeurs et les enseignants rencontrent le chiffre à clé courante dans les échauffements capture-the-flag, les chapitres de cryptologie classique et les démonstrations qui opposent un passage de livre non répétitif à un court mot-clé qui finit par fuir de la structure sous l’examen de Kasiski. Les équipes frontend peuvent brouiller des phrases d’exemple pour des captures d’écran sans inventer un alphabet sur mesure, puis les récupérer avec decrypt sous le même passage.
Les ingénieurs qualité génèrent des paires déterministes de chiffrement et de déchiffrement pour des tests de contrat, afin qu’un middleware affirmant prendre en charge la clé courante ne puisse pas reboucler silencieusement un court mot-clé. Les organisateurs de concours précalculent des clés de réponse pour des phrases anglaises modestes sans se fier à des jouets web opaques qui changent les règles d’espacement ou forcent une sortie uniquement en majuscules.
Les outils produit et éducation utilisent la transformation lorsqu’un apprenant colle un chiffré et que l’interface doit afficher le clair sous un passage documenté, ou expliquer pourquoi une clé courte a été rejetée. Associez-la à d’autres aides d’encodage classique pour constituer un petit laboratoire d’outils texte gratuits et déterministes, et ne traitez jamais la clé courante comme un substitut du chiffrement moderne authentifié.
Cas d’usage
Pratique CTF et chiffre classique
Chiffrez et déchiffrez des messages avec un long flux de texte-clé pour des puzzles, des cours et des échauffements capture-the-flag qui enseignent le Vigenère non répétitif.
Leçons d’histoire de la cryptographie
Montrez l’usage d’un passage de livre comme clé, les transformations qui préservent la casse, et pourquoi une clé trop courte doit échouer au lieu de reboucler comme le Vigenère à mot-clé.
Questions fréquentes
Combien coûte l’outil de chiffre à clé courante ?
Il est gratuit dans votre navigateur, sur cette page.
Comment déchiffrer un message à clé courante ?
Envoyez le chiffré comme text, le même passage de texte-clé comme key, et définissez mode sur decrypt (ou dec, decode, d). Le chiffrement est le défaut lorsque mode est omis.
En quoi cela diffère-t-il du Vigenère à mot-clé ?
Le Vigenère classique reboucle indéfiniment un court mot-clé. La clé courante ne reboucle jamais : chaque lettre de clé est utilisée une fois depuis un long passage, et une clé insuffisante est une erreur.
La clé courante est-elle sûre pour de vrais secrets ?
Non. C’est un chiffre classique d’enseignement. Utilisez un chiffrement moderne authentifié tel que AES-GCM pour une vraie confidentialité.
Les espaces et la ponctuation consomment-ils des lettres de la clé ?
Non. Dans le message, espaces, chiffres et signes passent sans changement et ne font pas avancer la clé. Dans le passage servant de clé, seules les lettres comptent : ses virgules et ses espaces sont ignorés.
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/running-key \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Attack at dawn","key":"It was the best of times"}'const res = await fetch("https://api.kit.forhosting.com/enc/running-key", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Attack at dawn",
"key": "It was the best of times"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/running-key",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Attack at dawn",
"key": "It was the best of times"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/running-key", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Attack at dawn","key":"It was the best of times"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Attack at dawn","key":"It was the best of times"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/running-key", 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": "Attack at dawn",
"key": "It was the best of times"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.running_key",
"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
Chaque lettre alphabétique du message est décalée par la lettre suivante du passage de clé, de sorte que la même lettre en clair peut correspondre à des lettres chiffrées différentes selon la position, tandis que la clé ne revient jamais au début. Si le passage de clé contient moins de lettres que le message, le moteur signale que la clé est trop courte au lieu de reboucler silencieusement comme le Vigenère ordinaire. Utilisez-le gratuitement dans le navigateur pour des échauffements CTF, des leçons d’histoire de la cryptographie et des démonstrations de type chiffre de livre, ou appelez l’API à $0.002 par requête réussie lorsque des pipelines ont besoin de transformations à clé courante reproductibles.
Ce qu’est le chiffre à clé courante et ce que renvoie cet outil
La réponse JSON inclut result pour la chaîne transformée, encoding fixé à running_key, mode à encrypt ou decrypt, key_letters avec le flux normalisé en majuscules extrait de votre passage, key_length de ce flux, key_used et key_used_length du préfixe réellement consommé, message_letters, input_length et output_length qui correspondent car la transformation préserve la longueur, shifted_chars comptant combien de lettres ont bougé, et une chaîne formula qui reformule le mappage modulaire et la règle de non-rebouclage pour la documentation et les tests. Il n’existe pas de repli silencieux vers le Vigenère à mot-clé ni vers Autokey : soit la clé est assez longue et la transformation s’exécute, soit la requête échoue avec invalid_input. Si vous avez besoin d’AES, du Vigenère classique à mot-clé répétitif, d’Autokey ou de Base64, utilisez ces endpoints dédiés ; cette page ne répond qu’au contrat classique de clé courante déjà décrit par les chapitres d’histoire de la crypto et les échauffements CTF.
Comment text, key et mode sont lus et comment les clés trop courtes sont rejetées
Si après ce filtre aucune lettre ne reste, le moteur rejette la requête. Chaque lettre est traitée avec la carte modulaire fixe et l’index de clé n’avance que sur les lettres et uniquement vers l’avant, de sorte que chiffrer puis déchiffrer avec le même passage restaure toujours la charge d’origine lorsque la clé était assez longue. Les champs de charge utiles préférés sont text pour le message, key pour le passage de texte-clé, et mode facultatif pour encrypt ou decrypt. Text accepte des alias tels que input, value, s, message, plaintext et ciphertext afin que formulaires et clients SDK réutilisent des noms de colonnes existants. Key accepte key_text, keytext, passage, book, keyword et k ; seuls les caractères alphabétiques de la clé sont conservés et mis en majuscules dans key_letters, tandis que chiffres et symboles du passage sont ignorés. Mode vaut encrypt par défaut s’il est omis et accepte aussi des alias courts tels que enc, encode, e pour encrypt et dec, decode, d pour decrypt ; toute autre chaîne échoue à la validation. Texte manquant, texte vide, types non chaîne et modes inconnus lèvent invalid_input, afin qu’un formulaire vide ne ressemble pas à un no-op réussi. Après l’analyse, le moteur compte les lettres du message et compare ce nombre à key_length. Lorsque la clé est trop courte, la réponse est invalid_input avec un message explicite qui nomme les deux comptes et demande un texte-clé plus long — exactement le mode d’échec que cette capacité doit signaler, et non un rebouclage silencieux qui réintroduirait le comportement du Vigenère à mot-clé. Associez l’exécution gratuite dans le navigateur de cette page à l’API payante lorsque vous avez besoin du même résultat mathématique dans un pipeline automatisé, sans réimplémenter vous-même le flux non rebouclé. Les entrées invalides renvoient invalid_input et ne sont pas facturées, ce qui garde la validation bon marché tandis que les transformations réussies restent à un prix fixe par élément.
Où la clé courante s’inscrit dans les leçons, puzzles et fixtures de test
Les services backend encodent de courtes chaînes de défi pour des API de puzzles ou des bacs à sable pédagogiques où les étudiants doivent fournir un texte-clé assez long pour débloquer l’étape suivante. Sur cette page le travail s’exécute entièrement dans votre navigateur ; via l’API chaque consultation réussie coûte $0.002, l’échec de validation n’est pas facturé et rien n’est stocké après la réponse. Cette répartition — exploration interactive gratuite et API payante identique — correspond au reste du catalogue tier A du KIT et vous permet de passer d’une démo de cours à un pipeline automatisé sans changer le résultat transformé.
Cas d'intégration
Fixtures déterministes d’intégration continue
Générez des paires reproductibles de chiffré et de clair à clé courante pour tests unitaires, fichiers golden et contrôles de contrat, y compris les cas de clé trop courte.
Questions techniques
Que se passe-t-il si la clé est trop courte ?
La requête échoue avec invalid_input. Le passage de clé courante doit contenir au moins autant de lettres A–Z que le message ; les clés plus courtes sont rejetées avec un message clair de clé trop courte.