ForHosting KIT · Outils pour développeurs

Chiffre de livre

Cachez un message dans un passage que vous partagez avec quelqu'un : avec une clé de 13 mots, « quick fox river » devient 2 4 12, et ces nombres redonnent les mêmes mots. Idéal pour les énigmes et les cours. Gratuit dans votre navigateur.

  • Gratuit
  • Fonctionne dans votre navigateur
  • Sans inscription
  • Vos données restent sur votre appareil
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt
Si vous saisissez
Action
Encrypt
Vous obtenez
Résultat
2 4 12
Nombre de mots de la clé
13
Positions
2, 4, 12
Mots
quick, fox, river

Un chiffre de livre dissimule un court message en désignant des mots déjà présents dans un passage partagé, plutôt qu’en inventant un alphabet de substitution. Collez tout texte clé que vous et votre correspondant détenez tous les deux—un paragraphe, un poème ou une page imprimée—puis chiffrez une phrase en une liste de positions de mots à partir de 1, ou déchiffrez ces nombres pour retrouver les mots d’origine. La correspondance ignore la casse, la ponctuation en tête et en fin est retirée lors de la tokenisation, et les mots du message absents de la clé sont listés afin que vous puissiez enrichir le passage ou reformuler le clair. Le moteur est pur et déterministe : la même clé et le même message produisent toujours les mêmes positions, sans appels réseau, graines aléatoires ni horloge.

Comment le chiffre de livre utilise les positions de mots

Les chiffres de livre classiques traitent un texte partagé comme un carnet de codes. Au lieu de remplacer des lettres par d’autres lettres, chaque unité du message secret s’écrit comme un pointeur vers ce texte—le plus souvent un indice de mot compté depuis le début du passage. Cet outil met en œuvre une forme claire et pédagogique de cette idée : le texte clé est découpé sur les espaces, chaque jeton perd sa ponctuation initiale et finale, et la séquence résultante est numérotée à partir de un.

Lors du chiffrement, chaque mot du message est recherché sans tenir compte de la casse contre la première occurrence du même mot dans la liste de la clé, et le chiffré est la liste de ces positions (base 1) séparées par des espaces. Lors du déchiffrement, le champ message est lu comme des entiers séparés par des espaces, des virgules ou des points-virgules ; chaque nombre est résolu vers le mot à cet indice dans la clé.

Comme seule la première correspondance est utilisée, chiffrement et déchiffrement restent non ambigus même si un mot se répète plus loin dans le passage. Les caractères non alphabétiques hors des jetons de mot ne deviennent jamais des positions à eux seuls, de sorte que vous raisonnez toujours sur des mots entiers. Cette construction est volontairement plus faible que la cryptographie moderne et vise l’enseignement, les énigmes récréatives, les échauffements CTF et une obfuscation réversible légère—pas la protection de secrets réels en transit ou au repos.

La fréquence et le contexte fuient encore lorsque la clé est un livre public connu ; traitez le passage partagé comme un secret partagé seulement dans l’esprit d’un tour de salon classique, non comme un canal authentifié.

Histoire de la crypto en classe

Montrez aux élèves comment un passage partagé devient un carnet de codes et comment les indices de mots chiffrent et déchiffrent sans alphabet de substitution de lettres.

Conception d’énigmes et d’escape rooms

Encodez de courts indices sous forme de listes de positions qui ne s’ouvrent que lorsque les joueurs détiennent le même paragraphe ou poème imprimé.

CTF et chiffres de loisir

Générez des défis réversibles de chiffre de livre et signalez les mots de clé manquants pour que les auteurs ajustent le passage avant publication.

Quelles entrées le chiffre de livre exige-t-il ?

Encrypt attend des mots en clair ; decrypt attend des numéros de position en base 1.

Que se passe-t-il si un mot du message n’est pas dans la clé ?

Enrichissez le passage clé ou reformulez le message pour le couvrir.

Que contient une réponse réussie ?

Result regroupe des positions séparées par des espaces au chiffrement et des mots séparés par des espaces au déchiffrement.

Le chiffre de livre est-il déterministe et sûr ?

