Encoder et décoder en Base64
Convertissez un texte en Base64 ou décodez une chaîne Base64 en texte lisible. Les accents et les emojis sont correctement gérés (UTF-8).

À quoi sert le Base64
Le Base64 transforme des données binaires en une chaîne de 64 caractères imprimables (A–Z, a–z, 0–9, + et /). Son but n’est pas de protéger l’information, mais de la faire transiter sans dommage par des canaux conçus pour du texte simple.
- Pièces jointes d’e-mail : le protocole SMTP ne transporte que du texte ; toute pièce jointe est encodée en Base64.
- Images dans du CSS ou du HTML : les
data:URI intègrent une image directement dans le code. - Jetons JWT : leurs trois parties sont encodées en Base64URL.
- Authentification HTTP Basic : l’en-tête
Authorizationcontientidentifiant:motdepasseencodé en Base64.
Ce n’est PAS du chiffrement
C’est la confusion la plus fréquente, et la plus dangereuse. Le Base64 est une simple transformation réversible : n’importe qui peut décoder la chaîne en une seconde, sans clé ni mot de passe. Ne l’utilisez jamais pour « cacher » un mot de passe, une clé d’API ou une donnée personnelle : c’est équivalent à l’écrire en clair.
Le poids augmente de 33 %
Trois octets de données deviennent quatre caractères Base64. Une image de 300 ko pèse donc 400 ko une fois encodée. C’est pourquoi l’intégration d’images en data: URI ne se justifie que pour de petits fichiers (icônes, logos de quelques kilo-octets).
Questions fréquentes
Que signifient les « = » à la fin ?
Ce sont des caractères de remplissage. Le Base64 travaille par blocs de trois octets ; quand le dernier bloc est incomplet, un ou deux signes « = » sont ajoutés. Leur présence est normale et ils font partie de la chaîne : ne les supprimez pas.
Les accents et les emojis fonctionnent-ils ?
Oui. Le texte est d’abord converti en UTF-8, puis encodé. C’est ce qui manque à la fonction btoa() native des navigateurs, qui échoue sur tout caractère non-latin.
Pourquoi le décodage échoue-t-il ?
Le plus souvent parce que la chaîne a été tronquée, que les « = » finaux ont été supprimés, ou qu’il s’agit de Base64URL (où + et / sont remplacés par - et _). Vérifiez que vous avez copié la chaîne entière.