Qu'est-ce que l'encodage Base64 ?
L'encodage Base64 permet de convertir des données (généralement binaires) en un jeu de caractères ASCII. Il est important de préciser que Base64 n'est ni un chiffrement ni une compression, bien qu'on le confonde parfois avec le chiffrement en raison de la manière dont il semble masquer les données. En réalité, la taille d'une information encodée en Base64 est 1,3333 fois supérieure à celle des données d'origine.
Base64 est la technique d'encodage en base la plus utilisée, avec Base16 et Base32 comme les deux autres schémas d'encodage courants.
L'encodage Base64 est l'une des méthodes les plus courantes pour convertir des données binaires en texte ASCII brut. C'est un format très pratique pour la communication entre systèmes qui ne peuvent pas facilement gérer les données binaires, comme les images dans le balisage HTML ou les requêtes web.
Comment fonctionne Base64 ?
La conversion de données en Base64 est un processus en plusieurs étapes. Voici comment cela fonctionne pour les chaînes de texte :
- Calculer la version binaire 8 bits du texte d'entrée
- Regrouper la version 8 bits des données en blocs de 6 bits
- Trouver la valeur décimale de chaque bloc binaire de 6 bits
- Trouver le symbole Base64 correspondant à chaque valeur décimale via la table de correspondance Base64
| Valeur | Caractère | Valeur | Caractère |
|---|---|---|---|
| 0 | A | 32 | g |
| 1 | B | 33 | h |
| 2 | C | 34 | i |
| 3 | D | 35 | j |
| 4 | E | 36 | k |
| 5 | F | 37 | l |
| 6 | G | 38 | m |
| 7 | H | 39 | n |
| 8 | I | 40 | o |
| 9 | J | 41 | p |
| 10 | K | 42 | q |
| 11 | L | 43 | r |
| 12 | M | 44 | s |
| 13 | N | 45 | t |
| 14 | O | 46 | u |
| 15 | P | 47 | v |
| 16 | Q | 48 | w |
| 17 | R | 49 | x |
| 18 | S | 50 | y |
| 19 | T | 51 | z |
| 20 | U | 52 | 0 |
| 21 | V | 53 | 1 |
| 22 | W | 54 | 2 |
| 23 | X | 55 | 3 |
| 24 | Y | 56 | 4 |
| 25 | Z | 57 | 5 |
| 26 | a | 58 | 6 |
| 27 | b | 59 | 7 |
| 28 | c | 60 | 8 |
| 29 | d | 61 | 9 |
| 30 | e | 62 | + |
| 31 | f | 63 | / |
Pourquoi utiliser l'encodage Base64 ?
Envoyer des informations au format binaire peut parfois être risqué, car toutes les applications ou tous les systèmes réseau ne peuvent pas gérer le binaire brut. En revanche, le jeu de caractères ASCII est largement connu et très simple à manipuler pour la plupart des systèmes.
Par exemple, les serveurs de messagerie attendent des données textuelles, c'est pourquoi on utilise généralement ASCII. Si vous souhaitez envoyer des images ou tout autre fichier binaire à un serveur de messagerie, vous devez d'abord l'encoder dans un format textuel, de préférence ASCII. C'est là que l'encodage Base64 devient extrêmement utile pour convertir les données binaires aux formats appropriés.
Cas d'utilisation courants de Base64
Vous pouvez aussi utiliser Base64 pour représenter des données binaires de manière compatible avec HTML, JavaScript et CSS. Par exemple, vous pouvez intégrer une image directement dans un fichier CSS ou JavaScript en utilisant Base64.
Il est possible d'utiliser Base64 pour convertir des entrées, comme des données de formulaire ou du JSON, en une chaîne avec un jeu de caractères réduit compatible avec les URL. Cependant, en raison de la façon dont certains serveurs peuvent interpréter les caractères plus (+) et barre oblique (/), il est recommandé d'utiliser encodeURIComponent à la place.
Limites de Base64
Base64 n'est en aucun cas une méthode de chiffrement sécurisée.
Base64 n'est pas non plus une méthode de compression. L'encodage d'une chaîne en Base64 donne généralement un résultat 33 % plus long.