Base64 est un schéma d'encodage binaire-vers-texte défini par la RFC 4648. Il convertit des données binaires en une chaîne de 64 caractères ASCII (A-Z, a-z, 0-9, +, /) avec un padding `=`. Base64 est utilisé pour embarquer des images dans le CSS (data URIs), transmettre des pièces jointes email (MIME), encoder des tokens d'authentification (Basic Auth) et stocker des données binaires dans du JSON ou XML. La variante URL-safe remplace `+` par `-` et `/` par `_` pour une utilisation dans les URLs sans échappement.
Qu'est-ce que l'encodage Base64 et comment fonctionne-t-il ?
Base64 est un schéma d'encodage binaire-vers-texte qui convertit des données binaires en une chaîne de 64 caractères ASCII imprimables : A-Z, a-z, 0-9, + et /, plus = pour le padding. Il a été conçu à l'origine pour transmettre des données binaires via des protocoles ne supportant que le texte, comme SMTP (email) ou les premières versions de HTTP.
L'encodage fonctionne en prenant des groupes de 3 octets (24 bits) et en les divisant en 4 groupes de 6 bits. Chaque groupe de 6 bits correspond à l'un des 64 caractères. Si la longueur de l'entrée n'est pas un multiple de 3, du padding (=) est ajouté.
Quand faut-il utiliser l'encodage Base64 ?
Base64 est le bon choix quand vous devez intégrer des données binaires dans un contexte purement textuel :
- Data URI — intégrer de petites images directement dans le HTML ou le CSS
- Pièces jointes email — l'encodage MIME utilise Base64 pour joindre des fichiers
- Tokens JWT — le header et le payload d'un JSON Web Token sont encodés en Base64url
- HTTP Basic Auth — les identifiants sont envoyés comme une chaîne
username:passwordencodée en Base64 - Payloads API — données binaires (fichiers, images) envoyées dans des corps JSON
Quelle est la différence entre Base64 standard et URL-safe ?
Le Base64 standard utilise + et / parmi ses 64 caractères, et = pour le padding. Ces caractères ont un sens spécial dans les URLs et les noms de fichiers.
Le Base64 URL-safe (défini dans la RFC 4648 §5) résout ce problème en remplaçant + par -, / par _, et en omettant le padding =. Cette variante est utilisée par JWT, de nombreuses APIs, et partout où du Base64 apparaît dans un contexte URL.
Vous travaillez avec des formats de données API ? Notre convertisseur JSON ↔ YAML vous permet de basculer entre les deux formats de configuration les plus courants instantanément.