Chiffre XOR
Combine votre texte avec une clé répétée par XOR et affiche le résultat en hexadécimal : « Hello » avec la clé « key » donne 230015070a, et la même clé le ramène en texte. Conçu pour énigmes, CTF et cours, pas pour protéger des secrets. 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
- Clé
- key
- Mode de calcul
- Encrypt
- Résultat
- 230015070a
- Longueur de la clé
- 3
- Octets
- 5
Le chiffre XOR est un chiffre de flux classique à clé répétée qui combine chaque octet de données avec un octet de clé grâce à l'opération ou-exclusif. Comme XOR est sa propre inverse, la même clé qui brouille un message le restaure lorsqu'elle est appliquée à nouveau. Cette capacité encode le texte clair en UTF-8, fait défiler les octets de la clé sur la charge utile et présente le texte chiffré en hexadécimal compact en minuscules pour que les résultats binaires restent copiables. Le mode decrypt accepte cet hexadécimal, réapplique le flux de clé et renvoie du texte UTF-8 lorsque la clé correspond. On utilise le XOR à clé répétée pour les échauffements de CTF, les démonstrations de chiffres de flux en classe, les livres d'énigmes et l'obfuscation légère lorsque le chiffrement authentifié moderne serait excessif.
Règles de validation, clés vides et pièges courants
Les chaînes de mode invalides hors encrypt, decrypt, encode et decode échouent de la même façon. Ne considérez pas la sortie comme un chiffrement de confidentialité : le XOR à clé répétée est vulnérable aux attaques à texte clair connu, au crib dragging et à l'analyse de fréquences lorsque la clé est courte par rapport au message, et la page produit ne doit jamais présenter cet outil comme un contrôle de sécurité pour des mots de passe, des jetons ou des données personnelles.
Préférez cette page lorsque l'intention de recherche est chiffre xor, XOR à clé répétée ou chiffrer déchiffrer XOR en hex ; Atbash et ROT13 répondent à la substitution d'alphabet fixe, la transposition en grille répond à la transposition, Base64 et hex-text répondent à l'encodage sans clé, ils restent donc des outils séparés.
Lors du déchiffrement, utilisez exactement la même chaîne de clé que celle qui a produit le texte chiffré ; une mauvaise clé échoue à la validation UTF-8 ou produit du charabia qui ne correspondra pas au texte clair original.
Usages en cours et limites pratiques
Appelez le chiffre XOR gratuit du navigateur pour vérifier des devoirs, des diapositives de cours, la pratique de CTF et des exécutions ponctuelles de chiffrement ou déchiffrement sans écrire une boucle de flux de clé dans chaque langage. Un scénario de cours typique montre qu'une clé d'un octet est un simple flux de type César sur les octets, puis allonge la clé et démontre que la longueur du texte chiffré égale celle du texte clair en octets tandis que le hex double le nombre de caractères.
Les guides de support peuvent inverser des notes légèrement obfusquées que le personnel a écrites avec une clé partagée connue. Les sites d'énigmes peuvent précalculer des réponses hex pour l'affichage et les révéler à la demande avec mode decrypt. Ne le combinez avec des bibliothèques cryptographiques modernes que lorsqu'une étape ultérieure exige un chiffrement authentifié — gardez XOR sur sa propre page pour que l'intention SEO reste centrée sur le ou-exclusif classique à clé répétée.
Cas d’usage
Échauffements XOR pour CTF et énigmes
Cachez de courts drapeaux ou indices sous une clé répétée connue, publiez le hex, puis déchiffrez avec la même clé quand les participants ont besoin de la révélation sans installer de bibliothèques cryptographiques.
Questions fréquentes
Comment chiffrer du texte avec le chiffre XOR ?
Le champ result de la réponse contient le texte chiffré hexadécimal en minuscules.
Comment déchiffrer un texte chiffré XOR en hex ?
Envoyez la chaîne hex comme text, la même clé que pour le chiffrement et le mode decrypt (ou decode). Le résultat est le texte clair UTF-8 reconstruit lorsque la clé correspond.
Que se passe-t-il si la clé est vide ?
Une clé non vide est requise pour que le flux de clé répétée soit bien défini.
Le chiffre XOR est-il gratuit ?
L'outil du navigateur fonctionne gratuitement sur votre appareil.
Le XOR à clé répétée est-il un chiffrement sûr ?
Non. C'est un chiffre classique pédagogique et ludique, pas une confidentialité pour des secrets. Ne l'utilisez jamais pour des mots de passe ou des données sensibles de production ; utilisez un chiffrement authentifié moderne.
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/xor \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello","key":"key"}'const res = await fetch("https://api.kit.forhosting.com/enc/xor", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello",
"key": "key"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/xor",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello",
"key": "key"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/xor", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello","key":"key"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello","key":"key"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/xor", 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",
"key": "key"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.xor",
"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
Saisissez un texte non vide, une clé non vide et un mode encrypt ou decrypt facultatif ; les clés vides échouent avec invalid_input.
Comment fonctionne le XOR à clé répétée et ce que contient la réponse
Le chiffrement convertit d'abord votre message en octets UTF-8 afin que les caractères multi-octets soient traités de la même manière dans chaque isolate. La chaîne de clé est aussi encodée en UTF-8 ; ces octets de clé forment un flux qui recommence au début dès que le message est plus long que la clé. Chaque octet de données subit un ou-exclusif avec l'octet de clé à la position indice modulo longueur de la clé, produisant un texte chiffré binaire de longueur égale. Le déchiffrement inverse la présentation : le champ text doit être hexadécimal (espaces, deux-points, tirets ou préfixes 0x facultatifs sont retirés), le même flux de clé est appliqué et les octets résultants sont décodés en texte UTF-8. Les valeurs de mode acceptées sont encrypt, encode, decrypt et decode ; encode correspond à encrypt et decode à decrypt. Envoyez du JSON avec le champ chaîne obligatoire text contenant le message clair ou le texte chiffré hex, le champ chaîne obligatoire key avec toute phrase secrète non vide, et un mode facultatif qui vaut encrypt par défaut. Les alias input, value, s, message et ciphertext fonctionnent pour le corps ; password, secret, k et passphrase sont des alias de la clé ; op, action et direction sont des alias de mode. En cas de succès, la réponse inclut result avec la chaîne hex ou claire, mode normalisé en encrypt ou decrypt, key_length égal à la longueur en octets UTF-8 de la clé, bytes égal au nombre d'octets de données traités, et method égal à xor pour que les clients puissent brancher sans renifler les formes. Des entrées identiques produisent toujours un JSON identique car le chemin est une arithmétique d'octets pure, sans réseau, sans graine aléatoire et sans horloge.
Règles de validation, clés vides et pièges courants
Un text absent, non chaîne ou une chaîne vide déclenchent invalid_input et ne sont pas facturés sur l'API prépayée après que le moteur a rejeté la requête. Une key absente, non chaîne ou une clé vide échouent aussi avec invalid_input ; la promesse du produit est un vrai flux de clé répétée, et zéro octet de clé laisserait les données inchangées ou indéfinies en tant que chiffre. En mode decrypt, un hex de longueur impaire après retrait des séparateurs, des caractères non hexadécimaux ou des octets déchiffrés qui ne sont pas du UTF-8 valide déclenchent également invalid_input, afin que les clients ne reçoivent jamais de chaînes silencieusement corrompues.
Utilisation de l'API, tarifs, scénarios de cours et limites pratiques
Utilisez l'API prépayée KIT lorsqu'un backend, une fonction serverless, une plateforme de tutorat ou un SDK a besoin d'un contrat stable avec solde à $0.002 par élément réussi ; les échecs de validation ne consomment jamais de solde après rejet. Les auteurs qui publient des SDKs peuvent mapper le champ result directement sur un bouton de copie tandis que mode, key_length, bytes et method rendent les exemples OpenAPI auto-explicatifs. Gardez des charges de taille textuelle ordinaire, adaptées à un appel d'élément dans un isolate de Worker ; cet outil est pour les messages et les extraits, pas pour des blobs binaires de plusieurs mégaoctets.
Cas d'intégration
Démos de chiffre de flux en classe
Les enseignants montrent que XOR est sa propre inverse, comparent le texte chiffré hex au texte clair et épinglent Hello avec la clé key comme fixture de manuel que les élèves peuvent recalculer à la main.
Fixtures pour pipelines et CI
Les scripts et tests d'intégration continue épinglent des sorties hex XOR déterministes et l'erreur de clé vide pour que les bogues accidentels de flux de clé ou de formatage hex échouent vite.