Aller au contenu
uencoder

Base64

Base64 projette des données binaires arbitraires sur 64 caractères ASCII imprimables (A-Z, a-z, 0-9, +, /) afin que les données binaires puissent transiter par des canaux texte uniquement.

Objectif

Elle a résolu le problème des premiers systèmes de courrier ne transportant que du texte ASCII 7 bits et incapables d'acheminer des pièces jointes binaires, tout en évitant que les passerelles ne corrompent les caractères de contrôle.

Mécanisme

Le flux d'octets d'entrée est traité par groupes de 3 octets (24 bits) découpés en quatre unités de 6 bits, chacune projetée sur un caractère de l'alphabet Base64. Le dernier groupe incomplet est complété par = jusqu'à 4 caractères. La longueur encodée vaut environ 4/3 de l'entrée, et la longueur de sortie est toujours un multiple de 4.

Cas d’usage

  • Intégration de données binaires dans JSON, XML et URL (p. ex. petites images en Data URLs)
  • Transport de pièces jointes MIME dans les courriels
  • Encodage d'utilisateur:motdepasse dans l'authentification HTTP Basic
  • Encodage des segments d'en-tête et de charge utile d'un JWT

Exemples

  • entrée
    Hello
    Output
    SGVsbG8=

    5 bytes to 8 characters with one trailing = pad

Erreurs courantes

Using standard Base64 directly in URLs, where + and / get percent-encoded and decoding fails
Use Base64URL instead (- and _ replace + and /, and = padding is dropped)

Termes associés

Outils associés

Tutoriels associés

References