Skip to content
← Retour au blog
Base64EncodageOutils développeurOutils de texte

Encodeur / décodeur Base64 : à quoi ça sert et comment l’utiliser

Qui cherche à encoder en base64 a généralement besoin d'une de deux choses : convertir une chaîne tout de suite, ou comprendre le fatras de lettres qu'il a sous les yeux. Cet article répond aux deux, et il est franc sur l'erreur la plus courante — Base64 est un encodage, pas un chiffrement. Vous pouvez encoder et décoder en Base64 dans le navigateur, ou lire ce qui suit pour comprendre ce qui se passe réellement.

Les outils de texte de RMBG.PRO pour encoder et décoder en Base64

Publié le 19 septembre 2026

Base64 est une façon de représenter n'importe quels octets en n'utilisant que 64 caractères imprimables : les lettres majuscules A–Z et minuscules a–z, les chiffres 0–9, et les deux symboles + et /, le = servant de remplissage à la fin. On y entre du texte, on en ressort une chaîne plus longue composée de ces caractères. On y entre la chaîne, on retrouve les octets d'origine au bit près.

Si cela existe, c'est parce qu'une bonne partie du monde attend encore du texte, pas des octets — et un sous-ensemble de texte bien précis. Les données binaires brutes sont pleines de caractères de contrôle, d'octets nuls et de valeurs élevées qui se retrouvent altérées ou rejetées dès qu'elles traversent un système conçu pour l'ASCII. Base64 traduit tout cela en caractères qui survivent au voyage.

Trois propriétés comptent vraiment quand on l'utilise, et elles expliquent presque tous les problèmes Base64 que vous rencontrerez. C'est réversible — le décodage rend les octets identiques, toujours. C'est plus gros — environ 33 % plus large que l'entrée. Et ce n'est pas de la sécurité — il n'y a pas de clé, et n'importe qui peut décoder.

Le reste de l'article explique pourquoi l'alphabet a cette tête, comment fonctionne le remplissage, comment encoder et décoder, les pièges qui cassent le texte accentué et les URL, et où vous croiserez Base64 dans des systèmes réels. S'il vous faut juste la conversion, l' outil Base64 la fait instantanément et entièrement dans votre navigateur.

Pourquoi Base64 existe-t-il ?

Le problème est plus ancien que le web. Le courrier électronique a été conçu pour transporter du texte ASCII brut. Quand on a voulu y envoyer une photo ou un programme compilé, les octets bruts ont semé le chaos : un octet de valeur 10 était lu comme un saut de ligne, un octet nul terminait le message prématurément, et les valeurs au-dessus de 127 étaient redéfinies par le système récepteur. Le message arrivé n'était pas le message envoyé.

Base64 résout cela en mappant toutes les valeurs d'octets possibles sur des caractères que les systèmes de texte manipulent sans surprise. Comme ils ne sont que 64, et que les 64 sont des caractères ASCII imprimables ordinaires, le résultat peut être tapé, collé, envoyé par e-mail, stocké dans un fichier de configuration ou intégré à un document JSON sans qu'aucun octet soit mal interprété en chemin.

Cette même propriété n'a cessé d'être réinventée. Les formats modernes ont la même faiblesse sous d'autres habits : JSON ne sait pas porter du binaire brut, les URL n'acceptent pas des octets arbitraires sans précaution, et un attribut HTML ne peut pas intégrer une image. À chaque fois, la réponse est le même encodage, parce que la contrainte est la même — le canal veut du texte.

L'alphabet, le remplissage et les 33 %

Le mécanisme est arithmétique, pas magique. Base64 lit les octets d'entrée par groupes de trois. Trois octets, ce sont 24 bits, et 24 bits découpés en quatre morceaux de 6 bits donnent quatre nombres — chacun entre 0 et 63, c'est d'ailleurs pour cela qu'il y a 64 caractères. Chaque nombre est cherché dans l'alphabet pour devenir un caractère. Quatre caractères pour trois octets.

