À propos de cet outil
Cet outil encode du texte (UTF-8) ou n'importe quel fichier en Base64, et décode du Base64 vers du texte ou des données binaires. Choisissez l'alphabet standard (+ /) ou l'alphabet URL-safe (- _) utilisé par les jetons JWT, gardez ou retirez le remplissage « = » et découpez les lignes à 64 ou 76 caractères pour les formats PEM et MIME. Le décodeur est tolérant (espaces, retours à la ligne, remplissage manquant, préfixe data:) et reconnaît les images et documents courants.
Comment utiliser cet outil
- Saisissez du texte à gauche pour obtenir son Base64 à droite, ou collez du Base64 à droite pour retrouver le texte.
- Choisissez l'alphabet (standard ou URL-safe), le remplissage « = » et le découpage en lignes.
- Pour un fichier, cliquez sur « Encoder un fichier » : son contenu binaire est converti, sans être envoyé à un serveur.
- Pour des données décodées qui ne sont pas du texte, cliquez sur « Télécharger les données décodées » : l'outil détecte le format (PNG, JPEG, PDF…) et affiche un aperçu des images.
À quoi sert-il (et à quoi il ne sert pas) ?
Le Base64 n'a pas été inventé pour économiser de la place, au contraire, mais pour faire passer des octets dans des canaux conçus pour du texte. Quelques usages courants :
- Les pièces jointes d'e-mails (norme MIME), dont les lignes sont découpées à 76 caractères.
- Les certificats et clés au format PEM, entre des lignes « -----BEGIN … ----- », découpés à 64 caractères par ligne.
- Les URL de données (
data:image/png;base64,…), qui intègrent une petite image directement dans une page HTML ou une feuille de style. - Les jetons JWT, dont chacune des trois parties est encodée en Base64URL.
- Les en-têtes HTTP d'authentification « Basic », qui transportent « utilisateur:mot de passe » encodé.
- Les fichiers JSON et XML qui doivent embarquer des données binaires.
cGFzc3dvcmQ= n'est pas « caché » : c'est simplement « password ». L'authentification « Basic » n'est donc sûre que sur une connexion chiffrée (HTTPS), et les « secrets » Kubernetes ou les variables de configuration simplement encodés en Base64 restent lisibles par quiconque y a accès. Pour protéger une donnée, utilisez un vrai chiffrement.Base64 standard et Base64URL
Les caractères « + », « / » et « = » du Base64 standard posent problème dans une adresse web ou un nom de fichier : « + » y signifie une espace, « / » sépare des dossiers, et « = » introduit un paramètre. La norme RFC 4648 définit donc une variante « sûre pour les URL et les noms de fichiers » :
| Caractéristique | Standard (RFC 4648 § 4) | URL-safe (RFC 4648 § 5) |
|---|---|---|
| Valeur 62 | + | - |
| Valeur 63 | / | _ |
| Remplissage « = » | Obligatoire | Souvent omis lorsque la longueur est connue |
| Usages typiques | E-mail, PEM, JSON, URL de données | JWT, jetons dans une URL, identifiants |
Les deux variantes encodent les mêmes données ; seuls deux caractères et le remplissage changent. L'outil propose les deux, et ajuste le remplissage selon l'alphabet choisi (vous pouvez le réactiver à la main).
Les erreurs fréquentes de décodage
- Un accent mal décodé. Le Base64 encode des octets, pas des lettres : le texte doit d'abord être converti en octets, et l'encodage choisi compte. L'outil utilise UTF-8, la norme du web ; si l'autre système suppose Latin-1, les accents seront déformés. En JavaScript, la fonction
btoa()refuse d'ailleurs les caractères au-delà de Latin-1 (par exemple « œ » ou les emojis) : il faut convertir le texte en UTF-8 avant de l'appeler, comme le fait l'outil. - Un décodeur strict qui refuse un texte que le navigateur accepte. La fonction
atob()des navigateurs est « indulgente » : elle ignore les espaces et accepte un remplissage manquant. D'autres bibliothèques sont plus strictes. Python, par exemple, lève l'erreur « Incorrect padding » si les « = » finaux manquent. En cas de doute, activez le remplissage dans l'outil. - Le mélange des alphabets. Un texte qui contient à la fois « + » ou « / » et « - » ou « _ » est suspect : il a sans doute été assemblé à partir de deux sources. L'outil le lit quand même et vous le signale.
- Une longueur impossible. Un reste d'un seul caractère après regroupement par quatre n'existe pas en Base64 : le texte a été tronqué (copie incomplète, limite de longueur d'un champ).
- Les retours à la ligne. Les formats MIME et PEM insèrent des sauts de ligne ; ils doivent être ignorés au décodage. L'outil les ignore, et sait aussi en insérer toutes les 64 ou 76 caractères.
Faut-il intégrer des images en Base64 dans une page ?
Une image encodée en URL de données évite une requête réseau, mais elle a un coût : +33 % de taille, aucun cache indépendant (l'image est rechargée avec la page ou la feuille de style qui la contient) et un fichier CSS ou HTML plus lourd à analyser avant l'affichage. La règle courante est de la réserver aux très petites images (une icône de quelques centaines d'octets) et de laisser les photos et illustrations en fichiers séparés, que le navigateur peut mettre en cache. Pour encoder une image, utilisez le convertisseur d'image en Base64.
À l'inverse, collez dans l'outil une URL de données ou un Base64 d'image : il reconnaît les formats courants (PNG, JPEG, GIF, WebP, PDF, ZIP), affiche un aperçu des images et vous permet de télécharger le fichier décodé.
Questions fréquentes
À quoi sert l'encodage Base64 ?
Base64 représente des données binaires avec seulement 64 caractères imprimables (lettres, chiffres, + et /). Il permet de faire passer des octets dans des formats prévus pour du texte : JSON, XML, e-mail (MIME), URL, en-têtes HTTP, certificats PEM.
Base64 est-il un chiffrement sécurisé ?
Non. Base64 est un simple codage réversible, sans clé ni secret : n'importe qui peut le décoder en une seconde. Il ne protège en rien la confidentialité des données, ne l'utilisez jamais pour « cacher » un mot de passe.
Quelle différence entre Base64 et Base64URL ?
Le Base64 standard utilise « + » et « / », deux caractères qui ont un sens dans une adresse web. La variante URL-safe (RFC 4648) les remplace par « - » et « _ » et omet souvent le remplissage « = ». C'est celle des jetons JWT.
Pourquoi mon texte accentué est-il mal décodé ailleurs ?
L'outil encode le texte en UTF-8 avant de le convertir, ce qui est la norme du web. Un autre outil ou programme qui suppose un autre encodage (Latin-1, par exemple) affichera des caractères déformés pour les accents et les emojis.
Le Base64 augmente-t-il la taille des données ?
Oui : trois octets deviennent quatre caractères, soit environ 33 % de plus (un peu plus avec les retours à la ligne). L'outil affiche la taille avant et après.
Comment fonctionne le Base64 ?
Le Base64 transforme n'importe quelle suite d'octets en texte composé de 64 caractères « sûrs » : les 26 lettres majuscules, les 26 minuscules, les 10 chiffres, et deux symboles, « + » et « / ». Le principe est le suivant :
Les trois lettres « Man » valent 77, 97 et 110, soit en binaire
01001101 01100001 01101110. Regroupés par 6 bits :010011 010110 000101 101110, c'est-à-dire 19, 22, 5 et 46, qui correspondent à T, W, F, u. « Man » devient doncTWFu.Quand le nombre d'octets n'est pas un multiple de 3, on complète avec des bits à zéro, et on ajoute en fin de texte un ou deux signes « = » (le remplissage, ou padding) pour que la longueur soit toujours un multiple de 4 : « Ma » donne
TWE=et « M » donneTQ==. La taille du résultat est 4 × ⌈n ÷ 3⌉ caractères : le Base64 alourdit donc les données d'environ un tiers.