Qu'est-ce que Base64 ? Un guide complet pour débutants
Qu'est-ce que l'encodage Base64 ?
Base64 est un schéma d'encodage binaire-texte qui représente des données binaires dans un format de chaîne ASCII à l'aide d'un alphabet de 64 caractères. Il a été conçu à l'origine pour les pièces jointes des e-mails via MIME (Multipurpose Internet Mail Extensions) et reste l'une des méthodes d'encodage les plus utilisées sur le web.
Lorsque vous devez envoyer des données binaires — comme une image, un fichier ou des octets compressés — sur un canal conçu pour le texte, Base64 est la solution de référence. Il prend des octets arbitraires et les transforme en une chaîne sûre et portable de lettres, de chiffres et de quelques caractères spéciaux.
Comment fonctionne Base64 ?
Base64 fonctionne en traitant les données binaires par groupes de trois octets (24 bits) et en convertissant chaque groupe en quatre caractères Base64. Le nom « Base64 » vient du fait que l'alphabet d'encodage utilise 64 caractères différents : A-Z, a-z, 0-9, + et /.
L'algorithme d'encodage étape par étape
- Prenez 3 octets (24 bits) de données d'entrée
- Divisez-les en quatre groupes de 6 bits
- Mappez chaque valeur de 6 bits (0-63) à la table de l'alphabet Base64
- Ajoutez le rembourrage (
=) si la longueur de l'entrée n'est pas divisible par 3
Voici un exemple concret. La chaîne "Man" s'encode comme suit :
M(ASCII 77) =01001101a(ASCII 97) =01100001n(ASCII 110) =01101110
Combinés : 01001101 01100001 01101110 → divisés en groupes de 6 bits :
010011= 19 →T010110= 22 →W000101= 5 →F101110= 46 →u
Ainsi, "Man" devient "TWFu".
Et le rembourrage ?
Si la longueur de l'entrée n'est pas un multiple de 3 octets, Base64 ajoute des caractères de rembourrage (=) pour que la sortie soit un multiple de 4 caractères :
- 1 octet d'entrée → 2 caractères Base64 + 2 caractères de rembourrage (
==) - 2 octets d'entrée → 3 caractères Base64 + 1 caractère de rembourrage (
=)
Par exemple, l'octet unique correspondant à "M" s'encode en TQ==.
La table de l'alphabet Base64
| Valeur | Car. | Valeur | Car. | Valeur | Car. | Valeur | Car. | |-------|------|-------|------|-------|------|-------|------| | 0 | A | 16 | Q | 32 | g | 48 | w | | 1 | B | 17 | R | 33 | h | 49 | x | | 2 | C | 18 | S | 34 | i | 50 | y | | 3 | D | 19 | T | 35 | j | 51 | z | | 4 | E | 20 | U | 36 | k | 52 | 0 | | 5 | F | 21 | V | 37 | l | 53 | 1 | | 6 | G | 22 | W | 38 | m | 54 | 2 | | 7 | H | 23 | X | 39 | n | 55 | 3 | | 8 | I | 24 | Y | 40 | o | 56 | 4 | | 9 | J | 25 | Z | 41 | p | 57 | 5 | | 10 | K | 26 | a | 42 | q | 58 | 6 | | 11 | L | 27 | b | 43 | r | 59 | 7 | | 12 | M | 28 | c | 44 | s | 60 | 8 | | 13 | N | 29 | d | 45 | t | 61 | 9 | | 14 | O | 30 | e | 46 | u | 62 | + | | 15 | P | 31 | f | 47 | v | 63 | / |
Cas d'usage courants de l'encodage Base64
Pièces jointes d'e-mails (MIME)
Base64 a été créé pour MIME (Multipurpose Internet Mail Extensions). Les protocoles de messagerie comme SMTP ont été conçus pour du texte ASCII à 7 bits, donc les pièces jointes binaires telles que les PDF, les images et les fichiers ZIP doivent être encodées en Base64 avant d'être envoyées par e-mail.
URL de données dans le HTML et le CSS
Base64 vous permet d'intégrer des images, des polices et d'autres médias directement dans des fichiers HTML ou CSS à l'aide d'URL de données :
<img src="data:image/png;base64,iVBORw0KGgo..." alt="Embedded Image" />
Cela élimine une requête HTTP supplémentaire, ce qui peut être bénéfique pour les petits éléments.
JSON Web Tokens (JWT)
Les JWT utilisent la variante de Base64 adaptée aux URL (Base64url) pour encoder l'en-tête, la charge utile et la signature de chaque jeton. C'est pourquoi vous voyez des chaînes comme eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 dans les systèmes d'authentification.
Stocker des données binaires dans des bases de données
De nombreuses bases de données sont optimisées pour le stockage de texte et peuvent ne pas gérer correctement les octets bruts. Encoder les données binaires en Base64 vous permet de stocker des images, des objets sérialisés ou des données chiffrées dans des colonnes texte.
Charges utiles d'API
Lorsque vous envoyez des données binaires via une API REST ou GraphQL — en particulier au format JSON — Base64 est le choix standard car JSON ne peut pas représenter nativement les octets bruts.
Est-ce que Base64 augmente la taille des fichiers ?
Oui. L'encodage Base64 augmente la taille des données d'environ 33 %. Pour chaque groupe de 3 octets en entrée, vous obtenez 4 octets en sortie. Ce surcoût est le compromis nécessaire pour rendre les données binaires transportables sur des canaux textuels uniquement.
Est-ce que Base64 est un chiffrement ?
Non. C'est une idée fausse courante. Base64 est un schéma d'encodage, pas un chiffrement. Toute personne qui reçoit une chaîne Base64 peut la décoder pour retrouver les données d'origine sans avoir besoin d'une clé. Il n'offre aucune sécurité ni confidentialité. Si vous devez protéger des données, utilisez le chiffrement (comme AES), puis éventuellement encodez les octets chiffrés avec Base64 pour le transport.
Base64 vs autres encodages binaire-texte
| Encodage | Taille de l'alphabet | Surcoût | Idéal pour | |----------|--------------|----------|----------| | Base64 | 64 caractères | ~33 % | Transfert et intégration de données | | Base32 | 32 caractères | ~60 % | Contextes lisibles par l'humain, insensibles à la casse | | Base16 (Hex) | 16 caractères | 100 % | Débogage, dumps mémoire, codes couleur | | Ascii85 | 85 caractères | ~25 % | Adobe PostScript, flux PDF |
Base64 offre un compromis équilibré entre l'efficacité d'espace et la compatibilité large, ce qui en fait l'encodage binaire-texte le plus populaire sur le web.
Essayez l'encodage Base64 en ligne
Prêt à encoder vos propres données ? Utilisez notre encodeur et décodeur Base64 gratuit en ligne pour convertir du texte ou des fichiers instantanément dans votre navigateur. Aucune installation ni inscription requise.