Utilia

Encodeur et décodeur Base64

Encodez et décodez du texte en Base64 en ligne, avec prise en charge complète de l'UTF-8 et option base64url. Tout se fait dans votre navigateur.

Comment utiliser l’encodeur et décodeur Base64

  1. Choisissez si vous voulez encoder du texte en Base64 ou décoder une chaîne Base64 en texte.
  2. Saisissez ou collez votre texte dans la zone prévue. Les lettres accentuées, les alphabets non latins et les émojis sont pris en charge.
  3. Si le résultat doit figurer dans une URL, un nom de fichier ou un jeton JWT, activez l’option compatible URL pour obtenir la variante base64url.
  4. Copiez le résultat. Si la chaîne à décoder n’est pas du Base64 valide, un message d’erreur vous le signale au lieu d’afficher des caractères incohérents.

Qu’est-ce que le Base64 ?

Le Base64 est une façon de représenter n’importe quelle suite d’octets à l’aide de 64 caractères ASCII imprimables seulement : les majuscules de A à Z, les minuscules de a à z, les chiffres de 0 à 9, ainsi que les symboles + et /. Le signe = sert de remplissage à la fin. Ce codage existe parce que bien des systèmes ont été conçus pour transporter du texte et non des données binaires brutes. Le corps des courriels, les en-têtes HTTP, les documents XML ou JSON et les URL de données (data URL) exigent des caractères qui survivent sans altération à la copie, à la journalisation et à la transmission.

L’algorithme traite les données par blocs de trois octets (24 bits), qu’il découpe en quatre valeurs de 6 bits ; chacune correspond à l’un des 64 caractères. Voilà pourquoi un texte encodé en Base64 est toujours environ 33 % plus long que l’original : 3 octets deviennent 4 caractères. Lorsque la longueur de l’entrée n’est pas un multiple de trois, on ajoute un ou deux = pour que la sortie compte un multiple de quatre caractères. Par exemple, Hi devient SGk= et Hello devient SGVsbG8=.

Texte, octets et UTF-8

Le Base64 encode des octets, pas des caractères : le texte doit donc d’abord être converti en octets. Cet outil utilise l’UTF-8, l’encodage de la quasi-totalité des pages Web et des API modernes. Ainsi, café devient Y2Fmw6k=, et un émoji comme 👍 (quatre octets en UTF-8) est encodé correctement, puis redonne exactement le même émoji au décodage. Beaucoup de petits scripts qui s’appuient sur l’ancienne fonction btoa() du navigateur échouent dès qu’on sort du Latin-1 ; ce n’est pas le cas ici.

Base64 standard ou base64url ?

Le Base64 standard utilise + et /, qui ont un sens particulier dans les URL et les chemins de fichiers. La variante compatible URL, appelée base64url, remplace + par - et / par _, et supprime généralement le remplissage =. C’est le format des jetons JWT, de nombreux paramètres OAuth et de certains raccourcisseurs de liens. Activez l’option compatible URL dans ces cas-là, et laissez-la désactivée pour les pièces jointes de courriel, les data URL ou les fichiers de configuration qui attendent du Base64 standard.

Le Base64 n’est pas du chiffrement

C’est de loin le malentendu le plus répandu. Le Base64 est un encodage : il n’y a ni clé ni secret, et n’importe qui peut l’inverser instantanément. Encoder un mot de passe, une clé d’API ou des données personnelles en Base64 ne les protège absolument pas. L’authentification HTTP Basic, par exemple, transmet utilisateur:motdepasse en Base64, et c’est pourquoi elle ne doit être utilisée que sur HTTPS. Pour garantir la confidentialité, il faut un vrai chiffrement (comme AES) ou un hachage de mot de passe (comme Argon2 ou bcrypt).

Confidentialité

L’encodage et le décodage s’effectuent entièrement dans votre navigateur, en JavaScript. Le texte saisi n’est jamais envoyé à un serveur, ni enregistré, ni journalisé : vous pouvez donc examiner des jetons ou des valeurs de configuration en toute tranquillité. Cet outil traite uniquement du texte et n’accepte pas l’envoi de fichiers.

Questions fréquentes

Pourquoi mon texte décodé ressemble-t-il à une suite de symboles ?

La chaîne Base64 représente probablement des données binaires (une image, un fichier compressé ou du contenu chiffré) plutôt que du texte. Le décodage produit bien des octets valides, mais ils ne forment pas un texte UTF-8 lisible. Cela peut aussi arriver si le texte d’origine a été encodé avec un autre jeu de caractères que l’UTF-8.

Pourquoi l'outil indique-t-il que ma chaîne Base64 est invalide ?

Une chaîne Base64 valide ne contient que les 64 caractères autorisés et, éventuellement, le remplissage =, et sa longueur doit respecter le découpage par groupes de quatre. Les causes fréquentes : un caractère parasite copié par erreur, une chaîne tronquée, ou une chaîne base64url (avec - et _) décodée sans activer l’option compatible URL.

Puis-je encoder des images ou d'autres fichiers ?

Non. Cet outil est conçu pour le texte uniquement. Pour intégrer une image dans du HTML ou du CSS, il faut un outil capable de lire les octets bruts du fichier et de produire une data URL.

Le Base64 est-il sûr pour stocker des mots de passe ?

Non. N’importe qui peut décoder du Base64 en une fraction de seconde. Les mots de passe doivent être stockés à l’aide d’un algorithme de hachage lent conçu pour cet usage, comme Argon2, scrypt ou bcrypt.

Quelle différence entre Base64 avec et sans remplissage ?

Le remplissage = sert seulement à obtenir une longueur multiple de quatre ; il ne contient aucune information. La plupart des décodeurs reconstituent les données sans lui. Le base64url l’omet souvent, car le signe = est lui-même un caractère réservé dans les URL.