Encoder en Base64
Un texte, une image ou n'importe quel fichier — transformé correctement en Base64. Les caractères accentués et les emoji sont préservés, ce que les implémentations habituelles en une ligne ne savent pas faire. Rien n'est conservé.
- Jamais conservé
- Pas de file d'attente, pas d'attente
- Sans inscription, sans filigrane
Le texte est encodé en UTF-8 : accents et emoji sont préservés.
Le résultat (Base64) s'affiche ici.
Comment ça marche
Collez du texte ou déposez un fichier
Le texte est encodé en UTF-8. Un fichier est encodé octet par octet, et n'est jamais conservé.
Choisissez la variante
Base64 standard, Base64URL compatible URL pour les jetons et chaînes de requête, ou une data URI complète prête à coller dans du CSS ou une balise <img>.
Copiez-le
Copiez le résultat, ou téléchargez-le sous forme de fichier texte s'il est volumineux.
Pourquoi la taille augmente d'exactement un tiers
Le Base64 prend trois octets à la fois et les écrit sous forme de quatre caractères, chacun portant six des vingt-quatre bits. Quatre divisé par trois : voilà d'où viennent les fameux 33 % — c'est de l'arithmétique, pas de l'inefficacité, et aucun encodeur ne fait mieux en restant dans la plage des caractères imprimables. Quand les données ne se divisent pas exactement en groupes de trois, le dernier groupe est complété et marqué par un ou deux signes =, ce qui explique que la longueur d'une chaîne Base64 soit toujours un multiple de quatre.
Il existe deux alphabets, et choisir le mauvais est le problème le plus fréquent de ceux qui arrivent ici. L'alphabet standard se termine par + et /, qui ont tous deux un sens dans une URL — le plus devient une espace dans une chaîne de requête et la barre oblique ressemble à un séparateur de chemin. La variante compatible URL utilise - et _ à la place ; c'est celle des JSON Web Tokens, des noms de fichiers et de tout ce qui apparaît dans une adresse. Pour le reste, elles sont identiques, et une valeur encodée avec l'une puis décodée avec l'autre échoue d'une manière qui ressemble à une corruption des données.
Le retour à la ligne est l'autre détail qui dépend du contexte. Les pièces jointes d'e-mail attendent des lignes de 76 caractères, les certificats et clés PEM des lignes de 64, et une data URI ou un champ JSON aucun saut de ligne. Il est désactivé par défaut ici, car le texte non découpé est aujourd'hui le cas courant ; activez-le quand la destination est un en-tête d'e-mail ou un bloc -----BEGIN-----, qui refusera une unique ligne interminable.
Le Base64 n'est pas du chiffrement et n'offre absolument aucune protection. C'est un simple changement d'alphabet — n'importe qui peut l'inverser instantanément, et tout scanner de sécurité le fait automatiquement. Son rôle est de faire transiter des données binaires par des canaux qui n'acceptent que du texte : corps d'e-mail, champs JSON, documents XML, data URI dans une feuille de style. S'en servir pour cacher un mot de passe dans une configuration ne dissimule rien à quiconque y regarde.
Si vous cherchez autre chose
En ligne de commande, base64 -w 0 file.bin encode sans retour à la ligne sous Linux et un simple base64 fait de même sous macOS, tandis que openssl base64 -A fonctionne de la même façon partout. Pour l'alphabet compatible URL, basenc --base64url est celui qui le fait correctement sans étape de substitution.
Pour les gros fichiers, tout ce qui se passe ici est la mauvaise approche — le fichier entier est gardé en mémoire, et l'encodage le gonfle d'un tiers avant toute autre chose. Les outils en ligne de commande traitent les données en flux, et dans le code, chaque langage dispose d'un encodeur incrémental. Il vaut aussi la peine de se demander si le Base64 est vraiment nécessaire : envoyer le binaire en multipart/form-data ou comme corps de requête brut évite à la fois la consommation mémoire et les 33 %.
Questions fréquentes
Mon texte ou mon fichier est-il conservé quelque part ?
Non. Rien n'est conservé, rien n'est journalisé, et aucun serveur ne le voit jamais — et l'outil continue de fonctionner réseau déconnecté. Pour ces outils en particulier, ce n'est pas un détail. Ce que l'on colle dans les encodeurs et décodeurs en ligne est souvent actif : jetons de session, clés d'API, en-têtes Authorization, données clients. Coller l'un d'eux dans une page qui l'envoie quelque part, c'est le divulguer, quelles que soient les promesses du site en matière de suppression.
Pourquoi les caractères accentués et les emoji fonctionnent-ils ici ?
Parce que le texte est converti en octets UTF-8 avant d'être encodé, ce qui est le bon ordre et l'étape que la plupart des implémentations rapides sautent. La fonction `btoa` du navigateur ne sait pas du tout traiter du texte — elle prend un octet par caractère, si bien que `btoa("café")` lève tout simplement une erreur. Le contournement très répandu, `btoa(unescape(encodeURIComponent(s)))`, fonctionne par hasard et échoue sur les emoji et les autres caractères hors de la plage de base. Cette page encode l'UTF-8 correctement, une seule fois : 日本語 et 🎉 passent sans problème et se décodent à l'identique.
Qu'est-ce que le Base64URL et quand en ai-je besoin ?
C'est du Base64 avec deux caractères remplacés : + devient -, / devient _, et le remplissage = final est supprimé. Il existe parce que +, / et = ont tous un sens dans une URL : le Base64 ordinaire est donc abîmé quand il transite dans une chaîne de requête ou un chemin. Les JWT, les jetons OAuth et tout ce qui se trouve dans une URL utilisent le Base64URL. Si vous placez le résultat dans un lien, choisissez-le.
Le Base64 chiffre-t-il ou protège-t-il quoi que ce soit ?
Non, et il faut le dire sans détour. Le Base64 est un encodage, pas un chiffrement — il n'y a ni clé ni secret. Quiconque voit la chaîne peut la décoder en une étape, y compris sur ce site. Il sert à transporter des données binaires en toute sécurité par des canaux qui n'acceptent que du texte, comme les pièces jointes d'e-mail et les data URI. Si quelque chose doit rester secret, il faut le chiffrer ; le Base64 n'offre absolument aucune protection.
Pourquoi le Base64 est-il plus volumineux que mon fichier ?
Environ 33 % plus volumineux, toujours. Le Base64 représente chaque groupe de 3 octets par 4 caractères de texte : la taille augmente donc d'un tiers par construction, plus un peu de remplissage. C'est le prix de la conversion du binaire en texte, et c'est pourquoi intégrer une grosse image en data URI dans votre CSS est rarement une bonne affaire.
Puis-je encoder une image en data URI ?
Oui — déposez l'image et choisissez « Data URI ». Vous obtenez la chaîne complète `data:image/png;base64,…` avec le bon type de média déjà renseigné, prête à coller dans une feuille de style, une balise <img> ou un modèle d'e-mail.
Y a-t-il une limite de taille ?
La mémoire disponible, plutôt qu'un plafond fixe, et elle est large — des fichiers de plusieurs mégaoctets s'encodent sans problème. L'encodage se fait par blocs justement pour gérer les gros fichiers ; l'implémentation naïve plante vers 125 KB avec « Maximum call stack size exceeded », un bug présent dans un grand nombre d'encodeurs en ligne.
Bon à savoir : Le Base64 rend les données environ 33 % plus volumineuses — c'est le principe du format, pas un défaut. Les fichiers sont chargés entièrement en mémoire : un très gros fichier peut donc saturer un onglet sur téléphone avant la fin. Le retour à la ligne est désactivé par défaut ; les formats e-mail et PEM l'exigent.
Intégrez cet outil à votre site
Gratuit pour tout blog, page de cours ou article d'aide. Collez un seul extrait de code et vos visiteurs pourront l'utiliser directement sur votre page.
Voir aussi : Outils développeur
Décoder du Base64
Retrouvez le texte ou le fichier derrière du Base64
Encoder une URL
Un texte sûr à placer dans une URL
Générateur de hash
MD5, SHA-1, SHA-256, SHA-384 et SHA-512
Décodeur JWT
Lisez le contenu d'un jeton, en toute confidentialité
Générateur d'UUID
v4 pour les secrets, v7 pour les clés de base de données
Formateur JSON
Rendez lisible un JSON illisible