C’est un chiffre classique de positions pour l’enseignement et les énigmes, pas la sécurité cryptographique moderne.

Que se passe-t-il si un mot apparaît plusieurs fois dans le passage ?

L'outil retient toujours sa première occurrence, si bien que chaque mot n'a qu'une seule position. Le chiffrement et le déchiffrement restent ainsi sans ambiguïté, même si le mot revient plus loin dans le texte.

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.

POSThttps://api.kit.forhosting.com/enc/book-cipher

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é.

curl -X POST https://api.kit.forhosting.com/enc/book-cipher \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"key_text":"The quick brown fox jumps over the lazy dog near the river bank","message":"quick fox river"}'
{
  "key_text": "The quick brown fox jumps over the lazy dog near the river bank",
  "message": "quick fox river"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.book_cipher",
  "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.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Utilisez-le gratuitement dans le navigateur pour des démonstrations en classe et la conception d’énigmes, ou appelez la logique identique via l’API à $0.002 par requête réussie.

Chiffrer, déchiffrer et mots manquants

Au chiffrement, le message est tokenisé en mots comme la clé ; chaque mot est associé à sa première position dans la clé lorsqu’il y figure. Les mots manquants n’interrompent pas un appel de chiffrement réussi : ils sont signalés pour que l’auteur puisse enrichir le passage clé ou retirer un vocabulaire rare sans deviner quel jeton a échoué. Le déchiffrement n’invente jamais de vocabulaire manquant : chaque nombre mappe vers un mot de la clé ou rejette la requête. Un aller-retour chiffrement puis déchiffrement avec la même clé restaure les formes de surface de la clé pour chaque mot présent, qui peuvent différer en capitalisation du clair d’origine tout en conservant les mêmes entrées de dictionnaire. Envoyez une chaîne key_text obligatoire et une chaîne message obligatoire, et définissez éventuellement action sur encrypt ou decrypt (encrypt est la valeur par défaut). La réponse comprend l’action normalisée, le nombre de mots de la clé, le message d’origine, une chaîne result de positions séparées par des espaces pour chaque mot trouvé, les tableaux parallèles de positions et de formes de surface tirées de la clé, une liste missing_words pour les jetons absents de la clé, et les compteurs words_found et words_total. Au déchiffrement, le message ne doit contenir que des positions entières positives ; un fragment non numérique ou une position supérieure au nombre de mots de la clé échoue immédiatement avec invalid_input en nommant le problème. Un key_text vide après tokenisation, un message vide après tokenisation au chiffrement, des champs manquants et des valeurs d’action illégales échouent aussi avec invalid_input et ne sont pas facturés.

Utilisation de l’API, tarifs et conseils pratiques

Ne réutilisez jamais la page d’un roman public comme s’il s’agissait d’une clé moderne : quiconque devine le livre peut tenter les mêmes recherches. Le statut est beta tant que la surface publique se stabilise, mais les règles de correspondance des positions suivent cette construction classique fixe et ne changeront pas pour des entrées identiques. Appelez la capacité avec key_text et message comme champs obligatoires. Utilisez action decrypt lorsque le message est déjà une liste de positions produite pour cette même clé. Le tarif de l’API hébergée est un montant fixe de $0.002 par requête réussie ; les échecs de validation tels qu’un key_text manquant, un passage vide, un jeton de déchiffrement non entier ou une position hors plage ne consomment pas de solde. Préférez un passage assez long pour couvrir votre vocabulaire afin que missing_words reste vide, et une formulation distinctive pour vérifier à la main les indices de première occurrence. Pour les pipelines, soumettez chaque message comme sa propre tâche et collectez les résultats via votre flux habituel de webhook ou de lien signé. Gardez des noms de champs explicites plutôt que d’emballer de la prose libre dans un seul bloc : le contrat reste aligné sur OpenAPI, les types SDK et les contrôles de formulaire, et évite une analyse ambiguë de la clé face au chiffré.

Combien coûte l’API du chiffre de livre ?

Chaque appel API réussi coûte $0.002. Le même moteur s’exécute gratuitement dans votre navigateur sans compte. Une entrée invalide n’est pas facturée.

Consulter la documentation complète du KIT →