📋 Sommaire
Qu'est-ce que le Base64 ? L'Explication en 30 Secondes
Le Base64 est un moyen de convertir des données binaires (octets) en texte (caractères ASCII). Il prend n'importe quelle donnée — une image, un PDF, une chaîne Unicode, une clé cryptographique — et la représente en utilisant seulement 64 caractères « sûrs » : A-Z, a-z, 0-9, + et / (plus = pour le padding).
Pourquoi 64 caractères ? Parce que 2⁶ = 64. Chaque caractère Base64 encode exactement 6 bits de données. Trois octets (24 bits) deviennent quatre caractères Base64. C'est pourquoi la sortie Base64 est toujours ~33% plus grande que l'entrée.
Le but est la sécurité. Les données binaires peuvent contenir des octets qui ne sont pas valides dans les protocoles textuels (octets nuls, caractères de contrôle, octets au-dessus de 127). Le Base64 convertit tout en un ensemble de caractères universellement sûr qui traverse l'email, le JSON, le XML, les URL, et le copier-coller sans dommage.
Comment Fonctionne Réellement l'Encodage Base64
Encodons le mot « Man » étape par étape :
Étape 1 : Convertir chaque caractère en sa valeur ASCII en octet M → 77, a → 97, n → 110 Étape 2 : Écrire la chaîne binaire de 24 bits (3 octets × 8 bits) 01001101 01100001 01101110 Étape 3 : Diviser en groupes de 6 bits (24 bits ÷ 6 = 4 groupes) 010011 010110 000101 101110 Étape 4 : Convertir chaque groupe de 6 bits en décimal 010011 = 19, 010110 = 22, 000101 = 5, 101110 = 46 Étape 5 : Mapper chaque nombre décimal à l'alphabet Base64 Index : 0=A, 1=B, ... 25=Z, 26=a ... 51=z, 52=0 ... 61=9, 62=+, 63=/ 19=T, 22=W, 5=F, 46=u Résultat : « Man » → « TWFu »
Quand l'entrée n'est pas un multiple de 3 octets, le padding entre en jeu. Un octet supplémentaire → deux caractères Base64 + « == ». Deux octets supplémentaires → trois caractères Base64 + « = ». Le padding indique au décodeur combien d'octets ignorer.
| Entrée | Binaire (groupé) | Sortie Base64 |
|---|---|---|
| « M » (1 octet) | 010011 01[0000 000000] | TQ== |
| « Ma » (2 octets) | 010011 010110 0001[00 000000] | TWE= |
| « Man » (3 octets) | 010011 010110 000101 101110 | TWFu |
C'est tout l'algorithme. Groupes de 6 bits, table de correspondance, padding pour les non-multiples de 3. Assez simple pour être implémenté en 20 lignes de code — et largement implémenté dans la bibliothèque standard de chaque langage.
Quand Utiliser le Base64 (Et Quand NE PAS le Faire)
✅ Bonnes utilisations du Base64
- Intégrer du binaire dans des protocoles textuels — Pièces jointes email (MIME), JSON Web Tokens, payloads XML. Partout où le transport attend du texte mais vous avez des octets.
- Data URIs — Intégrer de petites images directement dans le HTML/CSS :
<img src="data:image/png;base64,iVBOR...">. Évite une requête HTTP séparée pour les petits éléments. - Jetons d'authentification API — L'authentification HTTP Basic encode
nom_utilisateur:mot_de_passeen Base64. Note : ce n'est PAS du chiffrement, juste de l'encodage. - Chaînes binaires courtes dans les URL — La variante Base64URL remplace + par - et / par _, et supprime le padding =. Sûr pour les paramètres de requête URL.
- Stocker du binaire dans du JSON — Le JSON ne peut pas contenir d'octets bruts. Encodez en Base64, stockez comme chaîne, décodez à l'autre bout.
❌ Mauvaises utilisations du Base64
- Chiffrement — Le Base64 est un encodage, pas un chiffrement. Sécurité nulle. N'importe qui peut le décoder. « Chiffrement Base64 » est une expression alarmante.
- Gros fichiers — Encoder un fichier de 10 Mo en Base64 produit une chaîne texte d'environ 13,3 Mo. Ce surcoût de 33% s'accumule. Utilisez le transfert binaire pour les gros volumes.
- Stockage en base de données — Stocker des images en Base64 dans une colonne de base de données est courant mais généralement mauvais. 33% plus volumineux, impossible à interroger, impossible à afficher sans décodage. Stockez des blobs binaires ou utilisez un stockage d'objets.
- Compression — Le Base64 agrandit les données, ne les réduit pas. Si vous essayez de réduire la taille, compressez d'abord (gzip/brotli), puis encodez en Base64 le résultat compressé.
4 Endroits Où Vous Rencontrez le Base64 Chaque Jour
1. Pièces Jointes Email (MIME)
Chaque pièce jointe que vous avez envoyée ou reçue a été encodée en Base64. SMTP a été conçu en 1982 pour le texte ASCII 7 bits. Le Base64 convertit votre PDF, image ou ZIP en caractères 7 bits sûrs qui survivent à n'importe quel serveur email dans le monde.
2. JSON Web Tokens (JWTs)
Un JWT ressemble à eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNGl1HaS3d4-ZEJVhM6Q0m0sRgFPah28vY7Fgzg. Les trois sections séparées par des points sont du JSON encodé en Base64URL (en-tête, payload, signature). Notre Décodeur JWT décode ces sections pour que vous puissiez inspecter ce qu'elles contiennent.
3. Data URIs en CSS et HTML
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0i...);
Cela intègre un SVG directement dans le CSS. Pas de fichier séparé, pas de requête HTTP. Idéal pour les petites icônes et logos. Terrible pour les photos (grandes chaînes base64, contourne le cache). Pour les images, utilisez notre outil Image vers Base64.
4. Authentification HTTP Basic
Le navigateur envoie Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=. Cette chaîne se décode en nom_utilisateur:mot_de_passe. Encore une fois : PAS chiffré. N'importe qui sur le réseau peut le décoder. N'utilisez l'authentification Basic que sur HTTPS.
Comment Encoder/Décoder du Base64 Instantanément
Vous n'avez pas besoin d'écrire de code pour des tâches Base64 ponctuelles :
- Encodeur/Décodeur Base64 — Collez du texte et encodez/décodez instantanément. Gère le Base64 standard et Base64URL. Pas de compte, pas d'upload, fonctionne dans votre navigateur.
- Ligne de commande :
echo -n "hello" | base64(Linux/macOS) ou[Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("hello"))(PowerShell). - Console du navigateur :
btoa("hello")pour encoder,atob("aGVsbG8=")pour décoder.
Pour les images spécifiquement, utilisez notre outil Image vers Base64 pour convertir n'importe quelle image en data URI que vous pouvez coller directement dans du HTML ou CSS.