Décoder du Base64 : texte, images et JWT (gratuit)

Par • 30 Octobre, 2026 • Outils pour développeurs • 12 minutes de lecture

Décodez une chaîne Base64 en quelques secondes : exemples réels (texte, images, JWT, Basic Auth), causes des caractères bizarres et solutions.

Pour décoder du Base64, collez la chaîne encodée dans un décodeur Base64 et lisez le résultat : SGVsbG8sIHdvcmxkIQ== devient Hello, world!. Notre décodeur Base64 gratuit le fait en un clic dans n'importe quel navigateur, et l'outil Base64 vers image affiche les images encodées. Le décodeur accepte le Base64 « URL-safe », un préfixe data: collé et l'absence de remplissage, et affiche une erreur si l'entrée n'est pas du Base64. Si le résultat reste une suite de symboles bizarres, c'est presque toujours parce que les données n'ont jamais été du texte ou que plusieurs chaînes ont été collées. Ce guide vous montre comment reconnaître chaque cas et le corriger.

Les outils sont gratuits et vous n'avez pas besoin de compte pour commencer. Sans compte, vous avez droit à 5 utilisations d'outils par jour, et un compte My Botsy gratuit (100 % gratuit, sans spam) supprime cette limite quotidienne. Tous les exemples ont été exécutés le 30 octobre 2026 avec nos outils ou avec le même code de décodage qu'ils utilisent, et les résultats sont recopiés tels quels.

Ce qu'est le Base64 (et ce qu'il n'est pas)

Le Base64 transforme n'importe quels octets (du texte, une image, un PDF) en une chaîne composée de 64 caractères sûrs seulement : A–Z, a–z, 0–9, + et /, avec = comme remplissage à la fin. Il est défini par la RFC 4648 et sert à faire passer des données binaires dans des systèmes prévus pour du texte : pièces jointes d'e-mail, champs JSON, en-têtes HTTP, HTML et CSS.

Deux faits expliquent presque tous les problèmes de décodage :

  • Chaque groupe de 3 octets devient 4 caractères. C'est pourquoi les données encodées pèsent environ un tiers de plus que l'original, et pourquoi la longueur d'une chaîne est normalement un multiple de 4 (un ou deux = complètent le dernier groupe).
  • Le Base64 est un encodage, pas un chiffrement. Il n'y a pas de clé. N'importe qui peut décoder une chaîne Base64 en une seconde : elle ne protège donc jamais un mot de passe ni un jeton. Si une donnée sensible est « cachée » en Base64, considérez-la comme du texte en clair.

Comment décoder du Base64 en ligne, étape par étape

  1. Copiez uniquement la partie encodée. Laissez de côté les étiquettes comme Authorization: Basic. Le préfixe data:...;base64, est retiré automatiquement, et les retours à la ligne et les espaces à l'intérieur de la chaîne ne posent pas de problème.
  2. Collez-la dans le décodeur Base64 et cliquez sur Envoyer.
  3. Lisez le résultat. Si c'est du texte lisible, c'est terminé : copiez-le avec le bouton de copie.
  4. Si vous voyez des symboles étranges, des points d'interrogation ou une erreur, vérifiez si les données sont binaires (une image ou un fichier) ou si plusieurs chaînes ont été collées, grâce à la section de dépannage plus bas.
  5. Si c'est une image, collez la même chaîne dans Base64 vers image pour la voir et la télécharger.

Exemples concrets (résultats réels)

Exemple 1 : du texte simple

Entrée : SGVsbG8sIHdvcmxkIQ==
Sortie : Hello, world!

Treize caractères de texte sont devenus 20 caractères de Base64, dont les deux derniers de remplissage. C'est la chaîne de test classique, et un bon moyen de vérifier un décodeur avant de lui faire confiance.

Exemple 2 : accents et caractères spéciaux

Entrée : Q2Fmw6kgY29uIGxlY2hl
Sortie : Café con leche

Le Base64 ne connaît pas les lettres, seulement les octets. Le é a été stocké sur deux octets UTF-8, et notre décodeur les rend en UTF-8 : il s'affiche donc correctement. Si un décodeur les lit en Latin-1, vous verriez Café. C'est le signe typique d'un problème de jeu de caractères, pas d'un problème de Base64 ; on le reconnaît aussi au è qui devient è.

Exemple 3 : un en-tête Basic Auth

Un en-tête HTTP comme Authorization: Basic dXNlcjpwYXNz contient un identifiant et un mot de passe séparés par deux-points. Décoder dXNlcjpwYXNz donne user:pass. C'est toute la « protection », et c'est pourquoi Basic Auth ne doit passer que par HTTPS. Si vous trouvez un tel en-tête dans des logs ou une capture d'écran partagée, considérez le mot de passe comme exposé et changez-le (notre guide des mots de passe robustes vous aide à choisir le nouveau).

Exemple 4 : le payload d'un JWT

