Encoder et décoder en Base64
Encodez du texte ou un fichier en Base64, ou décodez-le, avec alphabet compatible URL, Data URI et retour à la ligne MIME déjà gérés.
Déposez vos fichiers ici
.txt, .b64, .base64 · jusqu’à 150 Mo
Comment encoder et décoder en Base64
- 1
Choisir encoder ou décoder
Le même écran sert dans les deux sens. Le sens est le premier réglage pour éviter qu’un contenu soit encodé deux fois par erreur.
- 2
Coller du texte ou déposer un fichier
Tout type de fichier peut être encodé. Pour le décodage, collez une chaîne, un Data URI ou déposez un fichier texte qui en contient un.
- 3
Copier le résultat ou le télécharger
La sortie décodée est reconnue automatiquement comme texte ou binaire et reçoit un nom avec la bonne extension.
À quoi sert Base64, et à quoi il ne sert pas
Base64 existe parce que certains canaux ne transportent que du texte imprimable : corps de courriel, champs de chaînes JSON, attributs HTML, en-têtes HTTP. Il transforme chaque groupe de trois octets en quatre caractères issus d’un alphabet de 64 caractères, ce qui explique pourquoi le résultat est toujours environ un tiers plus volumineux que l’entrée. C’est un encodage, pas un chiffrement : n’importe qui peut le décoder sans clé, et l’alphabet est public. Si le contenu est secret, Base64 ne le protège en rien, et un jeton collé dans un champ Base64 reste exposé exactement autant après encodage qu’avant.
Data URI et alphabet sûr pour les URL
Un Data URI entoure les octets encodés d’un préfixe qui indique leur type de média. Par exemple, data:image/png;base64,… peut être utilisé directement comme source d’image ou comme arrière-plan CSS. Lors de l’encodage d’un fichier, le type de média est lu à partir du fichier lui-même. Lors de l’encodage de texte collé, c’est vous qui l’indiquez. L’alphabet sûr pour les URL remplace + et / par - et _ et supprime le remplissage final, car ces trois caractères ont leur propre sens dans une URL ou un nom de fichier. Le décodage accepte l’un ou l’autre alphabet sans avoir besoin de le préciser, et ignore complètement les retours à la ligne. Les chaînes découpées au format MIME ou PEM se collent donc telles quelles.
Des erreurs précises plutôt que des résultats absurdes
Une chaîne Base64 qui contient un caractère hors alphabet, ou dont la longueur laisse un reste de un lorsqu’on la divise par quatre, ne peut pas être décodée de manière cohérente. Au lieu de renvoyer des octets tronqués, la position du caractère fautif est signalée pour qu’il soit facile à retrouver dans une longue chaîne. Un Data URI pour lequel les données sont pourcent-encodées plutôt qu’en Base64 est un cas réel et déroutant, puisque les deux commencent par data:. Ce type de chaîne est détecté et orienté vers le décodeur d’URL, au lieu d’être lu comme du Base64 et de produire des données illisibles.
Encodé dans votre navigateur, pas sur un serveur
La conversion s’exécute entièrement dans cet onglet en utilisant les primitives du navigateur, par blocs pour qu’un gros fichier n’épuise pas la mémoire. Rien n’est envoyé, ce qui est important car les contenus Base64 contiennent souvent des certificats, des clés et des documents privés.
Questions fréquentes
Le Base64 est-il une forme de chiffrement ?
Non. C’est un encodage réversible avec un alphabet public et aucune clé. Toute personne qui possède la chaîne peut retrouver les octets d’origine, donc il ne protège rien ; il permet seulement de transporter des données binaires via des canaux texte.
Qu’est-ce qu’un Data URI ?
Une chaîne qui transporte à la fois le type de média d’un fichier et son contenu en Base64, par exemple data:image/png;base64,iVBOR… Elle peut être utilisée directement comme source d’image ou arrière-plan CSS, ce qui évite une requête réseau séparée pour une petite ressource.
Pourquoi aurais-je besoin de l’alphabet sûr pour les URL ?
Parce que + et / ont un sens particulier dans les URL et les noms de fichier, et que = a son propre rôle dans les chaînes de requête. La variante sûre pour les URL utilise - et _ à la place et omet le remplissage, comme l’attendent les JWT et de nombreuses API.
Pourquoi le résultat est-il plus long d’un tiers que l’entrée ?
Trois octets deviennent quatre caractères par conception. La sortie fait donc 4/3 de la taille initiale avant tout retour à la ligne. Cette surcharge est le prix à payer pour n’utiliser que des caractères imprimables.
Comment décoder vers un fichier plutôt que vers du texte ?
Le mode automatique le fait déjà : si les octets décodés ne forment pas un texte UTF-8 valide, vous obtenez un fichier. Vous pouvez aussi forcer le chemin fichier et définir le nom. L’extension est corrigée à partir du type de média lorsqu’un Data URI en fournit un.
Pourquoi ai-je une erreur de caractère non valide ?
Parce que la chaîne contient un caractère en dehors de l’alphabet Base64, souvent un guillemet isolé ou une entité HTML prise en copiant, ou bien parce qu’elle a été tronquée. La position indiquée pointe exactement sur le caractère à examiner.
Mon fichier est-il envoyé sur un serveur ?
Non. L’encodage et le décodage s’exécutent localement dans votre navigateur en utilisant des fonctions intégrées, sans bibliothèque ni serveur, et rien n’est conservé après la fermeture de l’onglet.