Chiffre ROT5 des chiffres
0123456789 devient 5678901234 : chaque chiffre avance de cinq places sur un cercle de dix, et les lettres, espaces et tirets restent en place. Appliquez-le une seconde fois et les chiffres d'origine reviennent. Pratique pour masquer un numéro de téléphone ou de commande. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Texte
- 0123456789
- Résultat
- 5678901234
- Entrée
- 0123456789
- Texte
- 5678901234
- Chiffres tournés
- 10
Un chiffre ROT5 des chiffres est le cousin numérique de la rotation classique de lettres ROT13 : chaque chiffre ASCII de zéro à neuf est décalé de cinq places sur un cercle de dix chiffres, ainsi zéro devient cinq, un devient six, deux devient sept, trois devient huit, quatre devient neuf, et la seconde moitié de l'alphabet des chiffres se mappe de l'autre côté. Comme cinq est la moitié de dix, appliquer la même substitution une seconde fois restaure la chaîne d'origine—encoder et décoder sont des opérations identiques. Lettres, ponctuation, espaces et tout point de code Unicode non chiffre passent inchangés, ce qui rend ROT5 idéal pour une légère ofuscation de numéros de téléphone, d'ID de commande, de PIN intégrés dans un texte mixte ou de chaînes de casse-tête style CTF sans toucher la prose environnante. Saisissez n'importe quel texte non vide ; l'outil renvoie la chaîne transformée, combien de chiffres ont tourné, combien de caractères non chiffres ont été laissés seuls, et un court message d'état.
Ce que ROT5 fait aux chiffres et ce qu'il laisse intact
ROT5 appartient à la famille des chiffres de substitution modulaire utilisés dans les casse-tête crypto classiques et les jouets de texte légers. L'alphabet est les dix chiffres ASCII de zéro à neuf. Pour tout caractère chiffre d dont la valeur numérique est n de zéro à neuf, le chiffre émet le caractère unique de (n plus cinq) modulo dix.
Cette table est fixe et publique : zéro mappe sur cinq, un sur six, deux sur sept, trois sur huit, quatre sur neuf, cinq sur zéro, six sur un, sept sur deux, huit sur trois et neuf sur quatre. Comme le décalage égale la moitié de la taille de l'alphabet, le mappage est une involution—chaque symbole est sa propre inverse—donc il n'y a ni mode de décodage séparé ni clé secrète.
Tout ce qui n'est pas un chiffre ASCII est copié tel quel : lettres majuscules et minuscules, espaces, traits d'union dans les numéros de téléphone, symboles monétaires, sauts de ligne et Unicode multi-octets survivent. Les formes de chiffres pleine largeur et les autres systèmes numériques hors de la plage ASCII ne sont pas réécrits ; seuls les dix caractères aux points de code quarante-huit à cinquante-sept participent.
Quand vous renvoyez le result comme entrée, vous récupérez le texte d'origine pour chaque chiffre présent, ce qui est le contrôle aller-retour standard que enseignants et auteurs CTF utilisent pour vérifier une implémentation ROT5.
Cas d’usage
Exercices de chiffre CTF et en classe
Les élèves appliquent ROT5 à des suites de chiffres dans des énoncés de défi, puis l'appliquent de nouveau pour vérifier la propriété d'involution avant de passer à des chiffres classiques plus durs.
Ofuscation légère d'ID dans les démos
Les démos produit et captures d'écran remplacent numéros de commande ou chiffres téléphoniques d'exemple par ROT5 tout en gardant séparateurs et libellés lisibles pour l'auditoire.
Questions fréquentes
Qu'est-ce que ROT5 ?
ROT5 fait tourner chaque chiffre ASCII 0–9 de cinq positions modulo 10. Zéro devient cinq, un devient six, et ainsi de suite ; cinq se mappe de nouveau sur zéro. Les non-chiffres restent inchangés.
Comment décoder du ROT5 ?
Appliquez ROT5 de nouveau. Le mappage est une involution : exécuter la même transformation deux fois restaure les chiffres d'origine.
ROT5 change-t-il les lettres ?
Non. Seuls les chiffres ASCII 0–9 sont réécrits. Lettres, espaces, ponctuation et autres caractères Unicode passent tels quels.
Que se passe-t-il avec une entrée vide ?
Une chaîne non vide est requise pour que les champs vides ne soient pas traités comme un résultat vide réussi.
Que deviennent les tirets et les espaces d'un numéro de téléphone ?
Ils restent exactement à leur place. Seuls les dix chiffres changent, si bien que la forme du numéro se conserve et reste reconnaissable dans une démonstration ou une capture d'écran.
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/rot5 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Phone: 555-0199"}'const res = await fetch("https://api.kit.forhosting.com/enc/rot5", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Phone: 555-0199"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/rot5",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Phone: 555-0199"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/rot5", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Phone: 555-0199"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Phone: 555-0199"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/rot5", 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": "Phone: 555-0199"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.rot5",
"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.
Limites
max_chars | 100000 |
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
L'entrée vide est rejetée avec une erreur claire invalid_input pour que les appelants ne traitent jamais un champ vide comme un no-op réussi. Le chemin est une pure arithmétique de caractères déterministe—sans réseau, sans graines aléatoires, sans dépendance à l'horloge—ainsi l'exécuteur gratuit du navigateur et l'API prépayée renvoient le même JSON à chaque fois.
Ce que ROT5 fait aux chiffres et ce qu'il laisse intact
Les chaînes vides ne sont pas ici une transformation identité valide : l'API les refuse avec invalid_input pour qu'un champ de formulaire manquant ne produise pas silencieusement une autre chaîne vide d'apparence réussie.
Comment appeler l'API et ce qui revient
La chaîne doit être non vide et ne pas dépasser la limite de caractères publiée de cent mille caractères. Envoyez un corps JSON avec un champ chaîne obligatoire nommé text. Les alias courants aussi acceptés par le solveur incluent input, value, data, message et s, pour que les clients existants qui étiquettent déjà une charge de texte libre puissent appeler cette capacité sans renommer la clé. En cas de succès la réponse renvoie la charge d'origine sous input, fixe à la fois result et text à la chaîne transformée par ROT5 pour que l'une ou l'autre clé convienne aux pipelines aval, rapporte digits_rotated comme le compte des chiffres ASCII remappés, non_digits comme le compte des caractères laissés inchangés, length comme le compte de caractères de sortie (toujours égal à la longueur d'entrée), formula comme le mnémonique court chiffre flèche parenthèse ouverte chiffre plus cinq parenthèse fermée mod dix, et message comme un résumé d'une ligne en anglais du nombre de chiffres déplacés. Une validation échouée—champ manquant, mauvais type, chaîne vide ou charge trop grande—renvoie invalid_input et n'est jamais facturée. Le prix est un forfait de $0.002 par requête réussie avec unité item et prix unitaire marginal zéro.
Conseils pratiques, limites et recherches liées
Préférez envoyer la chaîne mixte complète plutôt que de retirer d'abord la ponctuation quand le contexte environnant compte : les formats téléphoniques comme cinq cinq cinq tiret zéro un neuf neuf gardent leurs tirets et espaces tandis que seuls les chiffres tournent, ce que veulent exactement les rédactions de casse-tête et les démos de rédaction légère. Si votre source ne contient que des lettres, l'outil réussit encore et rapporte zéro chiffre tourné—c'est intentionnel, pas une erreur, car le chemin identité sur les non-chiffres fait partie de la définition du chiffre. Cette page cible les personnes qui cherchent un chiffre ROT5, un rotateur de chiffres ou un outil ROT de nombres en ligne ; ce n'est pas ROT13 pour lettres, pas un César général à décalage arbitraire, pas Base64, et pas un chiffrement qui offre le secret face à un attaquant motivé. Préférez cette capacité quand vous avez besoin d'une substitution uniquement de chiffres, transparente et réversible, pour démos, feuilles de travail ou étapes de casse-tête ; si vous avez besoin de rotation de lettres, utilisez plutôt un outil ROT13 orienté lettres. Pour décoder, rappelez le même endpoint avec le result précédent ; il n'y a pas de drapeau de mode à régler. Gardez les charges sous la longueur maximale publiée pour borner la mémoire Worker. En enseignement, associez des exemples : la suite de chiffres zéro un deux trois quatre cinq six sept huit neuf devient cinq six sept huit neuf zéro un deux trois quatre ; une chaîne style téléphone avec tirets montre la préservation de la ponctuation ; et une chaîne vide démontre le chemin dur invalid_input. Les tâches échouées qui renvoient invalid_input ne consomment pas le solde prépayé, ce qui garde les scripts exploratoires peu chers quand les clients sondent des champs vides. Les contrôles aller-retour sont faciles : renvoyez le result et affirmez l'égalité avec l'original, et confirmez qu'une chaîne purement non-chiffres laisse result et input identiques tandis que digits_rotated reste zéro.
Cas d'intégration
Tests unitaires de pipeline pour transformations de chiffres
Les suites de tests génèrent des chaînes de chiffres connues, affirment le mappage fixe (n+5) mod 10 et incluent un cas invalid_input d'entrée vide comme fixture négative.
Questions techniques
Le chiffre ROT5 des chiffres est-il gratuit ?
L'outil navigateur est gratuit et s'exécute localement. Les appels API utilisent le solde prépayé KIT à $0.002 par requête réussie ; les tâches échouées ne sont jamais facturées.