Les JSON Web Tokens sont trois parties en Base64 reliées par des points : en-tête, payload et signature. Ils utilisent l'alphabet URL-safe (RFC 4648, section 5), où - remplace + et _ remplace /, et ils suppriment le remplissage =. Nous avons collé ce payload dans le décodeur :

eyJzdWIiOiI0MiIsIm5leHQiOiIvZG9jcz9wYWdlPTIiLCJuYW1lIjoiWm_DqyJ9

Remarquez le _ vers la fin. Jusqu'au 30 octobre 2026, notre décodeur l'ignorait silencieusement : le résultat commençait bien puis tournait au charabia. Il lit désormais directement l'alphabet URL-safe, et la chaîne se décode proprement :

{"sub":"42","next":"/docs?page=2","name":"Zoë"}

L'absence de remplissage ne pose pas non plus de problème : le décodeur le rajoute pour vous. Une fois le JSON obtenu, collez-le dans le validateur et formateur JSON pour le lire proprement. Seules les deux premières parties d'un JWT sont du JSON ; la troisième est une signature binaire et ressemblera toujours à du bruit.

Exemple 5 : une image en Base64

Nous avons collé dans Base64 vers image les 100 caractères Base64 d'un PNG rouge de 4×4 pixels (il commence par iVBORw0KGgo, comme tout PNG en Base64). L'outil a affiché l'image avec des options de téléchargement. Lors d'un test dans le navigateur, les mêmes données se chargeaient bien avec des retours à la ligne, sans le == final et aussi avec le préfixe data:image/png;base64, (l'outil échouait avec le préfixe ; c'est corrigé depuis le 30 octobre 2026). Si le texte n'est pas une vraie image, l'outil le signale au lieu d'afficher une image cassée.

Des signatures utiles pour deviner ce que contient un Base64 binaire : iVBORw0KGgo pour un PNG, /9j/ pour un JPEG, R0lGOD pour un GIF, JVBERi0 pour un PDF et UEsDB pour un ZIP (ce qui inclut les .docx et .xlsx).

Pourquoi votre Base64 décodé affiche des caractères bizarres

C'est du Base64 URL-safe

Cherchez des - ou des _. On les trouve dans les JWT, dans beaucoup de jetons d'API et dans certaines URL. Notre décodeur les accepte tels quels, mais d'autres décodeurs et bibliothèques demandent de remplacer - par + et _ par / d'abord. Si le jeton se trouve dans une URL et contient %2B, %2F ou %3D, passez-le d'abord dans le décodeur d'URL, car ce sont des +, / et = encodés.

Le préfixe est toujours là

Nous avons décodé data:text/plain;base64,SGVsbG8sIHdvcmxkIQ== pour tester. Notre décodeur retire désormais le préfixe et renvoie Hello, world!. Beaucoup d'autres ne le font pas : les lettres de data, text, plain et base64 sont des caractères Base64 valides, donc elles sont décodées elles aussi et donnent environ 15 octets parasites avant le texte (notre outil le faisait jusqu'au 30 octobre 2026). Ailleurs, supprimez tout jusqu'à la virgule incluse.

Les données ne sont pas du texte

Décoder un PNG, un PDF ou un ZIP comme du texte donne toujours des symboles, puisque ces octets n'ont jamais été des lettres. Comparez les premiers caractères aux signatures ci-dessus et utilisez Base64 vers image pour les images. Pour les autres fichiers, décodez-les dans un fichier avec l'une des commandes ci-dessous et vérifiez leur vrai type avec le vérificateur de type MIME.

Plusieurs chaînes ont été collées ensemble

Le remplissage marque la fin d'une chaîne Base64. SGVsbG8=V29ybGQ=, ce sont deux chaînes collées. Notre décodeur la refuse avec une erreur, et les décodeurs tolérants donnent Hello suivi de charabia. Coupez à chaque = qui n'est pas tout à la fin et décodez les morceaux séparément.

Ce n'était pas du Base64

Notre décodeur valide l'entrée : not base64! reçoit une erreur claire (« ce n'est pas du Base64 valide ») au lieu de 6 octets absurdes (avant, il le décodait quand même). Les chaînes hexadécimales (uniquement 0–9 et a–f) et les identifiants aléatoires peuvent aussi ressembler à du Base64. Si rien de ce qui précède n'explique le résultat, la chaîne est peut-être tout autre chose.

Décoder du Base64 sans site web

Jetons, mots de passe, clés privées ou données clients ne devraient être collés sur aucun site, pas même le nôtre : notre décodeur tourne sur notre serveur, donc le texte envoyé quitte votre ordinateur. Ces commandes décodent en local :

  • Linux : echo 'SGVsbG8sIHdvcmxkIQ==' | base64 --decode
  • macOS : echo 'SGVsbG8sIHdvcmxkIQ==' | base64 -D (les versions récentes acceptent aussi --decode)
  • Windows PowerShell : [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('SGVsbG8sIHdvcmxkIQ=='))
  • Python : base64.b64decode(s), ou base64.urlsafe_b64decode(s) pour l'alphabet URL-safe (il faut remettre le remplissage)
  • Console du navigateur : atob('SGVsbG8sIHdvcmxkIQ=='), qui ne gère correctement que le texte ASCII ; pour les accents, passez les octets dans TextDecoder

