🔡
Outils de développement
May 21, 20267 min readBy BrowseryTools Team

Qu'est-ce que l'encodage Base64 ? Un guide complet avec exemples

Découvrez ce qu'est l'encodage Base64, pourquoi il existe, où il est utilisé, et comment encoder et décoder des chaînes Base64 instantanément dans votre navigateur — sans aucun outil à installer.

base64encodagedéveloppeurbinaireformats de données

Ouvrez n'importe quelle application web moderne, inspectez une requête HTTP, jetez un œil à un manifeste Kubernetes ou regardez à l'intérieur d'un jeton JWT — le Base64 est partout. C'est l'un de ces schémas d'encodage fondamentaux que les développeurs rencontrent constamment sans jamais s'arrêter pour le comprendre pleinement. Ce guide explique ce qu'est le Base64, comment il fonctionne au niveau des octets, où il est utilisé dans les systèmes du monde réel, et quand vous devriez (et ne devriez pas) y avoir recours.

Vous pouvez encoder et décoder n'importe quelle chaîne Base64 instantanément à l'aide de l' Encodeur/Décodeur Base64 de BrowseryTools — gratuit, sans inscription, et rien ne quitte jamais votre navigateur.

Pourquoi le Base64 existe-t-il ?

Pour comprendre le Base64, vous devez comprendre le problème qu'il résout. Aux débuts d'Internet, de nombreux protocoles de communication — en particulier la messagerie — étaient conçus autour du texte ASCII 7 bits. L'ASCII définit 128 caractères en utilisant 7 bits par caractère. Les données binaires (images, documents, exécutables) utilisent les 8 bits par octet, produisant des valeurs d'octets qui n'avaient aucune représentation ASCII et que les systèmes plus anciens auraient écartées, altérées ou interprétées comme des commandes de contrôle.

La norme MIME (Multipurpose Internet Mail Extensions), introduite en 1991 pour permettre à la messagerie de transporter des pièces jointes, avait besoin d'un moyen de transmettre des données binaires arbitraires à travers ces canaux propres à 7 bits. La solution consistait à ré-encoder les données binaires en utilisant uniquement un sous-ensemble sûr de caractères ASCII imprimables — un sur lequel chaque système était d'accord et qu'il transmettrait fidèlement. Le Base64 est devenu l'encodage standard à cette fin, et le nom décrit l'approche : utiliser un ensemble de 64 caractères sûrs pour représenter n'importe quelle donnée binaire.

L'alphabet de 64 caractères

Le Base64 utilise exactement 64 caractères, c'est pourquoi 6 bits d'entrée peuvent toujours être représentés par un caractère Base64 (26 = 64). L'alphabet standard défini dans la RFC 4648 est :

  • Les lettres majuscules A à Z — valeurs de 0 à 25
  • Les lettres minuscules a à z — valeurs de 26 à 51
  • Les chiffres 0 à 9 — valeurs de 52 à 61
  • + — valeur 62
  • / — valeur 63

Un 65e caractère — le signe égal = — est utilisé comme remplissage mais ne représente pas de données. Le remplissage garantit que la longueur de la sortie encodée est toujours un multiple de 4 caractères, ce qui simplifie le décodage.

Comment fonctionne l'encodage Base64 : 3 octets → 4 caractères

Le Base64 fonctionne en prenant 3 octets d'entrée (24 bits) et en les divisant en quatre groupes de 6 bits. Chaque groupe de 6 bits correspond à un caractère de l'alphabet Base64. Comme 3 octets deviennent 4 caractères, l'encodage Base64 augmente la taille des données d'exactement un tiers (33 %).

Parcourons un exemple concret : l'encodage de la chaîne ASCII "Man".

Étape 1 — Convertir chaque caractère en sa valeur d'octet ASCII puis en binaire :

  • M = ASCII 77 = 01001101
  • a = ASCII 97 = 01100001
  • n = ASCII 110 = 01101110

Étape 2 — Concaténer les 24 bits en un seul flux :

01001101 01100001 01101110
↓ (concatenate all 24 bits)
010011 010110 000101 101110

Étape 3 — Faire correspondre chaque groupe de 6 bits à l'alphabet Base64 :

Groupe de 6 bitsValeur décimaleCaractère Base64
01001119T
01011022W
0001015F
10111046u

