Chiffre Unicode ROT8000
Hello devient 聈聥聬聬聯 : chaque caractère du plan multilingue de base, espaces, chiffres et toutes écritures compris, saute la moitié du plan, et la même opération rend le texte d'origine. 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
- Résultat
- 聈聥聬聬聯
- Encodage
- rot8000
- Longueur de l'entrée
- 5
- Longueur de la sortie
- 5
Ce chiffre Unicode ROT8000 applique une rotation réversible sur tout le plan multilingue de base, en décalant chaque unité de code UTF-16 de trente-deux mille sept cent soixante-huit positions et en refermant par arithmétique modulaire. Comme ce décalage est exactement la moitié du plan de soixante-cinq mille cinq cent trente-six unités, la même opération brouille et restaure le texte : soumettez le clair une fois pour le masquer, soumettez le chiffré une seconde fois pour retrouver l'original. Contrairement au ROT13 limité aux lettres ou au ROT47 de l'ASCII imprimable, ROT8000 déplace ensemble espaces, ponctuation, chiffres, lettres latines, idéogrammes CJK et toutes les autres unités du BMP, si bien que les notes multi-écritures se brouillent aussi densément que l'anglais pur. Les contrôles habituels incluent Hello devenant la chaîne d'apparence CJK qui revient à l'original au second appel.
Ce qu'est ROT8000 et ce que renvoie cet outil
ROT8000 est un chiffrement par substitution sur le plan multilingue de base : les soixante-cinq mille cinq cent trente-six unités de code UTF-16 de U+0000 à U+FFFF. Chaque unité est associée à l'unité trente-deux mille sept cent soixante-huit pas plus loin, avec arithmétique modulaire, de sorte que le nouveau code correspond aux seize bits bas du code d'origine plus 0x8000.
Lettres, chiffres, ponctuation, espaces et écritures non latines bougent ensemble, ce qui rend ROT8000 bien plus dense que le ROT13 alphabétique et mieux adapté pour brouiller des jetons Unicode mixtes comme des mots de passe internationaux, des fragments de configuration et des chaînes de défi multi-écritures. Cette page utilise toujours cette règle modulaire exacte, sans paramètre de décalage optionnel ni tables d'alphabet susceptibles de diverger selon la langue.
Si vous avez besoin d'une rotation ASCII imprimable seule, de Base64 sûr pour URL ou de Morse, utilisez ces points d'accès dédiés ; cette page ne répond qu'au contrat de rotation BMP ROT8000 déjà décrit par les guides de chiffre Unicode et d'obfuscation légère.
Énigmes et démonstrations multilingues avec ROT8000
Les développeurs et enseignants rencontrent ROT8000 dans les échauffements capture-the-flag, les chapitres de manuels sur les chiffres Unicode classiques et l'obfuscation légère côté client qui doit s'inverser avec une seule fonction plutôt qu'un calendrier de clés. Les équipes frontend peuvent brouiller des identifiants multilingues d'exemple ou des chaînes en forme de jeton pour des captures d'écran sans inventer un alphabet personnalisé limité aux lettres latines.
Les ingénieurs qualité génèrent des paires d'encodage déterministes pour des tests de contrat, afin qu'un middleware prétendant prendre en charge ROT8000 ne bascule pas en silence vers ROT13, ROT47 ou un autre décalage. Les organisateurs de concours précalculent des clés de réponse pour de modestes phrases Unicode sans faire confiance à des jouets web opaques qui changent les règles de surrogates. Les outils produit et éducation utilisent la transforme lorsqu'un apprenant colle un chiffré et que l'interface doit afficher le clair récupéré sous la propriété d'involution.
Associez-le à d'autres aides d'encodage pour constituer un petit laboratoire d'outils de texte Unicode gratuits et déterministes.
Cas d’usage
Échauffements CTF et chiffre Unicode
Obfusquez et restaurez du texte BMP avec une seule rotation réversible de demi-plan pour puzzles, salles de classe et pratique capture-the-flag.
Obfuscation réversible multi-écritures
Masquez des jetons multilingues d'exemple ou des fragments de configuration dans docs et captures, puis récupérez-les avec le même appel ROT8000.
Questions fréquentes
Combien coûte le chiffre Unicode ROT8000 ?
Il est gratuit dans le navigateur sur cette page.
Comment décoder ROT8000 ?
Appliquez à nouveau la même transforme. ROT8000 est une involution : encoder et décoder sont des opérations identiques sur le plan multilingue de base.
Quels caractères sont décalés ?
Chaque unité de code UTF-16 de la chaîne est tournée de 0x8000 dans le BMP (U+0000–U+FFFF). Il n'y a pas de sous-ensemble imprimable seul : espaces et CJK bougent aussi.
Le résultat est-il déterministe ?
Oui. Le même texte produit toujours le même résultat, sans réseau, aléatoire ni comportement dépendant de la date.
Pourquoi Hello se transforme-t-il en caractères qui ressemblent à du chinois ?
Chaque caractère avance d'un demi-tour dans le plan multilingue de base, et les lettres latines tombent dans la zone des idéogrammes chinois, japonais et coréens. Le résultat n'a aucun sens ; en refaisant l'opération, on retrouve Hello.
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/rot8000 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello"}'const res = await fetch("https://api.kit.forhosting.com/enc/rot8000", {
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/rot8000",
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/rot8000", 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/rot8000", 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.rot8000",
"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
Utilisez-le gratuitement dans le navigateur pour des échauffements CTF, des démos d'obfuscation Unicode réversible et des fiches d'exercices, ou appelez l'API à $0.002 par requête réussie lorsque les pipelines ont besoin de transforms ROT8000 reproductibles en CI et services backend.
Ce qu'est ROT8000 et ce que renvoie cet outil
La réponse JSON inclut result pour la chaîne transformée, encoding fixé à rot8000, input_length et output_length qui coïncident car ROT8000 préserve la longueur en unités UTF-16, shifted_units comptant combien d'unités ont été tournées (toujours égal à la longueur d'entrée pour une requête valide), et une chaîne formula qui reformule le mappage modulaire pour la documentation et les tests. Il n'y a ni flux en streaming ni repli silencieux vers ROT13 ou ROT47 : soit vous fournissez un texte non vide et recevez la transforme complète, soit la requête échoue avec invalid_input.
Comment le texte est lu et comment les résultats restent reproductibles
Chaque unité de code UTF-16 est traitée indépendamment avec la carte modulaire fixe, si bien qu'appliquer la transforme deux fois redonne toujours la charge d'origine. Le champ de charge utile privilégié est text, avec les alias input, value, s et message, afin que formulaires, chaînes de requête et clients SDK réutilisent le même contrat sans renommer de colonnes. La chaîne doit être présente et non vide ; champs absents, types non chaîne et chaîne vide lèvent invalid_input avec un message clair, pour qu'un formulaire blanc ne ressemble pas à une opération réussie sans effet. 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 la rotation de demi-plan. Les entrées invalides renvoient invalid_input et ne sont pas facturées, ce qui garde la validation peu coûteuse tandis que les transforms réussies restent à un prix fixe par élément. Les champs de longueur et le compteur shifted_units aident les tests à vérifier que chaque unité a bougé et que la longueur de sortie égale celle d'entrée, sans redériver l'arithmétique modulaire à chaque assertion.
Où ROT8000 s'insère dans puzzles, démos et fixtures de test
Les services backend encodent de courts fragments de configuration pour des API de puzzle ou des sandboxes pédagogiques où les étudiants doivent appliquer le même décalage de demi-plan 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, une validation échouée n'est pas facturée et rien n'est stocké après la réponse. Cette scission — exploration interactive gratuite et API payante identique — rejoint le reste du catalogue tier A du KIT et vous permet de passer d'une démo en classe à un pipeline automatisé sans changer le résultat transformé.
Cas d'intégration
Fixtures CI déterministes
Générez des chaînes ROT8000 reproductibles pour tests unitaires, fichiers golden et contrôles de contrat entre services.
Questions techniques
Que se passe-t-il en cas d'entrée vide ?
Un texte vide ou manquant échoue avec invalid_input et n'est pas facturé. Fournissez une chaîne non vide.