Pour écrire un fichier décodé au lieu de l'afficher, redirigez la sortie, par exemple base64 --decode fichier.b64 > fichier.pdf.

Encoder dans l'autre sens

Pour créer du Base64, utilisez l'encodeur Base64 pour le texte et image vers Base64 pour les images. L'encodeur de texte encode exactement ce que vous tapez : It's donne SXQncw== et les balises HTML sont conservées, apostrophes françaises (l'image, j'ai) et accents compris. Jusqu'au 30 octobre 2026, il appliquait d'abord le nettoyage d'entrée du site, qui supprimait tout ce qui se trouvait entre <...> et transformait It's en SXQmIzM5O3M=. C'est corrigé : si vous avez gardé des résultats de l'ancienne version, encodez-les à nouveau.

Erreurs fréquentes

  • Prendre le Base64 pour un secret. Il ne cache rien. Ne stockez jamais de mots de passe ou de clés d'API « chiffrés » en Base64.
  • Décoder un JWT entier d'un coup. Coupez-le aux points et décodez séparément les deux premières parties.
  • Copier les guillemets. En JSON et dans le code, la chaîne est entre guillemets. Copiez seulement ce qu'il y a à l'intérieur.
  • Attendre d'une conversion qu'elle allège le fichier. Les téléchargements de Base64 vers image convertissent désormais vraiment (un PNG enregistré en JPG ou WEBP est réencodé, et le format d'origine est proposé tel quel), mais ils n'optimisent pas. Pour alléger une image, utilisez l'optimiseur d'images (voir notre guide de compression d'images).
  • Intégrer de grosses images en Base64. Un data URI pèse un tiers de plus que le fichier et ne peut pas être mis en cache séparément. Cela ne vaut le coup que pour de toutes petites icônes.

Décodez votre chaîne maintenant

Collez-la dans le décodeur Base64. Si c'est une image, utilisez Base64 vers image, et si c'est du JSON, terminez dans le validateur JSON (notre guide pour corriger un JSON invalide vous aide s'il est refusé). Tous ces outils sont gratuits et vous n'avez pas besoin de compte pour commencer.

Questions fréquentes

Comment savoir si une chaîne est en Base64 ?

Elle n'utilise que A–Z, a–z, 0–9, + et / (ou - et _ dans la variante URL-safe), sa longueur est généralement un multiple de 4 et elle peut se terminer par un ou deux signes =. Le vrai test, c'est de la décoder : si vous obtenez du texte lisible ou une signature de fichier connue, c'était bien du Base64.

Pourquoi mon Base64 décodé affiche-t-il des caractères étranges ?

Le plus souvent parce que les données sont binaires, comme une image, ou que plusieurs chaînes ont été collées. Certains décodeurs échouent aussi sur le Base64 URL-safe (- et _) ou sur un préfixe data: ; le nôtre accepte les deux. Corrigez l'entrée et décodez à nouveau.

Le Base64 est-il un chiffrement ?

Non. Le Base64 est un encodage réversible sans clé : tout le monde peut le décoder. Il sert à transporter des données, jamais à les protéger.

Comment convertir du Base64 en image ?

Collez-la dans un outil Base64 vers image. Le nôtre l'accepte avec ou sans le préfixe data:image/...;base64,. Une chaîne qui commence par iVBORw0KGgo est un PNG, et une chaîne qui commence par /9j/ est un JPEG.

Peut-on décoder du Base64 sans remplissage ?

En général, oui. Notre décodeur et la plupart des décodeurs tolérants acceptent les chaînes sans le remplissage =. Les décodeurs stricts, comme b64decode en Python, exigent qu'on le rajoute jusqu'à obtenir une longueur multiple de 4.

Le décodeur Base64 de My Botsy est-il gratuit ?

Oui. Il est gratuit et fonctionne dans n'importe quel navigateur. Sans compte, vous avez 5 utilisations d'outils par jour, et un compte gratuit, sans spam, supprime cette limite quotidienne.

Vérifier la date d'expiration d'un certificat SSL

29 Octobre, 2026

Trouvez quand expire un certificat SSL : en ligne, dans le navigateur ou avec openssl et curl. Exemples réels et limites d'une date valide.

Corriger un JSON invalide : 10 erreurs courantes

28 Octobre, 2026

Corrigez vite un JSON invalide : comprenez les erreurs Unexpected token et réparez virgules finales, guillemets, commentaires et crochets, p..

Vérifier les enregistrements DNS : A, MX, TXT et CNAME

28 Octobre, 2026

Vérifiez les enregistrements DNS en ligne ou avec dig et nslookup. Rôle des enregistrements A, AAAA, CNAME, MX, TXT, NS et CAA, et problèmes..