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.