Encodeur/décodeur ROT47
« Hello » devient « w6==@ » : chaque caractère ASCII imprimable avance de 47 positions sur un cercle de 94, et repasser le résultat rend l'original. Espaces, accents et autres alphabets restent intacts. 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
- w6==@
ROT47 fait tourner les caractères ASCII imprimables de 47 positions modulo 94. Intention de recherche : encodeur décodeur rot47. Aucun appel réseau, graine aléatoire ni état serveur n'est requis pour une réponse correcte.
Fonctionnement
ROT47 fait tourner les caractères ASCII imprimables de 47 positions modulo 94. Involutive sur la plage 33–126 ; les autres unités de code restent inchangées. L'implémentation est du JavaScript pur sans services externes.
Aucun appel réseau, graine aléatoire ni état serveur n'est requis pour une réponse correcte. Les travaux en échec ne sont pas facturés. Les landings ciblent l'intention de recherche avec des mots-clés précis.
Préférez des unités et plages explicites à la coercition silencieuse de types incorrects. Lorsqu'un champ est optionnel, les défauts sont documentés dans params et renvoyés en sortie. Ceci
Entrées, limites et arrondi
Les décimales optionnelles utilisent half-up une fois. Les sorties renvoient les entrées clés pour que l'automatisation journalise le contexte complet de chaque appel. Aucun appel réseau, graine aléatoire ni état serveur n'est requis pour une réponse correcte.
Les travaux en échec ne sont pas facturés. Les landings ciblent l'intention de recherche avec des mots-clés précis. Préférez des unités et plages explicites à la coercition silencieuse de types incorrects.
Lorsque
Quand l'utiliser
Utilisez-la lorsque votre intention de recherche correspond au nom de la calculatrice et que vous avez besoin d'une réponse reproductible pour l'enseignement, les opérations financières, le SIG, l'outillage texte ou l'histoire des unités. ROT47 fait tourner les caractères ASCII imprimables de 47 positions modulo 94. Aucun appel réseau, graine aléatoire ni état serveur n'est requis pour une réponse correcte.
Les travaux en échec ne sont pas facturés. Les landings ciblent l'intention de recherche avec des mots-clés précis. Préférez des unités et plages explicites à la coercition silencieuse de types incorrects.
Lorsqu'un champ est optionnel, les défauts sont documentés
Questions fréquentes
Appelle-t-il le réseau ?
Non. Toutes les transformations mathématiques et textuelles sont locales et déterministes.
Qui en est l'auteur ?
Aspire (elon@forhosting.com), livraison EN uniquement ; Nitro hydrate les locales.
Comment décoder un texte en ROT47 ?
Collez le texte encodé et appliquez à nouveau le même outil. ROT47 est son propre inverse : avancer deux fois de 47 positions fait le tour des 94, donc « w6==@ » redevient « Hello ».
Quels caractères ROT47 modifie-t-il ?
Uniquement les caractères ASCII imprimables de 33 à 126 : lettres latines sans accent, chiffres et ponctuation courante. Les espaces, les lettres accentuées, les autres alphabets et les emojis restent exactement identiques.
ROT47 change-t-il la longueur du texte ?
Non. Chaque caractère est remplacé par exactement un autre caractère, ou laissé tel quel : le texte encodé compte autant de caractères que l'original, avec espaces et sauts de ligne à leur place.
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/text/rot47 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello!"}'const res = await fetch("https://api.kit.forhosting.com/text/rot47", {
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/text/rot47",
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/text/rot47", 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/text/rot47", 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": "text.rot47",
"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
La calculatrice est gratuite dans le navigateur, déterministe et identique sur le chemin API. Les entrées sont validées avant toute arithmétique ; les charges invalides échouent avec invalid_input. L'arrondi half-up s'applique une fois à partir des résultats IEEE bruts lorsque des décimales sont demandées. Utilisez le même contrat JSON depuis des tableurs, crochets CMS, automatisation,
Fonctionnement
La calculatrice est gratuite dans le navigateur, déterministe et identique sur le chemin API. Les entrées sont validées avant toute arithmétique ; les charges invalides échouent avec invalid_input. L'arrondi half-up s'applique une fois à partir des résultats IEEE bruts lorsque des décimales sont demandées. Utilisez le même contrat JSON depuis des tableurs, crochets CMS, automatisation ou démos pédagogiques.
Entrées, limites et arrondi
Fournissez les paramètres requis sous forme de nombres ou de chaînes JSON comme documenté. Types invalides, champs obligatoires manquants ou valeurs hors plage lèvent invalid_input avec un message clair. La calculatrice est gratuite dans le navigateur, déterministe et identique sur le chemin API. Les entrées sont validées avant toute arithmétique ; les charges invalides échouent avec invalid_input. L'arrondi half-up s'applique une fois à partir des résultats IEEE bruts lorsque des décimales sont demandées. Utilisez le même contrat JSON depuis des tableurs, crochets CMS, automatisation ou démos pédagogiques.
Quand l'utiliser
La calculatrice est gratuite dans le navigateur, déterministe et identique sur le chemin API. Les entrées sont validées avant toute arithmétique ; les charges invalides échouent avec invalid_input. L'arrondi half-up s'applique une fois à partir des résultats IEEE bruts lorsque des décimales sont demandées. Utilisez le même contrat JSON depuis des tableurs, crochets CMS, automatisation ou démos pédagogiques.
Cas d'intégration
Vérification rapide
Collez des valeurs dans le widget gratuit et comparez avec un tableur.
Automatisation
Appelez l'API avec le même contrat JSON depuis n8n, scripts ou CMS.
Enseignement
Montrez la formule et les exemples golden figés sans logiciel propriétaire.
Questions techniques
Est-ce gratuit dans le navigateur ?
Oui. Le niveau A s'exécute entièrement côté client avec le même noyau que l'API.
Que se passe-t-il en cas d'entrée incorrecte ?
Le gestionnaire lève invalid_input ; les travaux en échec ne sont pas facturés.
Puis-je l'utiliser via l'API ?
Oui. Envoyez les mêmes champs JSON documentés dans params.