Mode d’emploi
- Collez la chaîne Base64 dans l’entrée, ou cliquez sur « Ouvrir un fichier » pour charger un fichier contenant du texte Base64.
- Gardez la sortie Texte et choisissez le jeu de caractères dans « Encodage du texte » (UTF-8 par défaut), ou passez la sortie en Hexa pour des données binaires.
- Si le décodage échoue, lisez le message d’erreur : il indique la position du premier caractère non valide.
- Copiez le résultat décodé ou téléchargez-le.
Ce que le décodeur accepte
Le décodage inverse l’encodage : chaque caractère est ramené à sa valeur de 6 bits, et chaque groupe de quatre caractères redevient trois octets. Le Base64 rencontré en pratique est rarement propre, c’est pourquoi ce décodeur se montre tolérant :
- Les espaces et les sauts de ligne sont ignorés : vous pouvez coller tels quels des corps MIME découpés en lignes et des blocs PEM. Supprimez toutefois d’abord les lignes
-----BEGINet-----END: leurs lettres et leurs tirets sont des caractères Base64 valides et seraient décodés comme des données. - L’entrée compatible URL, avec
-et_, se décode exactement comme le Base64 standard avec+et/. - L’absence de remplissage ne pose aucun problème. Seule une longueur de 4n + 1 caractères est refusée, car un unique caractère restant ne peut pas former un octet ; cela signifie généralement que la chaîne a été tronquée.
- Les data URI fonctionnent aussi : un préfixe
data:...;base64,en tête est supprimé avant le décodage.
Sortie texte ou binaire
Le décodage produit toujours une suite d’octets. Si l’original était du texte, gardez la sortie Texte et choisissez son jeu de caractères. S’il s’agissait d’une image, d’un PDF, d’une archive, d’une clé ou d’un texte chiffré, aucun jeu de caractères ne le rendra lisible : passez la sortie en Hexa pour examiner les octets, ou ouvrez Base64 en fichier ou Base64 en image pour l’afficher et l’enregistrer. Les premiers caractères trahissent souvent le contenu :
| Le Base64 commence par | Contenu décodé |
|---|---|
iVBORw0KGgo | Image PNG |
/9j/ | Image JPEG |
R0lGOD | Image GIF |
JVBERi0 | Document PDF |
UEsDB | Archive ZIP, y compris DOCX, XLSX et JAR |
H4sI | Données compressées avec gzip |
eyJ | Objet JSON, comme un en-tête JWT |
Pourquoi le texte décodé est illisible
- Mauvais jeu de caractères. Un texte UTF-8 lu comme du Windows-1252 transforme é en
é, et un texte GBK ou Shift_JIS lu comme de l’UTF-8 affiche des caractères de remplacement (�). Sélectionnez le jeu de caractères dans lequel le texte a été écrit. - Données binaires. Des symboles aléatoires avec, çà et là, un fragment lisible comme
PNGouPKvers le début indiquent que le contenu est un fichier et non du texte. - Données compressées ou chiffrées. Les flux gzip, les Protocol Buffers et les textes chiffrés se décodent correctement, mais ce ne sont pas du texte. La sortie Hexa montre ce qu’ils contiennent réellement.
- Double encodage. Si la sortie est elle-même du Base64, collez-la de nouveau dans l’entrée et décodez-la une seconde fois.
Décoder du Base64 dans le code
# Python
base64.b64decode(s).decode('utf-8')
// Node.js (accepte aussi l’entrée compatible URL)
Buffer.from(s, 'base64').toString('utf8')
// Navigateur : atob() renvoie un caractère par octet, il faut donc décoder l’UTF-8 ensuite
new TextDecoder().decode(Uint8Array.from(atob(s), c => c.charCodeAt(0)))
# Shell Linux et macOS
echo 'SGVsbG8=' | base64 --decode
Spécifications
| Alphabet | A-Z a-z 0-9 + / |
|---|---|
| Taille de sortie | 4 caractères pour 3 octets (environ 133 %) |
| Remplissage | Complété par = jusqu’à un multiple de 4 caractères |
| Norme | RFC 4648, section 4 |
| Sensible à la casse | Oui |
Exemples
| Entrée (UTF-8) | Sortie |
|---|---|
Hello, World! | SGVsbG8sIFdvcmxkIQ== |
Base64.is | QmFzZTY0Lmlz |
你好 | 5L2g5aW9 |
Questions fréquentes
Pourquoi une erreur de caractère non valide s’affiche-t-elle ?
%2B et %3D copiées depuis une URL. Supprimez les guillemets ou appliquez d’abord un décodage URL à la chaîne. Le message d’erreur indique la position du premier caractère fautif.Peut-on décoder du Base64 sans remplissage ?
= finaux : les chaînes sans remplissage issues de JWT, d’URL ou d’API se décodent normalement.Pourquoi le résultat est-il faux après avoir copié du Base64 depuis une URL ?
+ en espace. Comme les espaces sont ignorés ici, ces caractères sont perdus. Remplacez les espaces par + avant de décoder, et utilisez Base64URL pour les valeurs transmises dans des URL.Comment décoder du Base64 en image ou en fichier ?
Mon Base64 est-il envoyé à un serveur ?
Non. Le décodage s’exécute dans votre navigateur, en JavaScript, et l’entrée ne quitte jamais votre appareil, ce qui compte lorsque vous décodez des jetons, des secrets de configuration ou des données personnelles.