Encodeur / Décodeur Base64
Les développeurs rencontrent chaque jour des tâches d’encodage et de décodage Base64 : URI de données d’image, charges utiles d’API et pièces jointes en dépendent toutes. Le faire à la main, ou avec un outil peu fiable, entraîne souvent un padding cassé, des fichiers corrompus ou une sortie illisible. Un seul caractère erroné dans une chaîne encodée suffit à casser toute la charge utile. Traquer cette erreur fait perdre un temps qui pourrait être consacré à livrer.
Cet encodeur et décodeur Base64 gratuit gère le texte, les fichiers et les images directement dans votre navigateur. Aucun envoi vers un serveur, aucune inscription requise, et aucune donnée ne quitte jamais votre appareil. Basculez instantanément entre encodage et décodage, activez le mode compatible URL ou le retour MIME à la ligne, et validez n’importe quelle chaîne Base64 avec le Validateur intégré. Quel que soit ce que vous construisez, ce convertisseur Base64 fournit le bon résultat du premier coup.
Conversion Base64
Qu’est-ce que l’encodage Base64 ?
L’encodage Base64 est un schéma de conversion binaire vers texte qui transforme des données binaires en 64 caractères ASCII imprimables. Des octets bruts, images, fichiers, clés de chiffrement, tout cela devient une chaîne composée de A-Z, a-z, 0-9, ainsi que "+" et "/". Vous verrez aussi cette notion appelée base 64 encoding. L’outil lui-même est souvent désigné comme encodeur ou décodeur base 64.
Le décodage Base64 inverse le processus et reconvertit cette chaîne de texte en octets d’origine exacts. Les données encodées de cette manière restent intactes pendant le transport, ce qui a fait de Base64 le standard pour les pièces jointes e-mail et les charges utiles HTTP. Cette réversibilité est aussi précisément la raison pour laquelle Base64 n’est pas un chiffrement, une distinction expliquée plus loin dans ce guide.
Comment fonctionne l’encodage Base64
Base64 fonctionne en regroupant les données d’entrée par blocs de 3 octets (24 bits), puis en redécoupant chaque bloc en quatre groupes de 6 bits. Chaque groupe de 6 bits contient une valeur de 0 à 63, directement associée à l’un des 64 caractères de l’alphabet Base64. Lorsque le dernier bloc contient moins de 3 octets, le padding "=" complète l’espace restant. Cela garantit une longueur de sortie multiple de 4.
Voici un exemple concret : encoder le mot "Cat" en ASCII. Les 24 bits sont réorganisés en quatre valeurs de 6 bits, puis associées à des caractères Base64. Le tableau ci-dessous montre la conversion complète, octet par octet, pour que vous voyiez exactement comment le calcul fonctionne.
Élément | C | a | t |
|---|---|---|---|
| Valeur ASCII | 67 | 97 | 116 |
| Binaire sur 8 bits | 01000011 | 01100001 | 01110100 |
| Re-découpé en quatre groupes de 6 bits | 010000 | 110110 | 000101 / 110100 |
| Valeur décimale | 16 | 54 | 5 / 52 |
| Caractère Base64 | Q | 2 | F / 0 |
Résultat:Cat→Q2F0
Chaque groupe de 3 octets d’entrée devient exactement 4 caractères Base64. C’est pourquoi la sortie Base64 est toujours environ 33 % plus volumineuse que les données d’origine. Ce processus est formellement défini dans la RFC 4648, le standard Internet qui couvre Base64 et Base64URL. Ce surcoût est le prix à payer pour une compatibilité garantie ; MIME limite en plus les lignes Base64 à 76 caractères pour les systèmes de messagerie.
Comment utiliser cet encodeur/décodeur Base64
Cet encodeur et décodeur Base64 est conçu pour aller vite : aucun compte à créer, aucun logiciel à installer. Quatre onglets couvrent tous les usages : Texte, Fichier, Image et Validateur Base64 pour vérifier une chaîne avant de la décoder. Tout est traité localement dans votre navigateur, ce qui signifie que vos données ne touchent jamais un serveur.
- Choisissez un onglet : Texte pour les chaînes, Fichier pour les fichiers binaires (encoder ou décoder), Image pour PNG/JPEG/GIF/SVG/WebP, ou Validateur Base64 pour vérifier une chaîne.
- Dans les onglets Texte et Image, sélectionnez Encoder ou Décoder avec les boutons radio.
- Collez votre texte ou votre chaîne Base64 dans la zone de saisie, ou glissez-déposez un fichier ou une image dans la zone d’import.
- Activez Compatible URL (Base64URL) pour les jetons et URL, ou Retour MIME toutes les 76 colonnes pour une sortie e-mail (onglets Texte et Fichier).
- Cliquez sur Encoder, Décoder ou Valider : le résultat, l’aperçu ou l’état de validation apparaît instantanément.
Une fois que vous cliquez sur Encoder ou Décoder, la zone de sortie se met à jour immédiatement avec votre résultat. Le texte encodé se compose toujours de A-Z, a-z, 0-9, ainsi que "+", "/" et du padding "=". Si vous voyez d’autres caractères, l’entrée n’était pas du Base64 valide ; utilisez l’onglet Validateur pour le confirmer avant de décoder. Revenir à un texte lisible, autrement dit une conversion base64 vers texte, fonctionne de la même façon : collez, cliquez sur Décoder, puis copiez.
Exemples concrets
Des exemples à un seul mot ne montrent pas comment l’encodage et le décodage Base64 se comportent avec de vraies entrées. Le tableau ci-dessous parcourt cinq scénarios courants, d’une courte chaîne à un segment de jeton compatible URL. Vous saurez exactement à quoi vous attendre avec vos propres données. Tous les exemples ci-dessous utilisent l’alphabet Base64 standard avec une entrée UTF-8, qui est la valeur par défaut de cet outil.
Scénario | Entrée | Sortie Base64 |
|---|---|---|
| Texte simple | Hello | SGVsbG8= |
| Charge JSON | {"id":1} | eyJpZCI6MX0= |
| Caractères spéciaux / accents | café! | Y2Fmw6kh |
| Segment de jeton compatible URL (Base64URL, sans padding) | {"sub":"123"} | eyJzdWIiOiIxMjMifQ |
| Image (PNG, tronquée pour l’affichage) | octets binaires PNG | data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA... |
Remarquez que l’exemple compatible URL utilise un encodage Base64URL sans padding "=", tandis que l’exemple JSON utilise du Base64 standard avec padding intact. Base64URL remplace "+" par "-" et "/" par "_" exactement pour cette raison. Il circule sans risque dans les URL, cookies et en-têtes HTTP, où "+" et "/" peuvent poser problème. C’est pourquoi les jetons d’authentification, identifiants de session et autres données embarquées dans une URL utilisent presque toujours la variante compatible URL.
Convertir Base64 en image et image en Base64
Les images représentent un cas d’usage très courant pour Base64. Les développeurs les encodent pour les intégrer directement dans du CSS, du HTML ou du JSON sans requête de fichier séparée. Importez une image pour obtenir une URI de données Base64, ou collez une chaîne Base64 pour télécharger le résultat décodé. Les formats pris en charge sont PNG, JPEG, GIF, SVG et WebP.
Convertir une image en Base64 produit une URI de données comme data:image/png;base64,iVBORw0KGgo... que vous pouvez placer directement dans un attribut src ou une propriété CSS background-image. Reconvertir du Base64 en image fonctionne à l’inverse. Collez la chaîne encodée, et l’outil la décode, affiche un aperçu en direct et vous propose un téléchargement en un clic. Cet aller-retour est particulièrement utile lorsqu’une réponse API renvoie des données d’image sous forme de chaîne Base64 plutôt que de fichier binaire.
Base64 en code : JavaScript, Python et Go
La plupart des développeurs n’ont pas seulement besoin d’une conversion ponctuelle ; ils doivent reproduire la même logique Base64 dans leur propre application. Les extraits ci-dessous couvrent les trois langages les plus courants pour encoder et décoder du texte. Chaque exemple utilise "Hello, world!", avec une sortie identique à celle produite par cet outil.
JavaScript (navigateur)
// Encode
const encoded = btoa("Hello, world!");
console.log(encoded); // SGVsbG8sIHdvcmxkIQ==
// Decode
const decoded = atob(encoded);
console.log(decoded); // Hello, world!Python
import base64
encoded = base64.b64encode(b"Hello, world!")
print(encoded.decode()) # SGVsbG8sIHdvcmxkIQ==
decoded = base64.b64decode(encoded)
print(decoded.decode()) # Hello, world!Go
package main
import (
"encoding/base64"
"fmt"
)
func main() {
encoded := base64.StdEncoding.EncodeToString([]byte("Hello, world!"))
fmt.Println(encoded) // SGVsbG8sIHdvcmxkIQ==
decoded, _ := base64.StdEncoding.DecodeString(encoded)
fmt.Println(string(decoded)) // Hello, world!
}L’encodage et le décodage Base64 en JavaScript passent par btoa() et atob(), disponibles nativement dans tous les navigateurs. Ils gèrent toutefois correctement uniquement le texte Latin1 ; pour une prise en charge UTF-8 complète, comme les emoji ou les caractères accentués, encodez d’abord avec TextEncoder. En Node.js, utilisez Buffer.from(str).toString('base64') pour encoder et Buffer.from(b64, 'base64').toString() pour décoder. Python et Go utilisent leurs bibliothèques standard et gèrent UTF-8 nativement.
Le Base64 est-il un chiffrement ? (Sécurité et confidentialité)
Non : Base64 est un encodage, pas un chiffrement symétrique, et cette différence compte plus que beaucoup de développeurs ne le pensent. L’encodage est entièrement réversible par conception. Toute personne disposant de la chaîne Base64 peut la décoder en données d’origine en quelques secondes, sans clé ni mot de passe. Si vous devez protéger des données sensibles, Base64 seul n’offre aucune confidentialité.
Cela compte surtout dans les contextes d’authentification, où les jetons d’accès et identifiants de session sont souvent encodés en Base64 mais non chiffrés. Traitez toute chaîne Base64 comme du texte brut. N’y placez pas de secrets, mots de passe ou clés privées à moins qu’ils ne soient d’abord chiffrés. Pour une véritable confidentialité, notre outil Chiffrement / Déchiffrement AES gère le chiffrement et le déchiffrement AES directement dans votre navigateur.
Côté confidentialité, cet outil fonctionne entièrement côté client dans votre navigateur. Les conversions de texte, fichier et image ne sont jamais envoyées vers un serveur. Les charges utiles sensibles, jetons d’API, contenus internes de fichier ou identifiants que vous déboguez restent sur votre machine en permanence. Si vous vérifiez des signatures API ou des charges webhook, notre Générateur HMAC génère une sortie HMAC-SHA256 que vous pouvez inspecter ici.
Erreurs Base64 courantes et comment les corriger
Les erreurs Base64 se résument presque toujours à l’un de ces trois problèmes, et chacun possède une correction rapide. Reconnaître le motif vous évite de revérifier toute l’entrée alors que le souci est souvent très simple.
Erreur | Cause | Correctif |
|---|---|---|
| "Caractère invalide" | L’entrée contient des caractères hors de A-Z, a-z, 0-9, +, /, = | Supprimez les espaces, retours à la ligne ou guillemets parasites avant le décodage |
| "Padding incorrect" / longueur non multiple de 4 | Un ou plusieurs caractères finaux "=" ont été perdus ou tronqués | Ajoutez des "=" jusqu’à ce que la longueur soit un multiple de 4 |
| La sortie décodée est illisible | Mauvais jeu de caractères sélectionné, ou la chaîne utilisait Base64URL au lieu du Base64 standard | Passez le jeu de caractères en UTF-8, ou remplacez "-"/"_" par "+"/"/" avant de décoder |
Si votre chaîne provient d’une URL, d’un cookie ou d’un jeton d’authentification, c’est presque certainement du Base64URL plutôt que du Base64 standard. C’est le cas de la ligne « mauvais jeu de caractères » ci-dessus. Cet outil détecte automatiquement les deux variantes, donc coller un segment de jeton ou une chaîne compatible URL se décode correctement sans conversion manuelle. Si vous ne savez pas si une chaîne est du Base64 valide, l’onglet Validateur Base64 vous le dit immédiatement.
Base64 face aux autres encodages
Base64 n’est pas le seul schéma binaire-vers-texte, et choisir le bon dépend de l’endroit où la sortie sera utilisée. Le tableau ci-dessous compare Base64 avec les deux encodages avec lesquels les développeurs le confondent le plus souvent.
Encodage | Jeu de caractères | Surcoût de taille | Idéal pour |
|---|---|---|---|
| Base64 | 64 caractères (A-Z, a-z, 0-9, +, /) | ~33 % plus volumineux | JSON, XML, e-mail (MIME), URI de données |
| Base64URL | 64 caractères (A-Z, a-z, 0-9, -, _) | ~33 % plus volumineux | URL, cookies, jetons d’authentification, en-têtes HTTP |
| Hexadécimal | 16 caractères (0-9, A-F) | 100 % plus volumineux | Hachages, sommes de contrôle, débogage bas niveau |
| Encodage URL (percent-encoding) | ASCII + séquences "%XX" | Variable selon le contenu | Chaînes de requête, données de formulaire |
L’hexadécimal est plus lisible pour les hachages courts, mais double la taille de sortie, ce qui le rend peu pratique pour les gros fichiers. L’encodage URL standard est conçu pour les chaînes de requête, pas pour les données binaires. C’est pourquoi Base64, et Base64URL en particulier, est devenu le choix par défaut pour toute donnée binaire devant transiter dans une URL. Pour l’encodage percent dans les query strings, notre outil Encodeur / Décodeur URL est plus adapté ; pour les hachages SHA-256 ou MD5, notre Générateur de hachage couvre tous les principaux algorithmes.
Questions fréquentes
Foire aux questions