L'encodage Base64 de "Man" est TWFu. Vous pouvez le vérifier à l'aide de l' outil Base64 de BrowseryTools. Lorsque la longueur de l'entrée n'est pas un multiple de 3, des caractères de remplissage (= ou ==) sont ajoutés pour amener la sortie à un multiple de 4 caractères. Par exemple, "Ma" s'encode en TWE= et "M" s'encode en TQ==.

Idée reçue courante : le Base64 est un encodage, pas un chiffrement. Le processus est complètement réversible par quiconque, sans aucune clé ni mot de passe. Voir des données encodées en Base64 dans une URL, un en-tête ou un fichier ne signifie pas que ces données sont protégées de quelque façon que ce soit — c'est simplement une représentation différente des mêmes octets. Quiconque peut copier la chaîne peut la décoder instantanément.

Cas d'usage courants

Intégrer des images dans le HTML et le CSS

Plutôt que de faire une requête HTTP distincte pour une petite image ou une icône, vous pouvez l'intégrer directement dans votre HTML ou votre CSS sous forme de data URI. Le navigateur décode la chaîne Base64 et affiche l'image sans aller-retour réseau. C'est utile pour de petites ressources comme les favicons, les indicateurs de chargement, ou les icônes en ligne dans les modèles d'e-mails où le chargement d'URL externes peut être bloqué.

/* CSS example — embedding a small PNG icon */
.icon {
  background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA...');
}

Données binaires dans les API JSON

JSON est un format texte. Si une API doit transmettre des données binaires — un fichier, une clé cryptographique, une signature, une image — à l'intérieur d'une charge utile JSON, elle ne peut pas inclure d'octets bruts. Encoder les données binaires en Base64 les transforme en une chaîne de texte que JSON peut transporter sans problème. De nombreuses API qui renvoient du contenu de fichier, des échantillons audio ou des images dans des réponses JSON utilisent cette approche.

Authentification HTTP Basic

Le schéma HTTP Basic Auth envoie les identifiants dans l'en-tête Authorization sous forme d'encodage Base64 de username:password. Par exemple, les identifiants admin:secret deviennent la chaîne YWRtaW46c2VjcmV0, et l'en-tête complet ressemble à :

Authorization: Basic YWRtaW46c2VjcmV0

Ce n'est pas chiffré — c'est juste encodé. Basic Auth doit toujours être utilisé sur HTTPS, jamais sur du HTTP en clair, car les identifiants peuvent être décodés trivialement par quiconque intercepte la requête.

Charges utiles JWT

Les jetons web JSON encodent leur en-tête et leur charge utile à l'aide de Base64URL (une variante adaptée aux URL décrite ci-dessous). Les revendications du jeton — identifiant d'utilisateur, heure d'expiration, rôles — sont stockées dans la charge utile sous forme d'objet JSON encodé en Base64URL. Là encore, ce n'est pas du chiffrement : la charge utile est entièrement lisible par quiconque possède le jeton.

Secrets Kubernetes

Kubernetes stocke les valeurs de Secret sous forme de chaînes encodées en Base64 dans les manifestes YAML. Voici un exemple réel d'un Secret Kubernetes :

apiVersion: v1
kind: Secret
metadata:
  name: db-credentials
type: Opaque
data:
  username: YWRtaW4=
  password: cGFzc3dvcmQxMjM=

Pour savoir ce que sont réellement ces valeurs, collez YWRtaW4= dans le Décodeur Base64 de BrowseryTools. Le résultat est admin. Collez cGFzc3dvcmQxMjM= et vous obtenez password123. Kubernetes encode en Base64 les valeurs de secret pour un formatage YAML sûr, et non pour la sécurité — la sécurité réelle provient du RBAC de Kubernetes et du chiffrement au repos, pas de l'encodage lui-même.

La variante Base64URL

