Décoder du Base64

Collez une chaîne Base64 et retrouvez le texte ou les octets d’origine. Les sauts de ligne, les caractères compatibles URL, le remplissage manquant et les préfixes data: sont gérés automatiquement, et les erreurs indiquent le caractère exact en cause.

Fonctionne entièrement dans votre navigateur. Aucune donnée n’est envoyée.

Mode d’emploi

  1. Collez la chaîne Base64 dans l’entrée, ou cliquez sur « Ouvrir un fichier » pour charger un fichier contenant du texte Base64.
  2. 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.
  3. Si le décodage échoue, lisez le message d’erreur : il indique la position du premier caractère non valide.
  4. 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 -----BEGIN et -----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 parContenu décodé
iVBORw0KGgoImage PNG
/9j/Image JPEG
R0lGODImage GIF
JVBERi0Document PDF
UEsDBArchive ZIP, y compris DOCX, XLSX et JAR
H4sIDonnées compressées avec gzip
eyJObjet 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 PNG ou PK vers 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

AlphabetA-Z a-z 0-9 + /
Taille de sortie4 caractères pour 3 octets (environ 133 %)
RemplissageComplété par = jusqu’à un multiple de 4 caractères
NormeRFC 4648, section 4
Sensible à la casseOui

Exemples

Entrée (UTF-8)Sortie
Hello, World!SGVsbG8sIFdvcmxkIQ==
Base64.isQmFzZTY0Lmlz
你好5L2g5aW9

Questions fréquentes

Pourquoi une erreur de caractère non valide s’affiche-t-elle ?
L’entrée contient un élément extérieur à l’alphabet Base64, comme des guillemets, une barre oblique inverse ou des séquences d’échappement telles que %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 ?
Oui. Le décodeur n’a pas besoin des signes = 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 ?
Lorsque du Base64 est placé dans une chaîne de requête sans échappement, le décodage des formulaires transforme souvent chaque + 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 ?
Utilisez Base64 en image pour afficher et télécharger des images, ou Base64 en fichier pour les PDF, les archives, les fichiers audio et les autres fichiers. Les deux outils détectent le type de fichier à partir de ses premiers octets.
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.