Aller au décodeur Base64

RFC 4648 §5 · base64url

Décoder du Base64URL, remplissage compris.

Collez du Base64 URL-safe — issu d’un JWT, d’un paramètre d’URL, d’un défi WebAuthn ou de l’API Gmail — et il est décodé en reconvertissant - et _ et en restaurant le remplissage = manquant. Collez un JSON Web Token complet et l’en-tête et la charge utile s’affichent dans un tableau.

Mis à jour le · Fonctionne entièrement dans votre navigateur

Convertisseur Décoder Base64URL

0 caractères
Résultat décodé
Type: — Taille: 0 B
Options
Général
Options de décodage

Ctrl+Enter décoder Ctrl+Shift+C copier le résultat Déposez un fichier sur l’entrée pour le charger

Comment décoder du Base64URL

  1. 01

    Collez la valeur base64url

    Collez une chaîne Base64 URL-safe ou un JWT complet. Les caractères - et _ et le remplissage manquant sont gérés automatiquement.

  2. 02

    Lisez le résultat décodé

    Les valeurs simples sont décodées en texte ou en octets. Un JWT est séparé en en-tête et charge utile, avec iat, nbf et exp affichés sous forme de dates.

  3. 03

    Copiez ou continuez à décoder

    Copiez le JSON, formatez-le, ou cliquez sur Envoyer vers l’entrée si la charge utile contient une autre valeur encodée.

Base64 ou Base64URL

Le Base64 standard utilise + et /, qui ont un sens dans les URL et les noms de fichiers, et complète avec =, qu’il faut encoder en pourcentage dans une chaîne de requête. Le Base64URL, défini à la section 5 de la RFC 4648, remplace uniquement ces caractères pour que la valeur circule dans une URL sans altération :

Différences entre le Base64 standard et le Base64URL
Base64Base64URL
Valeur 62+-
Valeur 63/_
Remplissage= obligatoiregénéralement omis
Défini dansRFC 4648 §4RFC 4648 §5

Les 62 autres caractères sont identiques : la conversion se résume à un échange de caractères plus le remplissage.

Restaurer le remplissage manquant

Beaucoup de décodeurs stricts refusent une entrée sans remplissage. La règle pour le rétablir ne dépend que de la longueur de la chaîne modulo 4 :

  • reste 0 : aucun remplissage nécessaire ;
  • reste 2 : ajoutez == ;
  • reste 3 : ajoutez = ;
  • reste 1 : impossible en Base64 valide, la valeur est tronquée.

Ce décodeur applique la règle pour vous et signale une valeur tronquée au lieu de renvoyer discrètement n’importe quoi.

Où l’on rencontre le base64url

  • JSON Web Tokens — l’en-tête, la charge utile et la signature sont trois segments base64url reliés par des points. La signature est affichée mais pas vérifiée, car il faudrait la clé.
  • WebAuthn et passkeys — défis, identifiants de justificatifs et données client.
  • OAuth PKCE — le code_challenge est une empreinte SHA-256 en base64url.
  • API Gmail — le corps des messages et les pièces jointes sont encodés en base64url.
  • Identifiants courts et jetons dans les URL, les cookies et les noms de fichiers.

Décoder du base64url dans le code

# Python: urlsafe_b64decode still needs the padding back
import base64
def b64url_decode(s: str) -> bytes:
    return base64.urlsafe_b64decode(s + "=" * (-len(s) % 4))

// Node.js 16+
Buffer.from(token, "base64url").toString("utf8");

// Go
base64.RawURLEncoding.DecodeString(s)

// Java 8+: the URL decoder accepts unpadded input
Base64.getUrlDecoder().decode(s);

Pour le Base64 standard et d’autres langages, consultez la page principale pour décoder du Base64.

Autres décodeurs

D’autres façons de décoder du Base64.

Questions

Décoder Base64URL : questions fréquentes.

Comment décoder du Base64URL ?

Remplacez - par + et _ par /, ajoutez du remplissage = jusqu’à obtenir une longueur multiple de quatre, puis décodez comme du Base64 normal. Cette page fait les trois automatiquement : collez la valeur et le résultat décodé s’affiche aussitôt.

Le Base64URL est-il la même chose que l’encodage URL ?

Non. L’encodage URL (encodage en pourcentage) échappe des caractères isolés sous la forme %XX. Le Base64URL est une variante du Base64 qui convertit des octets dans un alphabet sûr pour les URL. Si une valeur contient %2B ou %3D, c’est du Base64 encodé en pourcentage : décodez d’abord les pourcentages.

Puis-je décoder un JWT avec cet outil ?

Oui. Collez le jeton complet : l’en-tête et la charge utile sont décodés depuis le base64url et affichés dans un tableau, avec les horodatages convertis en dates. La signature est affichée mais pas vérifiée, car cela exige la clé secrète ou publique.

Pourquoi Python renvoie-t-il « Incorrect padding » sur du base64url ?

base64.urlsafe_b64decode attend le remplissage = que le base64url omet généralement. Ajoutez "=" * (-len(s) % 4) à la chaîne avant de décoder, comme dans l’exemple de cette page.