Qu'est-ce que l'encodage Base64?
Une methode pour encoder des donnees binaires en texte ASCII utilisant 64 caracteres.
Encoder & decoder en Base64
Une methode pour encoder des donnees binaires en texte ASCII utilisant 64 caracteres.
Pour transmettre en toute securite des donnees binaires dans des formats texte comme email, JSON et HTML.
Oui, environ 33% plus grand que l'original.
Le Base64, c'est la methode qui permet de convertir n'importe quelles donnees binaires en une chaine de caracteres ASCII. On s'en sert pour les pieces jointes d'e-mails, pour integrer des images directement dans du CSS ou du HTML, pour les tokens d'authentification API, et dans plein d'autres situations ou il faut faire passer du binaire dans un canal qui n'accepte que du texte.
Oui, et c'est le prix a payer : la sortie encodee est environ 33 % plus volumineuse que l'original. La raison est simple : 3 octets de donnees sont representes par 4 caracteres ASCII. C'est un compromis a garder en tete, surtout pour les fichiers de grande taille.
Base64 prend 3 octets (24 bits) de donnees binaires et les decoupe en quatre groupes de 6 bits. Chaque groupe est ensuite associe a l'un des 64 caracteres possibles : A-Z, a-z, 0-9, + et /. Si la taille des donnees n'est pas un multiple de 3, des caracteres de remplissage (=) sont ajoutes a la fin. Resultat : n'importe quelles donnees binaires peuvent etre representees sous forme de texte ASCII imprimable, pret a transiter par e-mail, JSON ou tout autre format texte.
Les systemes de messagerie (MIME) s'en servent pour faire passer les pieces jointes sous forme de texte. Sur le web, on integre de petites images directement dans le CSS ou le HTML via des data URI encodees en Base64 -- ca evite une requete HTTP supplementaire. L'authentification API utilise souvent Base64 dans les en-tetes Basic Auth pour encoder les identifiants. Et c'est incontournable des qu'il faut inserer des donnees binaires dans des formats texte comme JSON ou XML.
Base64 ajoute 33 % de surcharge, mais il est sur et universellement reconnu. Base32 a un overhead plus important (60 %), mais il n'est pas sensible a la casse, ce qui peut etre pratique dans certains contextes. L'encodage hexadecimal double tout simplement la taille (100 % de surcharge), mais il reste l'outil prefere pour le debogage. Le Base64 URL-safe remplace + et / par - et _ pour eviter les problemes dans les URL. En resume, choisissez l'encodage qui correspond le mieux a votre besoin.