encoder | décoder | compresser

> base64url | jwt | url sûre <

// Base64url - variante Base64 sûre pour les URL et les noms de fichier, sans caractère de remplissage

[URL-SAFE]

Compatible avec les URL

Aucun caractère spécial d'URL – sûr pour les paramètres de requête et les chemins.

[JWT]

Standard JWT

Utilisé dans les JSON Web Tokens et les spécifications OAuth 2.0.

[NO-PADDING]

Remplissage optionnel

Les caractères de remplissage (=) peuvent être omis pour des URL plus propres.

>> informations techniques

Comment fonctionne Base64url:

Base64url est une variante de Base64 qui remplace "+" par "-" et "/" par "_", ce qui la rend sûre pour les URL et les noms de fichier. Le caractère de remplissage "=" est souvent omis car il peut provoquer des problèmes dans les URL.

Comparaison:

Base64: SGVsbG8+Pw== Base64url: SGVsbG8-Pw

Pourquoi utiliser Base64url:

  • >Jetons JWT
  • >Flux OAuth 2.0
  • >Paramètres de requête d'URL
  • >Encodage de noms de fichier
  • >Signatures d'API web

>> questions fréquentes

Qu'est-ce que Base64url ?

Base64url est une variante de l'encodage Base64 sûre pour les URL et les noms de fichier. Elle remplace "+" par "-", "/" par "_" et peut supprimer les caractères de remplissage "=" pour éviter les problèmes de codage d'URL.

Pourquoi ne pas utiliser Base64 classique dans les URL ?

Le Base64 classique utilise les caractères "+", "/" et "=" qui ont des significations particulières dans les URL. "+" peut être interprété comme un espace, "/" est un séparateur de chemin et "=" est utilisé pour les paramètres, ce qui peut provoquer des problèmes d'analyse.

Où Base64url est-il utilisé ?

Base64url est largement utilisé dans les JWT (JSON Web Tokens), les codes d'autorisation OAuth 2.0, les assertions SAML et dans toute API qui doit transporter des données binaires dans des URL ou des en-têtes HTTP.

Le remplissage est-il obligatoire en Base64url ?

Non, le remplissage est optionnel en Base64url. De nombreuses implémentations l'ignorent car la longueur peut être déduite. Les JWT exigent spécifiquement l'absence de remplissage pour des URL plus propres.

// Différences avec Base64

Base64Base64url
+-
/_
=—

// Base64url dans le code

JavaScript   btoa(s).replace(/\+/g,'-').replace(/\//g,'_').replace(/=+$/,'')
Node.js      Buffer.from(s).toString('base64url')
Python       base64.urlsafe_b64encode(b).rstrip(b'=')
Go           base64.RawURLEncoding.EncodeToString(b)
Padding      s + '=' * (-len(s) % 4)

>> Autres questions

Q : Pourquoi Base64url omet-il le « = » ?

R : Le padding se déduit de la longueur, et « = » a un sens particulier dans les URL et chaînes de requête. C’est pourquoi JWT (RFC 7515) et de nombreuses API écrivent Base64url sans padding.

Q : Comment restaurer le padding avant de décoder ?

R : Regardez la longueur modulo 4 : reste 2 → ajoutez ==, reste 3 → ajoutez =, reste 0 → rien. Un reste 1 n’est jamais valide. Remplacez aussi - par + et _ par /.

Q : Base64url est-il un chiffrement ?

R : Non, ce n’est qu’un encodage : n’importe qui peut l’inverser. Le contenu d’un payload JWT est donc lisible ; n’y placez aucun secret.

Autres langues