Encoder / Décoder Base64

Encodez du texte en Base64 ou décodez-le – compatible UTF-8.

100 % privé — fonctionne entièrement dans votre navigateur. Vos données sont traitées sur votre appareil et ne sont jamais envoyées sur Internet.

À propos de cet outil

Cet encodeur / décodeur Base64 gratuit convertit du texte vers et depuis le Base64. Il est compatible UTF-8, si bien que les emoji, les lettres accentuées, le chinois, le japonais, le coréen, l'arabe et le cyrillique survivent intacts à l'aller-retour — ce que l'on ne peut pas dire d'un nombre surprenant d'outils Base64.

Tout s'exécute dans votre navigateur. Rien de ce que vous collez n'est envoyé, journalisé ni vu par qui que ce soit. Cela compte davantage ici qu'ailleurs : on colle des clés d'API, des jetons et des fragments de configuration dans des convertisseurs Base64 à longueur de journée.

Ce qu'est réellement le Base64

Le Base64 n'est pas un chiffrement. Ce n'est pas non plus une compression. C'est une manière de réécrire *n'importe quelles* données avec seulement 64 caractères transportables presque partout sans risque : A–Z, a–z, 0–9, + et /, avec = comme remplissage à la fin.

Sa raison d'être est historique et reste d'actualité. Beaucoup de systèmes ont été conçus pour transporter du texte, pas des octets arbitraires — corps d'e-mails, chaînes JSON, attributs XML, en-têtes HTTP, URL, variables d'environnement. Donnez-leur un octet brut comme 0x00 ou 0x1B et quelque chose en chemin va l'abîmer, le supprimer ou refuser le message. Le Base64 contourne tout le problème en transformant ces octets en lettres et chiffres ordinaires auxquels rien ne s'oppose.

Le mécanisme est simple : le Base64 prend vos données 3 octets à la fois (24 bits) et les réécrit en 4 caractères (6 bits chacun). Ce rapport explique pourquoi une sortie Base64 est toujours environ 33 % plus grande que l'entrée. Lorsque les données ne se divisent pas exactement par 3, le dernier groupe est complété par un ou deux =.

Le Base64 n'est pas un secret

Il faut le dire sans détour, car cela provoque de véritables incidents de sécurité.

N'importe qui peut décoder du Base64. Il n'y a ni clé, ni mot de passe, ni secret. Cette page le décodera en un instant, et tout développeur, tout analyseur de journaux et tout attaquant qui le trouvera en fera autant. cGFzc3dvcmQxMjM= n'est pas un mot de passe caché : c'est le mot password123 sous un déguisement très mince.

Donc : le Base64 convient au transport. Il n'a jamais été un moyen de protéger quoi que ce soit. Si quelque chose doit rester illisible, il vous faut un vrai chiffrement. Le fait qu'une valeur *paraisse* brouillée ne signifie pas qu'elle *soit* protégée.

Cela joue aussi dans l'autre sens, et c'est utile : si vous trouvez une longue suite de lettres et de chiffres finissant par = dans un journal, une configuration ou une URL, c'est très probablement du Base64 — et vous pouvez simplement le lire.

Où vous le rencontrerez

  • Data-URL — data:image/png;base64,iVBORw0KGgo… intègre une image directement dans du HTML ou du CSS, sans fichier séparé
  • Authentification HTTP Basic — l'en-tête Authorization est littéralement utilisateur:motdepasse en Base64, d'où le danger du Basic Auth sans HTTPS
  • Jetons JWT — un JWT est fait de trois blocs Base64url séparés par des points ; les deux premiers sont du JSON parfaitement lisible
  • Pièces jointes d'e-mails — MIME transporte des fichiers binaires en Base64 à travers des systèmes purement textuels depuis des décennies
  • Fichiers de configuration et de secrets — les secrets Kubernetes, les fichiers .env et les variables de CI stockent souvent des valeurs en Base64, là encore pour le transport et non pour la sécurité
  • API — tout champ devant transporter des données binaires dans une chaîne JSON

UTF-8, et pourquoi certains outils se trompent

Le Base64 encode des octets, pas des caractères. Avant de pouvoir encoder quoi que ce soit, il faut donc transformer le texte en octets — et c'est à cette étape que des outils cassent silencieusement.

Le bug classique consiste à utiliser une conversion d'un octet par caractère sur du texte contenant autre chose que de l'ASCII pur. Collez café, 日本語 ou un emoji dans un outil écrit ainsi et vous obtiendrez une erreur, ou pire, une sortie silencieusement corrompue qui revient en charabia.