Ce ratio est à l'origine de la pénalité de taille : quatre caractères remplacent trois octets, donc le texte encodé est environ 33 % plus long que l'entrée brute. Base64 n'est pas une compression, et le traiter comme tel est le moyen le plus rapide de gonfler vos charges utiles.

Les longueurs d'entrée ne se divisent pas toujours par trois, c'est précisément à quoi sert le remplissage =. Le dernier groupe incomplet est complété pour que la longueur reste un multiple de quatre, et les décodeurs lisent le remplissage pour savoir combien d'octets réels contenait le dernier groupe :

EntréeOctetsBase64Remplissage
abc3YWJjaucun — multiple exact de 3
ab2YWI=un = — le dernier groupe tenait 2 octets
a1YQ==deux = — le dernier groupe tenait 1 octet

Deux conséquences valent la peine d'être retenues. D'abord, un résultat Base64 a toujours une longueur multiple de quatre caractères — si la vôtre ne l'est pas, quelque chose a déjà tourné mal. Ensuite, l'encodage est sensible à la casse : YWJj et ywjj sont des chaînes différentes, donc impossible de mettre une valeur Base64 en minuscules et d'espérer qu'elle se décode encore.

Encoder et décoder, étape par étape

L'erreur la plus fréquente se produit avant même qu'intervienne Base64 : oublier que Base64 encode des octets, pas du texte. Quand vous encodez une chaîne, elle est d'abord convertie en octets via un encodage de caractères — en pratique toujours UTF-8 sur le web moderne — et ce sont ces octets que Base64 représente.

Prenez le mot Hello. Ses octets en UTF-8 donnent SGVsbG8=. Décodez SGVsbG8= et vous retrouvez les cinq mêmes octets, qui se lisent à nouveau « Hello ». Hi devient SGk=, et Hello, World! devient SGVsbG8sIFdvcmxkIQ== — le double remplissage apparaissant parce que l'entrée fait 13 octets, ce qui laisse un seul octet dans le dernier groupe.

Pour de l'interactif, le chemin le plus rapide est l'encodeur et décodeur Base64. Collez du texte pour obtenir du Base64, ou du Base64 pour retrouver le texte — y compris des caractères hors ASCII, que l'outil gère en UTF-8 correct. Il fait aussi partie de l'ensemble plus large d'outils de texte pour compter les mots, convertir la casse et encoder les URL.

Si vous le faites en code, la bibliothèque standard de presque tous les langages l'intègre, avec des noms généralement explicites — btoa et atob dans le navigateur, base64.b64encode en Python, Base64.getEncoder() en Java. Le piège est le même partout : soyez attentif à la frontière entre texte et octets.

Les pièges qui vous font perdre du temps

Base64 lui-même est simple. Ce sont les cas limites autour qui gaspillent des après-midi entières.

  • Les accents et les emoji. Comme Base64 encode des octets, un accent représente plusieurs octets en UTF-8. Le mot français café s'encode en Y2Fmw6k= — le w6k final, ce sont les deux octets du é. Si un décodeur lit ces octets avec un encodage sur un seul octet au lieu d'UTF-8, l'accent se transforme en hiéroglyphes. Si vos accents sont corrompus après un aller-retour, c'est la cause.
  • Les sauts de ligne dans les données. Les conventions d'e-mail découpent le Base64 tous les 76 caractères et insèrent des sauts de ligne, qui ne font pas partie de l'encodage. Une valeur copiée depuis un e-mail ou un certificat peut se décoder incorrectement ou échouer purement et simplement tant que ces sauts n'ont pas été retirés.
  • Alphabet standard contre alphabet URL-safe. Les + et / de l'alphabet ordinaire ne sont pas sûrs dans les URL et les noms de fichiers. La variante URL-safe, Base64URL, les remplace par - et _ et supprime généralement le remplissage. Un jeton qui « ressemble à du Base64 » mais refuse de se décoder est souvent simplement écrit dans l'autre alphabet.
  • Le remplissage qui casse les API. Certains systèmes rejettent le remplissage =, d'autres l'exigent. Les JSON Web Tokens le suppriment entièrement. Quand deux services sont en désaccord, la même valeur exacte fonctionne avec l'un et échoue avec l'autre.
  • Le prendre pour du chiffrement. Base64 ne cache rien. C'est une transformation publiquement connue, sans clé, qu'un décodeur inverse en quelques microsecondes. Nous y reviendrons, car c'est la seule erreur qui ait de vraies conséquences sur la sécurité.

Ces problèmes partagent une cause racine unique : Base64 est défini sur des octets, et chacun de ces échecs est un désaccord sur les caractères autorisés, ou sur la façon dont les octets redeviennent du texte. Si cette frontière est gérée correctement, le reste suit.

Où croise-t-on vraiment Base64 ?

Nul besoin de chercher Base64 — il se présente de lui-même. Le reconnaître au premier regard est une compétence réellement utile, car la moitié du travail consiste à savoir ce qu'on tient entre les mains.

  • Les data URLs. Le préfixe data:image/png;base64,… intègre une image directement en HTML ou CSS sous la forme d'une longue chaîne Base64, troquant une requête supplémentaire contre un document plus volumineux. Pratique pour les petites icônes, contre-productif pour les grandes images.
  • Les pièces jointes. SMTP transporte encore les pièces jointes en Base64 à l'intérieur de la structure MIME, c'est précisément de là que vient la convention de découpage en lignes.
  • Les JSON Web Tokens. Un JWT, ce sont trois segments Base64URL joints par des points — en-tête, charge utile, signature. N'importe qui peut décoder le segment central et lire les revendications, et c'est par conception : le jeton est signé, pas chiffré.
  • L'authentification HTTP Basic. L'en-tête Authorization: Basic envoie les identifiants comme utilisateur:motdepasse encodé en Base64 — une illustration parfaite de pourquoi l'encodage n'est pas une protection, puisque c'est trivialement décodable.
  • Les charges API et la configuration. Partout où un système a besoin de données binaires à l'intérieur d'un format texte : envoi d'images en JSON, source maps, secrets dans des variables CI, certificats intégrés.

L'habitude de diagnostic à construire est simple : quand vous voyez un bloc compact de lettres, de chiffres, de +, de / et de = final, ou de - et _ sans remplissage, testez-le d'abord comme du Base64. Collez-le dans le décodeur et regardez si un texte lisible en sort.

Base64 n'est pas une sécurité

Cela mérite sa propre section, car c'est l'erreur qui a des conséquences. Encoder un secret en Base64 n'apporte aucune confidentialité. L'algorithme est publié, il n'y a pas de clé, et le décodage est instantané et gratuit. Stocker un mot de passe ou une clé API en Base64, c'est exactement comme le stocker en texte clair avec des étapes supplémentaires — cela ne masque la valeur que pour un humain qui jette un coup d'œil à l'écran, jamais pour qui regarde plus d'une seconde.

La même logique s'applique aux JWT, source fréquente de confusion. La charge utile d'un JWT est lisible par quiconque détient le jeton — c'est ainsi qu'il est conçu. La signature garantit que le jeton n'a pas été altéré ; elle ne chiffre pas son contenu. Si vous avez besoin que le contenu soit caché, c'est un problème différent, qui appelle un véritable chiffrement.

Côté confidentialité, il y a une chose réellement positive à savoir. Quand un outil s'exécute entièrement dans votre navigateur, le texte que vous collez n'atteint jamais un serveur. L'outil Base64 de RMBG.PRO est construit ainsi, donc décoder du Base64 sans rien envoyer n'est pas une promesse à laquelle croire sur parole — c'est simplement la façon dont la page fonctionne. Pour qui manipule des identifiants, des jetons ou des données clients, cette distinction a son importance.

La règle de bon sens : utilisez Base64 librement pour le transport et la représentation, et jamais pour la confidentialité. Dans le doute, partez du principe que tout ce que vous avez seulement encodé en Base64 peut être lu par quiconque le reçoit — parce que c'est le cas.

Encoder ou décoder sans se prendre la tête

Quels que soient vos besoins en Base64, la conversion elle-même doit être la partie facile :

  • Un encodeur et décodeur Base64 gratuit qui gère le texte UTF-8, accents et emoji compris.
  • Entièrement dans votre navigateur — rien de ce que vous collez n'est envoyé.
  • Membre de la famille plus large d'outils de texte : compteur de mots, compteur de caractères, convertisseur de casse et encodeur d'URL.
  • Aucune inscription, aucune installation, rien à configurer avant de coller.

Essayez l'outil Base64

Collez du texte, obtenez du Base64. Collez du Base64, obtenez du texte. Tout se passe dans votre navigateur, rien ne quitte votre machine.

Encoder / Décoder en Base64

Questions fréquentes

Base64 est-ce un chiffrement ?▾

Non. Base64 est un encodage, pas un chiffrement. C'est entièrement réversible, cela n'utilise aucune clé, et l'algorithme est public : quiconque possède la chaîne Base64 peut la décoder pour retrouver les octets d'origine. Le chiffrement cache les données à quiconque n'a pas la clé ; Base64 se contente de représenter les mêmes octets dans un jeu de caractères restreint. N'utilisez jamais Base64 pour protéger un secret.

Base64 compresse-t-il les données ?▾

Non, c'est le contraire. Base64 convertit chaque groupe de 3 octets en 4 caractères, donc le résultat est environ 33 % plus grand que l'entrée. Son but est de faire passer des octets à travers des canaux qui n'acceptent que du texte, pas de les réduire. Si vous avez besoin de données plus petites, compressez d'abord (avec gzip par exemple) puis encodez les octets compressés.

Pourquoi une chaîne Base64 se termine-t-elle par des signes = ?▾

À cause du remplissage. Base64 travaille par groupes de 3 octets (24 bits) qui deviennent 4 caractères. Quand la longueur d'entrée n'est pas un multiple de 3, le dernier groupe est incomplet et des caractères = remplissent les positions vides, pour que la longueur du résultat soit toujours un multiple de 4. Un seul = signifie que le dernier groupe contenait 2 octets ; deux = signifient qu'il en contenait 1. Les décodeurs s'appuient dessus pour reconstruire la longueur exacte.

Quelle est la différence entre Base64 et Base64URL ?▾

Le Base64 standard utilise + et /, qui ne sont pas sûrs à l'intérieur d'une URL ou d'une chaîne de requête. Base64URL (défini dans la RFC 4648) remplace + par - et / par _, et supprime généralement le remplissage =. Les JSON Web Tokens utilisent l'alphabet Base64URL pour leurs trois segments. Si un jeton que vous décodez ressemble à du Base64 mais échoue, une inadéquation de + ou de / est une cause probable.

Une chaîne Base64 peut-elle contenir des caractères qui cassent une URL ?▾

Oui, le Base64 standard le peut. Les caractères + et / ont une signification spéciale dans les URL, et le remplissage = peut aussi poser problème : une chaîne Base64 brute placée dans une chaîne de requête peut être altérée ou rejetée. Soit vous utilisez l'alphabet Base64URL, soit vous encodez en pourcentage la chaîne Base64 avant de la mettre dans une URL. Le bug de double encodage qui en résulte est un grand classique des sessions de débogage.

Est-il sûr de coller du texte dans un décodeur Base64 en ligne ?▾

Cela dépend entièrement de l'outil : s'il s'exécute dans votre navigateur ou s'il envoie les données à un serveur. L'outil Base64 de RMBG.PRO s'exécute côté client, donc le texte que vous collez est encodé et décodé dans votre propre navigateur sans rien envoyer nulle part. Cela dit, comme Base64 n'est pas un chiffrement, évitez quand même de coller de vrais secrets comme des mots de passe ou des clés API dans un outil web : les encoder ne les cache pas.

Similar articles

View all