Chiffre de Porta
Avec la phrase secrète PORTA, « Hello, World! » devient « Oytub, Chjuq! », et la même phrase rétablit l'original. Les lettres passent par treize alphabets appariés, tandis que les espaces, les chiffres et la ponctuation 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
- Hello, World!
- Key
- PORTA
- Résultat
- Oytub, Chjuq!
- Encodage
- porta
- Lettres de la clé
- PORTA
- Longueur de la clé
- 5
Le chiffre de Porta est un chiffre polyalphabétique classique et réciproque inventé par Giovanni Battista della Porta : chaque lettre latine est transformée face à une phrase secrète répétée via l’un des treize alphabets appariés et, comme cette table est sa propre inverse, chiffrer le texte chiffré avec la même clé restaure le texte original. Vous collez n’importe quel texte et une phrase secrète contenant au moins une lettre latine ; les lettres A à Z et a à z se déplacent sous la clé tandis que chiffres, espaces, ponctuation et autres caractères restent en place afin de préserver la structure lisible.
Comment le chiffre de Porta transforme le texte avec une phrase secrète
Porta est un cousin polyalphabétique de la famille Vigenère, mais sa table de chiffrement est différente et réciproque. Les vingt-six lettres de clé se regroupent en treize lignes : A et B partagent un alphabet, C et D le suivant, et ainsi de suite jusqu’à Y et Z. Pour chaque caractère alphabétique du message, prenez la lettre suivante de la phrase secrète (la clé se répète tant qu’il reste des lettres à transformer), choisissez la ligne de cette paire et mappez la lettre en clair via cette table de demi-alphabet.
Les lettres de la première moitié de l’alphabet (A à M) atterrissent dans la seconde moitié (N à Z) avec une rotation dépendant de la ligne, et celles de la seconde moitié atterrissent dans la première ; la casse est préservée de sorte qu’un H majuscule devient une lettre chiffrée majuscule et la minuscule reste minuscule.
Les caractères hors de A à Z et a à z —espaces, virgules, chiffres, emoji et lettres accentuées hors du bloc latin de base— sont copiés inchangés et n’avancent pas le pointeur de la phrase secrète. Ce dessin correspond aux tables Porta des manuels de cryptographie classique. Comme la table est une involution, appliquer la même phrase secrète une seconde fois annule la première transformation : chiffrer et déchiffrer sont la même opération, donc cet outil n’a pas besoin d’un indicateur de mode séparé.
Mathématiquement chaque étape est de l’arithmétique modulaire entière sur une structure fixe de treize paires ; il n’y a ni arrondi flottant de la clé, ni appel réseau, ni graine aléatoire, ni horodatage. Cette page n’implémente que le Porta classique —pas l’addition Vigenère, pas la soustraction Beaufort, pas AES, et pas un casseur automatique de clés qui essaie chaque mot du dictionnaire pour vous. Ce sont des outils et des intentions de recherche distincts, avec leurs propres pages.
Où les outils de chiffre de Porta apparaissent dans le travail réel
Les cours d’introduction à la cryptographie présentent Porta après César et aux côtés d’autres tables polyalphabétiques pour que les étudiants s’exercent à des applications réciproques qui n’exigent pas de règle de déchiffrement séparée et voient comment les paires de lettres de clé réduisent vingt-six lettres à treize alphabets. Les échauffements capture-the-flag et les chasses aux énigmes cachent encore des messages Porta ou variantes, et les résolveurs veulent une transformation prévisible par phrase secrète plutôt qu’une suite générale de cryptanalyse.
Les équipes support et contenu occultent parfois légèrement des spoilers, des réponses de quiz ou des libellés internes avec un chiffre classique par phrase secrète et ont besoin du chemin inverse sans installer une bibliothèque cryptographique spécifique au langage. Les bancs d’essai d’ingénierie génèrent des vecteurs de référence pour les pipelines de transformation de chaînes et ont besoin de sorties stables lorsque la clé tourne, lorsque des non-lettres interrompent le message et lorsque majuscules et minuscules se mélangent.
Si vous avez besoin d’un décalage César d’une seule lettre, de l’addition Vigenère multi-alphabets, de la soustraction Beaufort, d’un chiffrement authentifié fort, d’un encodage Base32 ou Base64, ou d’une récupération automatique de clé par analyse de fréquences, traitez-les comme des intentions de recherche et des pages distinctes plutôt que de surcharger cette page classique Porta par phrase secrète.
Cas d’usage
Démonstrations polyalphabétiques réciproques en classe
Chiffrez et déchiffrez des phrases d’exemple avec une phrase secrète connue afin que les leçons d’introduction à la crypto montrent les treize alphabets appariés de Porta sans mode de déchiffrement séparé.
Chiffres par phrase secrète dans puzzles et CTF
Appliquez ou inversez un Porta avec phrase secrète sur des chaînes de défi sans écrire un script ad hoc pour chaque série de problèmes.
Questions fréquentes
Qu’est-ce que le chiffre de Porta ?
Un chiffre polyalphabétique classique et réciproque qui mappe chaque lettre via l’un des treize alphabets choisis par paires de lettres de clé (A/B, C/D, …, Y/Z). La même opération chiffre et déchiffre.
Comment déchiffrer un texte chiffré Porta ?
Appelez à nouveau la même capacité avec le texte chiffré comme text et la phrase secrète d’origine. Comme Porta est auto-inverse, un second passage restaure le texte en clair.
Que se passe-t-il si la clé est absente ou vide ?
La phrase secrète doit contenir au moins une lettre latine A–Z ou a–z ; les clés absentes, vides ou sans lettres sont rejetées et non facturées.
Les espaces et la ponctuation sont-ils chiffrés ?
Non. Seuls A–Z et a–z sont transformés. Espaces, chiffres, ponctuation et autres caractères passent inchangés et n’avancent pas la clé.
Quel est le coût ?
L’outil du navigateur est gratuit et s’exécute localement.
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/porta \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello, World!","key":"PORTA"}'const res = await fetch("https://api.kit.forhosting.com/enc/porta", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello, World!",
"key": "PORTA"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/porta",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello, World!",
"key": "PORTA"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/porta", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello, World!","key":"PORTA"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello, World!","key":"PORTA"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/porta", 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, World!",
"key": "PORTA"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.porta",
"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
Une clé absente, vide ou sans caractères alphabétiques est rejetée immédiatement avec invalid_input, de sorte que les correcteurs de devoirs et les scripts ne basculent jamais en silence vers une phrase secrète par défaut.
Comment le chiffre de Porta transforme le texte avec une phrase secrète
Un même texte et une même phrase secrète produisent toujours le même JSON.
Ce que vous envoyez et ce que vous recevez en retour
Envoyez un champ chaîne obligatoire nommé text et un champ chaîne obligatoire nommé key. Les échecs de validation ne consomment pas le solde prépayé. Les contrôles classiques incluent de transformer Hello, World! avec la phrase secrète PORTA, de vérifier qu’alimenter le texte chiffré et la même clé renvoie la phrase d’origine, et de confirmer qu’une clé vide est rejetée plutôt que traitée comme identité nulle. Le texte doit être une chaîne non vide du message à transformer ; la clé ne doit pas être vide après le filtre alphabétique : les chaînes composées uniquement d’espaces et les clés ne contenant que des chiffres ou des symboles échouent avec invalid_input et un message clair en anglais qui mentionne l’exigence de clé absente ou vide. En cas de succès la réponse inclut result comme chaîne transformée, encoding égal à porta, key_letters comme le flux en majuscules A–Z réellement utilisé, key_length comme le nombre de positions alphabétiques de ce flux, input_length et output_length, shifted_chars comme le nombre de caractères alphabétiques déplacés, reciprocal à true, et une chaîne formula décrivant la règle de la table par paires pour que les clients puissent affirmer le profil atteint. Texte manquant, clé manquante, objets non chaîne pour l’un ou l’autre champ, texte vide et clés sans lettres échouent avec invalid_input.
Où les outils de chiffre de Porta apparaissent dans le travail réel
Comme cette capacité est un moteur de parse pur, le tarif 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
Obfuscation légère de spoilers et d’étiquettes
Broullez des réponses de quiz ou des libellés internes avec une phrase secrète classique et restaurez-les ensuite avec le même contrat dans le navigateur ou l’API.