Encodeur/Décodeur Base64

Encoder et décoder les chaînes Base64

Texte brut
Base64
Comprendre Encodage Base64
TL;DR

Base64 est un schema d'encodage binaire-vers-texte qui convertit des donnees binaires en un ensemble de 64 caracteres ASCII imprimables. Il est utilise pour transmettre en toute securite des donnees binaires a travers des protocoles textuels comme l'email (MIME), le HTML (data URIs) et les en-tetes HTTP. Base64 est un encodage, pas un chiffrement -- n'importe qui peut le decoder.

Qu’est-ce que Base64 ?

Base64 est un schema d’encodage binaire-vers-texte qui represente des donnees binaires a l’aide d’un ensemble de 64 caracteres ASCII. Il a ete concu pour garantir que les donnees binaires puissent etre transmises en toute securite via des systemes textuels qui pourraient ne pas gerer correctement les octets bruts — comme l’email (SMTP), le JSON, le XML et les parametres d’URL.

Le nom “Base64” fait reference a l’alphabet de 64 caracteres utilise pour l’encodage. Contrairement a l’hexadecimal (Base16), qui utilise 16 caracteres, Base64 est plus compact — il represente 6 bits par caractere au lieu de 4.

Comment fonctionne l’encodage Base64

Le processus d’encodage opere sur des groupes de 3 octets (24 bits) a la fois :

  1. Prendre 3 octets en entree (24 bits au total)
  2. Diviser en 4 groupes de 6 bits chacun
  3. Mapper chaque valeur de 6 bits sur un caractere de l’alphabet Base64
  4. Si la longueur de l’entree n’est pas un multiple de 3, completer avec des caracteres =

L’alphabet Base64

Plage d’indexCaracteresNombre
0-25A a Z26
26-51a a z26
52-610 a 910
62+1
63/1
Remplissage=

Variante Base64URL

Pour les URL et les noms de fichiers, les caracteres standard + et / posent probleme. La variante Base64URL (RFC 4648 S5) les remplace :

  • + devient -
  • / devient _
  • Le remplissage = est souvent omis

Cette variante est utilisee dans les JWT, les jetons OAuth et partout ou les jetons apparaissent dans les URL.

Explication du remplissage

Base64 fonctionne par groupes de 3 octets. Lorsque l’entree ne se divise pas exactement par 3 :

Octets en entreeSortie Base64Remplissage
3 octets4 caracteresAucun
2 octets3 caracteres + =1 pad
1 octet2 caracteres + ==2 pads

Cas d’utilisation courants

  • Pieces jointes email (MIME) : les fichiers binaires sont encodes en Base64 pour transiter en toute securite via SMTP, qui ne prend en charge que l’ASCII 7 bits
  • Data URIs : integration d’images directement dans le HTML ou le CSS sous forme data:image/png;base64,iVBORw0KGgo...
  • HTTP Basic Auth : l’en-tete Authorization: Basic transporte nom_utilisateur:mot_de_passe en Base64
  • Payloads JSON : les donnees binaires (fichiers, images, certificats) peuvent etre integrees dans des chaines JSON via Base64
  • Jetons JWT : chaque segment (header, payload, signature) est encode en Base64URL

Essayez ces exemples

Texte ASCII Valide

Un texte ASCII simple encode en Base64 produit 'SGVsbG8sIFdvcmxkIQ=='. Le remplissage == indique que la longueur de l'entree n'etait pas un multiple de 3 octets.

Hello, World!
UTF-8 avec caracteres speciaux Valide

Texte UTF-8 avec des caracteres accentues et un emoji. Les caracteres multi-octets produisent une sortie Base64 plus longue car chaque caractere peut occuper 2 a 4 octets.

Cafe ☕ resume
Chaine vide Invalide

Une entree vide ne produit aucune sortie. L'encodage Base64 necessite au moins un octet de donnees en entree.