Encodage Base64 Expliqué Ce que c'est, ce que ce n'est pas, et quand l'utiliser
Si vous avez déjà vu un mur de lettres comme SGVsbG8gV29ybGQ= et supposé que c'était chiffré — vous n'êtes pas seul. Base64 est l'un des outils les plus mal compris dans la boîte à outils d'un développeur. C'est pas chiffrement. Cela ne protège pas vos données. Cela rend simplement les données binaires sûres pour voyager à travers des systèmes textuels uniquement.
Ce que Base64 est réellement
Base64 est un schéma d'encodage qui convertit les données binaires en une chaîne de 64 caractères ASCII imprimables : A–Z, a–z, 0–9, +, et /. Le nom vient de cette taille d'ensemble de caractères — 64 symboles, chacun représentant 6 bits de données.
Chaque 3 octets d'entrée (24 bits) correspond à 4 caractères Base64 (4 × 6 bits = 24 bits). Si la longueur d'entrée n'est pas divisible par 3, = les caractères de remplissage remplissent le groupe final. C'est pourquoi vous voyez souvent un ou deux signes égaux à la fin d'une chaîne Base64.
Pourquoi cela existe
Certains canaux ont été construits strictement pour le texte. Les anciens protocoles de courrier électronique (SMTP), les en-têtes HTTP, les charges utiles JSON et les attributs HTML ont tous des restrictions sur les octets qu'ils peuvent transporter sans mauvaise interprétation. Un fichier binaire brut passé par ces canaux peut être corrompu — octets nuls supprimés, terminaisons de ligne transformées, caractères de contrôle déclenchant un comportement involontaire.
Base64 contourne tout cela. En convertissant le binaire en un ensemble prévisible de caractères imprimables, vous pouvez intégrer en toute sécurité des images dans des URI de données CSS, joindre des fichiers aux e-mails, insérer des jetons dans les en-têtes HTTP et inclure des charges utiles binaires dans JSON. Le compromis : les données codées sont environ 33% plus grandes que l'original.
Comment fonctionne l'encodage (la version courte)
Prenez la chaîne Man. En octets ASCII: 77 97 110. En binaire: 01001101 01100001 01101110. Diviser en groupes de 6 bits: 010011 010110 000101 101110. Mapper chacun à l'alphabet Base64: T W F u → TWFu.
Le remplissage s'active quand il y a des octets restants. Un octet restant produit deux caractères Base64 plus ==. Deux octets restants produisent trois caractères plus =.
Base64 n'est pas de la sécurité
Cela vaut la peine de le répéter. Base64 est réversible par quiconque disposant d'un décodeur — aucune clé requise, aucun mot de passe nécessaire. L'utiliser pour « masquer » des mots de passe, des jetons ou des données sensibles dans le code côté client offre zéro protection. Les attaquants savent à quoi ressemble Base64. Le signe égal final = est révélateur.
Si vous avez besoin de protéger les données au repos, utilisez le chiffrement approprié (AES-256). Si vous avez besoin de protéger les données en transit, utilisez TLS. Base64 est une commodité de transport, pas une couche de sécurité.
Quand utiliser Base64
- URI de données — intégrez les images directement en HTML ou CSS:
src="data:image/png;base64,iVBOR..." - En-têtes d'authentification de base — L'authentification HTTP Basic encode
username:passworden Base64 dans l'Authorizationen-tête (nécessite toujours HTTPS pour la sécurité réelle) - JWT — Les JSON Web Tokens utilisent Base64URL pour encoder les sections d'en-tête et de charge utile
- Charges utiles binaires en JSON/XML — quand une API ou un format de message ne parle que du texte
- Pièces jointes d’e-mail — L'encodage MIME utilise Base64 pour les parties de fichier binaire
Pour un encodage et un décodage rapides dans votre navigateur, le encodeur/décodeur Base64 IO Tools gère les variantes standard et sûres pour les URL sans rien installer.
Encodage et décodage en pratique
Python
import base64
# Encode
encoded = base64.b64encode(b"Hello, World!")
print(encoded) # b'SGVsbG8sIFdvcmxkIQ=='
# Decode
decoded = base64.b64decode(b"SGVsbG8sIFdvcmxkIQ==")
print(decoded) # b'Hello, World!'
Bash
# Encode
echo -n "Hello, World!" | base64
# SGVsbG8sIFdvcmxkIQ==
# Decode
echo "SGVsbG8sIFdvcmxkIQ==" | base64 --decode
# Hello, World!
JavaScript (Navigateur et Node.js)
// Encode (browser)
const encoded = btoa("Hello, World!");
console.log(encoded); // SGVsbG8sIFdvcmxkIQ==
// Decode (browser)
const decoded = atob("SGVsbG8sIFdvcmxkIQ==");
console.log(decoded); // Hello, World!
// Node.js
const enc = Buffer.from("Hello, World!").toString("base64");
const dec = Buffer.from(enc, "base64").toString("utf8");
Note: btoa et atob ne traitent que les caractères Latin-1 dans les navigateurs. Pour les chaînes Unicode, convertissez d'abord en une représentation d'octets en utilisant TextEncoder.
Base64 standard vs sûr pour les URL
Base64 standard utilise + et / — les deux caractères avec une signification spéciale dans les URL et les chaînes de requête. Base64 sûr pour les URL les échange pour éviter des tracas d'encodage:
| Propriété | Base64 standard | Base64 sûr pour les URL |
|---|---|---|
| Ensemble de caractères | A–Z, a–z, 0–9, +, / | A–Z, a–z, 0–9, -, _ |
| Rembourrage | = (obligatoire) | = (souvent omis) |
| Sûr pour les URL ? | Non — + et / doit être encodé en pourcentage | Oui — sûr dans les URL et les noms de fichiers |
| Utilisation courante | E-mail, MIME, encodage général | JWT, jetons OAuth, paramètres d'URL |
En Python, utilisez base64.urlsafe_b64encode() pour la sortie sûre pour les URL. Les JWT éliminent spécifiquement le remplissage final = — ce qui est correct, car le décodeur peut l'inférer de la longueur de la chaîne.
L'essentiel pratique
Base64 résout un problème spécifique et bien défini : déplacer les données binaires à travers des canaux textuels uniquement sans corruption. Il fait ce travail bien. Il ne protège pas les données, ne les compresse pas et ne les valide pas. Quand vous avez besoin d'encoder ou décoder des données en base64 — qu'il s'agisse d'une image, d'un jeton ou d'un blob binaire — maintenant vous savez exactement ce que vous faites et pourquoi. Utilisez le bon outil pour le bon travail, et ayez recours au chiffrement chaque fois que la sécurité est vraiment l'objectif.
Vous aimerez peut-être aussi
Installez nos extensions
Ajoutez des outils IO à votre navigateur préféré pour un accès instantané et une recherche plus rapide
恵 Le Tableau de Bord Est Arrivé !
Tableau de Bord est une façon amusante de suivre vos jeux, toutes les données sont stockées dans votre navigateur. D'autres fonctionnalités arrivent bientôt !
Outils essentiels
Tout voir Nouveautés
Tout voirMise à jour: Notre dernier outil a été ajouté le Avr 14, 2026
