Base64
Base64 est un codage binaire-vers-texte qui représente des octets au moyen d’un alphabet de 64 caractères.
Définition
Base64 représente des octets quelconques sous forme de texte afin de les transporter dans des systèmes conçus pour les caractères. L’alphabet standard comprend les lettres latines majuscules et minuscules, les chiffres, + et / ; = peut apparaître à la fin comme remplissage.
Base64 ne change que la représentation. Il n’assure à lui seul ni confidentialité, ni authenticité, ni intégrité et se décode sans clé.
Fonctionnement
L’encodeur prend 3 octets, divise leurs 24 bits en quatre valeurs de 6 bits et associe chacune à un caractère parmi 64. Si le dernier groupe ne contient que 1 ou 2 octets, = marque généralement la partie manquante afin d’obtenir une longueur multiple de quatre.
Pour de grandes entrées, le résultat occupe environ un tiers de plus. Base64url remplace + et / par - et _ et omet souvent le remplissage ; les variantes ne sont donc pas toujours interchangeables.
Exemple pratique
Les octets ASCII et UTF-8 de Hi sont 48 69 en hexadécimal. Base64 standard les représente par SGk=. Le décodage restitue les mêmes octets, dont l’interprétation en UTF-8 redonne Hi.
Base64 peut aussi contenir une image, des données compressées ou du texte chiffré. Un décodage réussi ne produit pas nécessairement du texte lisible.
Formats et pièges
Les applications doivent s’accorder sur la variante, le remplissage et les espaces autorisés. Un décodeur strict peut refuser ce qu’un autre accepte. Un texte doit d’abord être converti en octets avec un codage de caractères tel qu’UTF-8 ; un autre codage produira un Base64 différent.
Non. C’est un codage public et réversible sans clé secrète. Les données sensibles doivent d’abord être protégées par un mécanisme cryptographique approprié.
Le remplissage complète le dernier groupe de quatre caractères lorsque le nombre d’octets n’est pas divisible par trois. Il peut comporter un ou deux signes ; certains formats les omettent.
Ils regroupent les bits de la même façon, mais Base64url emploie des caractères adaptés aux URL et omet souvent le remplissage. Il faut suivre la variante imposée par le protocole.