Aller au contenu
ToolPika

Encoder et décoder en Base64

Encodez un texte ou un fichier en Base64, ou collez du Base64 pour le décoder. Les accents et les émojis fonctionnent, et rien ne quitte votre navigateur.

Mode
Jusqu’à 5 Mo. Le fichier reste sur votre appareil.

Fonctionne dans votre navigateur. Rien de ce que vous saisissez n’est envoyé à un serveur.

Comment ça marche

Encodage. Le texte est d’abord converti en octets UTF-8, toutes les langues et tous les émojis sont donc pris en charge. Les octets sont ensuite lus par groupes de trois (24 bits), découpés en quatre groupes de 6 bits, et chaque groupe s’écrit avec l’un des 64 caractères. Si l’entrée n’est pas un multiple de trois octets, la sortie est complétée par des =.

Décodage. Les espaces et retours à la ligne sont ignorés, le remplissage manquant est rajouté et un préfixe data:…;base64, est retiré, vous pouvez donc coller du Base64 directement depuis un e-mail, un fichier PEM ou une balise image HTML. Si les octets décodés ne forment pas un texte valide (une image, par exemple), l’outil vous le signale et vous permet de les télécharger sous forme de fichier.

Les fichiers sont encodés octet par octet. Cochez « En URL data: » pour obtenir une chaîne à placer directement dans un <img src> ou un url() CSS.

Exemples

Texte Base64
foobar Zm9vYmFy
foob Zm9vYg==
café Y2Fmw6k=
😀 8J+YgA==
subjects?_d c3ViamVjdHM/X2Q= (compatible URL : c3ViamVjdHM_X2Q)

Le Base64 dans le code

Langage Encoder du texte Décoder
JavaScript (navigateur) btoa(String.fromCharCode(...new TextEncoder().encode(s))) new TextDecoder().decode(Uint8Array.from(atob(b), c => c.charCodeAt(0)))
Node.js Buffer.from(s).toString('base64') Buffer.from(b, 'base64').toString()
Python base64.b64encode(s.encode()).decode() base64.b64decode(b).decode()
Shell echo -n 'texte' | base64 echo 'dGV4dGU=' | base64 -d

Questions fréquentes

À quoi sert le Base64 ?

Il transforme n’importe quelle donnée en texte brut composé de 64 caractères sûrs (A–Z, a–z, 0–9, + et /), pour que des données binaires comme des images ou des clés puissent passer par des systèmes prévus pour du texte, comme l’e-mail, le JSON, le XML, les URL et le HTML.

Le Base64 est-il un chiffrement ?

Non. N’importe qui peut décoder du Base64 instantanément ; il ne cache rien. Ne l’utilisez jamais pour protéger des mots de passe ou des données personnelles.

Pourquoi le Base64 est-il plus volumineux que l’original ?

Chaque groupe de 3 octets devient 4 caractères, les données encodées sont donc environ 33 % plus grandes, plus jusqu’à deux signes = de remplissage à la fin.

Qu’est-ce que le Base64 compatible URL ?

Une variante qui remplace + par - et / par _, et supprime en général le remplissage =, pour que le résultat puisse être utilisé dans des URL et des noms de fichiers sans échappement. Elle est courante dans les JSON Web Tokens (JWT). Le décodeur de cette page accepte automatiquement les deux variantes.

Pourquoi btoa() échoue-t-il sur mon texte en JavaScript ?

La fonction btoa() du navigateur n’accepte que des caractères jusqu’au code 255, un texte avec des émojis ou la plupart des lettres non latines provoque donc une erreur. Il faut d’abord encoder le texte en octets UTF-8, ce que fait cet outil.