Le Base64 en une phrase
Le Base64 est un encodage binaire-texte, défini par la RFC 4648, qui représente chaque groupe de 3 octets de données par 4 caractères de l'alphabet A–Z, a–z, 0–9, + et /.
Pourquoi le Base64 existe
De nombreux systèmes ont été conçus pour le texte uniquement : l'e-mail (SMTP), le JSON, le XML, les attributs HTML, les URL et les terminaux. Des données binaires brutes, comme des images ou des PDF, peuvent contenir des octets que ces systèmes modifieraient ou rejetteraient. Le Base64 convertit ces données en caractères imprimables et sûrs, pour qu'elles arrivent à destination intactes.
Comment fonctionne l'encodage Base64, étape par étape
- Prenez les octets d'entrée :
M,a,n= 77, 97, 110. - Écrivez-les sur 24 bits :
01001101 01100001 01101110. - Découpez ces bits en quatre groupes de 6 bits :
010011 010110 000101 101110= 19, 22, 5, 46. - Cherchez chaque nombre dans l'alphabet : 19 =
T, 22 =W, 5 =F, 46 =u.
Man devient donc TWFu. Le décodage consiste simplement à refaire ces étapes en sens inverse.
L'alphabet Base64
| Valeurs | Caractères |
|---|---|
| 0–25 | A–Z |
| 26–51 | a–z |
| 52–61 | 0–9 |
| 62 | + (compatible URL : -) |
| 63 | / (compatible URL : _) |
| remplissage | = |
Que signifie le remplissage = ?
Lorsque la longueur des données d'entrée n'est pas un multiple de 3, le dernier groupe est complété et signalé par = : Ma devient TWE= et M devient TQ==. Le remplissage n'apparaît jamais au milieu d'une chaîne valide.
Les variantes du Base64
- Base64 standard (RFC 4648) – l'alphabet ci-dessus, avec remplissage
=. - Base64URL – utilise
-et_, souvent sans remplissage ; employé dans les URL, les noms de fichiers et les JWT. - Base64 MIME – alphabet standard avec un retour à la ligne tous les 76 caractères, utilisé dans les e-mails.
Le Base64 n'est pas un chiffrement
Le Base64 ne cache rien : n'importe qui peut le décoder instantanément. On le prend souvent pour une protection, car le résultat semble aléatoire. Pour vos secrets, utilisez un vrai chiffrement comme AES, et réservez le Base64 au transport des octets chiffrés sous forme de texte.
Le surcoût en taille
La longueur encodée est de 4 × ⌈n / 3⌉ caractères pour n octets, soit environ 33 % de plus que l'original. Avec les retours à la ligne MIME, elle augmente encore de 2 à 3 %.
Où utilise-t-on le Base64 ?
- Pièces jointes des e-mails (MIME)
- Data URI pour les images et les polices en HTML et en CSS
- Champs binaires des API JSON et XML
- JSON Web Tokens et OAuth
- En-têtes d'authentification HTTP Basic
- Certificats PEM et clés SSH
- Secrets Kubernetes et fichiers de configuration
Questions fréquentes
Le Base64 est-il un chiffrement ou un hachage ?
Non. Un chiffrement ne peut être inversé qu'avec une clé, un hachage ne peut pas être inversé du tout, alors que le Base64 peut être décodé par n'importe qui.
Pourquoi l'appelle-t-on Base64 ?
Parce qu'il utilise un alphabet de 64 caractères : chaque caractère porte donc 6 bits d'information (26 = 64).
Comment savoir si une chaîne est en Base64 ?
Elle ne contient que A–Z, a–z, 0–9, + et / (ou - et _), sa longueur est généralement un multiple de 4 et elle peut se terminer par un ou deux signes =. Le test le plus rapide consiste à la coller dans notre décodeur.
Dernière mise à jour: