À propos de l’outil Encodeur et décodeur Base64
Base64 écrit n’importe quels octets à l’aide de 64 caractères imprimables (A–Z, a–z, 0–9, + et /), pour que des données binaires puissent passer par des canaux qui ne gèrent que du texte : documents JSON et XML, e-mails, en-têtes HTTP, variables d’environnement ou URL data: dans le HTML et le CSS. Chaque groupe de 3 octets devient 4 caractères, si bien que la forme encodée est environ un tiers plus grande que l’original.
Cet outil convertit du texte (encodé en UTF-8) et des fichiers en Base64, et inversement. Il prend en charge la variante URL-safe appelée Base64url, le remplissage facultatif et le retour à la ligne de style MIME, et il comprend les URL data:. Au décodage, un texte lisible s’affiche directement ; tout le reste est proposé sous forme de fichier, avec un type détecté d’après les données lorsque c’est possible.
La conversion se fait entièrement dans votre navigateur. Les fichiers sont lus sur votre appareil et rien n’est envoyé.
Mode d’emploi
- Choisissez « Encoder » ou « Décoder » sous « Sens ».
- Pour encoder, choisissez « Texte » et saisissez ou collez votre texte dans « Texte à encoder », ou choisissez « Fichier » et sélectionnez un fichier de 25 MB maximum. Cochez « Ajouter le préfixe d’URL data: » pour obtenir une URL data: prête à l’emploi.
- Ajustez les options si besoin : « Alphabet URL-safe (- et _) », « Remplissage (=) » et « Retour à la ligne tous les 76 caractères ».
- Pour décoder, collez du Base64 ou une URL data: complète dans la zone, ou utilisez « Ouvrir un fichier texte ». Un texte UTF-8 lisible apparaît sous « Texte décodé » ; les autres données apparaissent sous « Fichier décodé » avec leur taille, leur type et un aperçu hexadécimal.
- Utilisez « Copier le résultat » ou « Copier le texte », « Télécharger .txt » ou « Télécharger le fichier » pour garder le résultat, « Inverser » pour l’envoyer dans l’autre sens, et « Effacer » pour recommencer.
Fonctionnalités
- Texte et fichiers: Le texte est converti en UTF-8 : les accents, les écritures non latines et les emoji fonctionnent. Les fichiers de tout type jusqu’à 25 MB sont pris en charge, sans les problèmes de taille et d’Unicode de la fonction btoa du navigateur.
- Base64 standard et URL-safe: Produisez l’un ou l’autre alphabet, avec ou sans remplissage =. Le décodeur accepte les deux alphabets, l’absence de remplissage, les espaces et les sauts de ligne.
- Une validation claire: Une entrée non valide est expliquée précisément : quel caractère n’est pas autorisé et à quelle position, une longueur qui ne peut pas correspondre à du Base64 valide, ou un remplissage mal placé.
- Les URL data: dans les deux sens: Transformez un fichier en URL data: qui reprend son type MIME, ou collez une URL data: pour la décoder avec le type qu’elle déclare.
- Résultat en texte ou en fichier: Les octets décodés qui forment un UTF-8 valide s’affichent sous forme de texte. Les autres données sont proposées au téléchargement : PNG, JPEG, GIF, WebP, PDF et ZIP sont reconnus d’après leurs premiers octets, avec un aperçu de l’image lorsque c’est possible et un vidage hexadécimal des 64 premiers octets.
Exemples
Construire un en-tête d’authentification Basic
Encoder le texte user:pa55word donne dXNlcjpwYTU1d29yZA==, qui se place dans l’en-tête Authorization: Basic dXNlcjpwYTU1d29yZA==. N’oubliez pas que toute personne qui voit cet en-tête peut le décoder.
Lire la charge utile d’un JSON Web Token
La partie centrale d’un JWT est du Base64url sans remplissage. Décoder eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFkYSBMb3ZlbGFjZSJ9 affiche {"sub":"1234567890","name":"Ada Lovelace"}. Le décodage ne vérifie pas la signature du jeton.
Intégrer une petite icône dans du CSS
Choisissez « Fichier », sélectionnez un petit PNG et cochez « Ajouter le préfixe d’URL data: ». Le résultat commence par data:image/png;base64, et s’utilise directement dans background-image: url(…) ou dans l’attribut src d’une balise <img>.
Enregistrer un fichier renvoyé par une API
Certaines API renvoient des documents sous forme de chaîne Base64 dans du JSON. Collez la chaîne en mode « Décoder » : s’il s’agit d’un PDF, l’outil détecte application/pdf et « Télécharger le fichier » l’enregistre sous le nom decoded.pdf.
Limites et remarques
- Les fichiers jusqu’à 25 MB peuvent être encodés, et les fichiers texte jusqu’à 40 MB peuvent être ouverts pour le décodage. Les résultats très longs s’affichent sous forme d’aperçu dans la zone ; la copie et le téléchargement utilisent toujours le résultat complet.
- Le type d’un fichier n’est reconnu d’après son contenu que pour PNG, JPEG, GIF, WebP, PDF et ZIP. Les autres données binaires sont enregistrées dans un fichier .bin, sauf si une URL data: indique leur type.
- Le texte est toujours traité comme de l’UTF-8. Le Base64 d’un texte dans un autre encodage, comme UTF-16 ou Windows-1252, ne s’affiche pas comme du texte mais est proposé sous forme de fichier.
- Les sauts de ligne que vous tapez ou collez dans une zone de texte sont normalisés en LF par le navigateur : un texte avec des fins de ligne Windows (CRLF) est donc encodé avec des LF. Encodez le fichier lui-même si les octets exacts comptent.
- Le résultat avec retours à la ligne utilise des sauts de ligne LF. Le MIME strict utilise CRLF, mais les décodeurs – y compris celui-ci – acceptent les deux.
- Base64 est un encodage, pas un chiffrement : il ne protège pas les données, et n’importe qui peut les décoder.
Questions fréquentes
Base64 est-il une forme de chiffrement ?
Non. Base64 change seulement la façon d’écrire les octets, et le décodage ne demande aucune clé. Utilisez-le pour transporter des données par des canaux limités au texte, jamais pour cacher des mots de passe ou d’autres secrets.
Pourquoi le Base64 se termine-t-il souvent par = ou == ?
Base64 fonctionne par groupes de 3 octets. Quand la longueur de l’entrée n’est pas un multiple de 3, le dernier groupe est complété par un ou deux signes = pour que la longueur du texte soit un multiple de 4. Beaucoup de formats, comme les JWT, omettent ce remplissage ; ce décodeur accepte les deux formes.
Quelle est la différence entre Base64 et Base64url ?
Base64url (RFC 4648, section 5) remplace + par - et / par _ pour que le texte puisse être utilisé dans des URL et des noms de fichiers sans échappement. À part ces deux caractères – et un remplissage généralement absent –, l’encodage est identique.
Pourquoi le décodage indique-t-il « Longueur non valide » ?
Un texte Base64 sans remplissage ne peut jamais compter 4n + 1 caractères, car un caractère ne porte que 6 bits – pas assez pour un octet entier. Cela signifie généralement que le texte a été tronqué ou qu’un caractère a été ajouté lors de la copie.
Pourquoi le texte Base64 est-il plus grand que mon fichier ?
Chaque groupe de 3 octets s’écrit avec 4 caractères : le texte encodé est donc environ 33 % plus grand que l’original (plus les sauts de ligne si le retour à la ligne est activé). C’est le prix à payer pour n’utiliser que des caractères imprimables et sûrs.
Mes fichiers ou mon texte sont-ils envoyés ?
Non. L’encodage et le décodage sont réalisés par JavaScript dans cette page, et les fichiers sont lus localement. Rien n’est envoyé à un serveur.