Cet outil convertit d'abord votre texte en UTF-8, l'encodage que le web utilise réellement. é, →, 🎉 et 한국어 s'encodent et se décodent exactement tels que vous les avez saisis.

Base64 standard et Base64url

Il existe deux variantes, et les confondre est une cause fréquente d'erreurs « ce n'est pas du Base64 valide ».

Le Base64 standard utilise + et / comme deux derniers caractères. C'est ce que produit cet outil, et ce qu'attendent presque tous les systèmes.

Le Base64url les remplace par - et _ et supprime généralement le remplissage =. Il existe parce que + et / ont leur propre signification dans une URL et un chemin de fichier, et devraient donc être échappés. Les JWT utilisent le Base64url, tout comme de nombreuses API qui placent des valeurs encodées dans un chemin ou une chaîne de requête.

Si un décodage échoue sur une chaîne pleine de - et de _, voilà pourquoi. Les remplacer par + et / règle généralement le problème.

Comment l'utiliser

  • Collez votre texte (ou du Base64) dans le champ
  • Encodez ou Décodez à l'aide des boutons
  • Échangez pour renvoyer le résultat dans la saisie et repartir dans l'autre sens
  • Copiez le résultat

Bon à savoir

  • Une sortie Base64 est ~33 % plus grosse que l'entrée. Une image de 3 Mo devient environ 4 Mo en data-URL — à garder en tête avant d'intégrer de gros fichiers.
  • Les espaces sont généralement inoffensifs. Beaucoup de systèmes coupent le Base64 à 76 caractères par ligne ; les décodeurs ignorent normalement les retours à la ligne.
  • Le = n'apparaît qu'à la fin, jamais au milieu. Un ou deux, jamais trois.
  • La longueur est toujours un multiple de 4 une fois le remplissage inclus. Si la vôtre ne l'est pas, quelque chose a été tronqué.
  • Décoder du binaire arbitraire en texte donne du charabia. Si vous décodez un PNG, vous obtenez des octets, pas des mots — c'est correct, pas un échec.

Questions fréquentes

Le Base64 est-il un chiffrement ?

Non, et c'est la chose la plus importante à savoir. Le Base64 n'a ni clé ni secret. Quiconque voit la chaîne peut la décoder en une étape, y compris cette page. C'est un encodage destiné au transport, pas une protection. Ne l'utilisez jamais pour dissimuler un mot de passe, un jeton ou quoi que ce soit d'important.

Pourquoi mon Base64 se termine-t-il par un ou deux signes égal ?

C'est le remplissage. Le Base64 travaille par groupes de 3 octets qui deviennent 4 caractères. Quand vos données ne se divisent pas exactement par 3, le dernier groupe est incomplet et complété par des = afin que la longueur totale reste un multiple de 4. Un octet restant donne ==, deux octets donnent =, et un multiple exact ne donne aucun remplissage.

Pourquoi ma chaîne Base64 est-elle plus longue que l'original ?

Parce que chaque groupe de 3 octets devient 4 caractères, la sortie est toujours environ 33 % plus grande que l'entrée, plus jusqu'à deux caractères de remplissage. C'est inévitable, et c'est le prix à payer pour rendre des données arbitraires transportables dans un champ texte. Si la taille compte, compressez les données avant de les encoder, pas après.

Puis-je encoder une image ou un PDF en Base64 ?

Oui, et c'est un usage courant : c'est ainsi que les data-URL intègrent des images dans du HTML et du CSS. Cet outil-ci travaille sur du texte collé, il convient donc aux jetons, au JSON, aux valeurs de configuration et aux chaînes Base64 existantes. Pensez à l'augmentation de 33 % avant d'intégrer quoi que ce soit de volumineux.

Pourquoi mon décodage échoue-t-il avec « ce n'est pas du Base64 valide » ?

Les causes habituelles sont une chaîne tronquée, des caractères parasites collés avec elle, ou du Base64url. Le Base64url utilise - et _ là où le Base64 standard utilise + et /, et son remplissage est souvent retiré — un bloc de JWT collé tel quel peut donc refuser de se décoder. Remplacez - par + et _ par /, puis réessayez.

Mon texte est-il envoyé à un serveur ?

Non. Toute la conversion se fait dans votre navigateur avec ses fonctions intégrées. Rien n'est envoyé ni stocké, ce qui explique que l'outil continue de fonctionner connexion coupée. Vu la fréquence à laquelle on colle des identifiants dans des outils Base64, c'est précisément l'intérêt.

Outils liés

Tutoriel vidéo

Nous ajoutons régulièrement de nouveaux outils — abonnez-vous sur YouTube pour être averti à chaque nouveauté.

Plus d’outils

Tout voir

Applications recommandées

Tout voir