Encodeur et décodeur Base64url
« hello world » devient aGVsbG8gd29ybGQ en Base64url, le Base64 sûr pour les URL de la section 5 du RFC 4648 : tiret et tiret bas remplacent le plus et la barre oblique, sans signe égal final, et les jetons passent intacts dans les liens. 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
- Mode de calcul
- Encode
- Résultat
- aGVsbG8gd29ybGQ
- Encodage
- base64url
- Octets d'entrée
- 11
- Octets de sortie
- 15
Cet encodeur Base64url convertit du texte brut en Base64 sûr pour URL et décode des chaînes Base64url en texte UTF-8 à l'aide de l'alphabet de la RFC 4648 section 5. Choisissez encode pour transformer un message, un ensemble de revendications, ou une chaîne de configuration en une charge utile Base64url compacte, ou choisissez decode pour récupérer le texte original à partir d'un jeton sûr pour URL que vous détenez déjà. Le moteur est entièrement déterministe : la même entrée et le même mode produisent toujours le même résultat, sans appel réseau, sans sel aléatoire, et sans raccourci dépendant de la date. Parmi les vérifications courantes : encoder hello world en aGVsbG8gd29ybGQ et décoder cette chaîne pour retrouver la phrase originale.
Ce qu'est Base64url et ce que renvoie cet outil
Base64url est le cousin sûr pour URL du Base64 classique défini dans la RFC 4648 section 5. Les deux schémas font correspondre chaque trois octets d'entrée à quatre symboles de six bits tirés d'un alphabet à soixante-quatre caractères, mais Base64url remplace les symboles plus et barre oblique par moins et tiret bas et omet le remplissage égal que le Base64 standard ajoute lorsque la longueur en octets n'est pas un multiple de trois.
Ce petit changement d'alphabet explique pourquoi les jetons d'identité, les paramètres d'état OAuth, les fragments de cookie signés, et les hachages de contenu voyagent proprement à l'intérieur des URL et des attributs HTML sans encodage pour cent.
Cette page utilise toujours cet alphabet sûr pour URL sans remplissage : le mode encodage encode votre texte en UTF-8, regroupe les octets, et ne renvoie que A à Z, a à z, zéro à neuf, moins, et tiret bas ; le mode décodage inverse le processus et rejette les caractères Base64 standard, les espaces, et les quanta finaux incomplets.
Où l'on croise Base64url : liens et jetons
Les développeurs rencontrent Base64url lorsqu'ils inspectent des segments JWT, fabriquent des valeurs d'état et de nonce OAuth, intègrent de petites revendications sûres en binaire dans des paramètres de requête, ou stockent des identifiants opaques dans des fichiers de configuration en texte seul. Les équipes frontend décodent des jetons sûrs pour URL pendant le débogage d'intégration sans coller de données dans des scripts ad hoc qui réintroduisent accidentellement plus et barre oblique.
Les services backend encodent des extraits de configuration ou de petits condensés binaires avant de les placer dans des URL de redirection où le Base64 standard serait cassé. Les ingénieurs qualité génèrent des paires d'encodage et de décodage déterministes pour des tests de contrat afin qu'un middleware qui prétend prendre en charge Base64url ne puisse pas basculer silencieusement d'alphabet. Les enseignants utilisent le même outil en enseignant la différence entre le Base64 MIME et la variante sûre pour URL sur laquelle les piles d'authentification modernes se standardisent.
Associez-le aux auxiliaires JWT ou de hachage lorsque vous avez besoin d'étapes cryptographiques apparentées, et aux autres points de terminaison d'encodage pour bâtir un petit laboratoire d'outils de texte gratuits et déterministes.
Cas d’usage
Pratique de jetons JWT et OAuth
Encodez ou décodez des segments sûrs pour URL utilisés dans les JWT, les états OAuth, et les valeurs de nonce sans remplissage Base64 standard ni caractères +/.
Charges utiles sûres pour chaînes de requête
Transformez un court texte en Base64url afin qu'il survive aux paramètres de requête et aux segments de chemin sans surprises d'encodage pour cent.
Questions fréquentes
Combien coûte l'encodeur Base64url ?
Il est gratuit dans votre navigateur sur cette page.
En quoi Base64url diffère-t-il du Base64 standard ?
Base64url utilise - et _ à la place de + et /, et cet outil n'émet ni n'accepte jamais de remplissage =. Le Base64 standard avec + / = est rejeté au décodage.
Que se passe-t-il si je colle du Base64 standard avec + ou = ?
Remplacez + par -, / par _, retirez le remplissage, ou utilisez plutôt un outil Base64 standard.
Le résultat est-il déterministe ?
Oui. Le même texte et le même mode produisent toujours le même résultat, sans réseau, aléa, ou comportement dépendant de la date.
Pourquoi mon résultat Base64url ne se termine-t-il pas par des signes égal ?
Parce que Base64url supprime le remplissage qu'ajoute le Base64 standard. « hello world » devient aGVsbG8gd29ybGQ, sans rien après. Au décodage, une longueur qui laisse un seul caractère isolé dans un groupe de quatre est refusée, car elle ne peut pas former d'octets entiers.
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/base64url \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"hello world"}'const res = await fetch("https://api.kit.forhosting.com/enc/base64url", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "hello world"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/base64url",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "hello world"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/base64url", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"hello world"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"hello world"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/base64url", 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"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.base64url",
"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
Contrairement au Base64 classique, la sortie ne contient jamais de caractères plus ou barre oblique et ne se termine jamais par un remplissage égal, si bien que les jetons survivent aux chaînes de requête, aux segments de chemin, et au JSON sans échappement supplémentaire.
Ce qu'est Base64url et ce que renvoie cet outil
La réponse JSON inclut result pour la chaîne transformée, mode reprenant encode ou decode, encoding fixé à base64url, et input_bytes plus output_bytes afin que vous puissiez vérifier les tailles dans les tests. Il n'y a aucun chemin de streaming et aucun repli silencieux vers l'alphabet classique : soit la chaîne est un texte Base64url valide, soit la requête échoue avec invalid_input. Si vous avez besoin du Base64 standard rempli avec plus et barre oblique, utilisez un point de terminaison Base64 standard dédié ; cette page ne concerne que le contrat sûr pour URL, sans remplissage, que JWT et de nombreuses API modernes attendent déjà.
Comment le texte et le mode sont lus et comment les résultats restent reproductibles
Encode accepte toute chaîne Unicode, la convertit avec le TextEncoder de la plateforme en octets UTF-8, puis émet du Base64url sans remplissage. Decode exige une chaîne Base64url pure : une longueur modulo quatre égale à un est rejetée car elle ne peut représenter un nombre entier d'octets, et tout caractère hors de l'alphabet sûr pour URL échoue avec un message clair qui pointe vers plus, barre oblique, ou égal lorsque ces symboles Base64 standard apparaissent. Une fois les octets récupérés, un décodage UTF-8 fatal garantit que des données binaires aléatoires ne deviennent pas du texte corrompu. Le champ de charge utile privilégié est text, avec les alias input, value et s afin que formulaires, chaînes de requête et clients SDK puissent réutiliser le même contrat sans renommer de colonnes. Mode par défaut vaut encode et accepte decode explicitement ; les alias op, direction et action correspondent au même choix pour les scripts qui utilisent déjà ces noms. 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 au sein d'un pipeline automatisé sans réimplémenter vous-même les tables Base64url. Les entrées invalides renvoient invalid_input et ne sont pas facturées, ce qui garde la validation bon marché tandis que les transformations réussies restent à un prix fixe.
Où Base64url s'inscrit dans les jetons, les API et les fixtures de test
Sur cette page, le travail s'exécute entièrement dans votre navigateur ; via l'API, chaque recherche réussie coûte $0.002, une validation échouée n'est pas facturée, et rien n'est conservé après le renvoi de la réponse. Cette séparation — exploration interactive gratuite et API payante identique — s'inscrit dans le reste du catalogue de niveau A du KIT et permet de passer d'une démonstration en classe à un pipeline automatisé sans changer le résultat encodé.
Cas d'intégration
Fixtures CI déterministes
Générez des chaînes Base64url reproductibles pour tests unitaires, fichiers golden, et vérifications de contrat entre services.
Questions techniques
Quels modes sont pris en charge ?
mode=encode (par défaut) transforme du texte brut en Base64url. mode=decode transforme une chaîne Base64url en texte UTF-8.