Le Base64 standard utilise deux caractères qui sont spéciaux dans les URL : + (qui signifie espace dans l'encodage de formulaire) et / (qui est un séparateur de chemin). Lorsque des données encodées en Base64 doivent apparaître dans une URL, un paramètre de requête ou un nom de fichier, ces caractères posent problème.

Le Base64URL résout cela en substituant :

  • + est remplacé par - (trait d'union)
  • / est remplacé par _ (tiret bas)
  • Le remplissage = de fin est souvent omis

Le Base64URL est utilisé dans les JWT, les jetons OAuth et tout contexte où la chaîne encodée doit survivre à une transmission par URL sans encodage pour cent. L' outil Base64 de BrowseryTools prend en charge à la fois les variantes standard et adaptées aux URL.

Quand NE PAS utiliser le Base64

Le Base64 est le bon outil dans des situations spécifiques, mais il est fréquemment mal utilisé. Voici quand vous devriez l'éviter :

  • Les fichiers volumineux : le Base64 augmente la taille des données d'environ 33 %. Une image de 10 Mo devient environ 13,3 Mo une fois encodée en Base64. Intégrer de gros fichiers sous forme de data URI ou de chaînes Base64 dans du JSON ralentit l'analyse, augmente l'utilisation de la mémoire et gaspille de la bande passante. Utilisez des transferts de fichiers directs ou des URL de stockage d'objets pour tout ce qui a une taille non négligeable.
  • La sécurité : n'utilisez jamais le Base64 comme mesure de sécurité. Il n'offre aucune confidentialité. Si des données sont sensibles, utilisez un véritable chiffrement (AES-GCM, RSA, etc.).
  • Le stockage : stocker des données binaires en Base64 dans une colonne de base de données gaspille 33 % d' espace de plus que de stocker les octets bruts dans une colonne binaire. Utilisez des types binaires natifs de la base de données (BYTEA dans PostgreSQL, BLOB dans MySQL) lors du stockage de données binaires à grande échelle.

Base64 contre encodage hexadécimal : une comparaison

PropriétéBase64Hexadécimal (Base16)
Jeu de caractèresA–Z, a–z, 0–9, +, / (64 caractères)0–9, a–f (16 caractères)
Surcoût de taille~33 % plus grand~100 % plus grand (2 caractères par octet)
Lisibilité humaineFaible — non reconnaissableModérée — lisible au niveau de l'octet
Cas d'usage courantsPièces jointes d'e-mails, JWT, data URI, charges utiles d'APIEmpreintes cryptographiques, sommes de contrôle, codes couleur, adresses MAC
Compatible avec les URL ?Uniquement avec la variante Base64URLOui — tous les caractères sont compatibles avec les URL
Bits par caractère6 bits4 bits

Utilisez le Base64 lorsque vous avez besoin d'un encodage binaire-vers-texte compact et que la largeur du jeu de caractères ne crée pas de problèmes. Utilisez l'hexadécimal lorsque l'inspection humaine des valeurs d'octets individuelles importe — les empreintes de hachage, les sommes de contrôle et les sorties cryptographiques sont traditionnellement affichées en hexadécimal précisément parce que chaque caractère hexadécimal correspond directement à 4 bits, rendant les limites des octets trivialement visibles.

Encoder et décoder du Base64 en code

La plupart des langages fournissent une prise en charge intégrée du Base64. Voici de rapides instructions en une ligne pour des environnements courants :

// JavaScript (browser or Node.js)
btoa("Hello, World!")         // → "SGVsbG8sIFdvcmxkIQ=="
atob("SGVsbG8sIFdvcmxkIQ==") // → "Hello, World!"

# Python
import base64
base64.b64encode(b"Hello, World!")         # → b'SGVsbG8sIFdvcmxkIQ=='
base64.b64decode(b"SGVsbG8sIFdvcmxkIQ==") # → b'Hello, World!'

# Bash
echo -n "Hello, World!" | base64
echo "SGVsbG8sIFdvcmxkIQ==" | base64 --decode

Pour un encodage ou un décodage rapide et ponctuel sans écrire de code, l' outil Base64 de BrowseryTools est l'option la plus rapide — collez votre chaîne, choisissez encoder ou décoder, et le résultat apparaît instantanément. Rien n'est envoyé à un serveur.

Garantie de confidentialité : l'encodeur et le décodeur Base64 de BrowseryTools traite tout localement dans votre navigateur en utilisant JavaScript. Si vous encodez des données sensibles — clés d'API, secrets, configuration privée — elles ne touchent jamais un serveur. Vos données restent sur votre appareil.

Encodez et décodez du Base64 instantanément

Que vous décodiez un secret Kubernetes, inspectiez une charge utile JWT, créiez un data URI pour une image en ligne, ou soyez simplement curieux de savoir ce que contient une chaîne Base64 — l' Encodeur/Décodeur Base64 de BrowseryTools gère cela en un seul clic. Collez votre entrée, obtenez votre sortie. Pas de publicités, pas d'inscription, aucune donnée ne quitte votre appareil.

Encodeur / Décodeur Base64 gratuit — s'exécute à 100 % dans votre navigateur

Ouvrir l'outil Base64 →

🛠️

Try the Tools — 100% Free, No Sign-Up

Everything runs in your browser. No uploads. No accounts. No ads.

Explore All Tools →