Dev Tools

Encodeur / Décodeur Base64

Encodez ou décodez du texte en Base64 instantanément. Supporte l'UTF-8, traitement 100 % local.

Besoin de formater du JSON ?

Formatez, validez et minifiez votre JSON avec indentation configurable.

Formater du JSON

Estimation indicative. Ne constitue pas un conseil fiscal ou financier. Consultez un professionnel pour votre situation personnelle.

Questions fréquentes

Qu'est-ce que le Base64 ?

Le Base64 est un système d'encodage qui convertit des données binaires en texte ASCII. Il utilise un alphabet de 64 caractères (A-Z, a-z, 0-9, +, /) pour représenter les données.

Chaque groupe de 3 octets est converti en 4 caractères Base64, ce qui augmente la taille d'environ 33 %.

Pourquoi utiliser le Base64 ?

Le Base64 est utilisé pour transmettre des données binaires dans des canaux qui ne supportent que du texte : emails (MIME), URLs, attributs HTML, data URI, tokens d'authentification (JWT), et certificats PEM.

Il garantit que les données ne seront pas altérées lors du transport.

Quelle est la différence entre Base64 standard et Base64 URL-safe ?

Le Base64 standard utilise les caractères + et / qui ont une signification spéciale dans les URLs. Le Base64 URL-safe remplace + par - et / par _ pour être utilisable directement dans les URLs et noms de fichiers sans encodage supplémentaire.

Le Base64 est-il un chiffrement ?

Non, le Base64 est un encodage, pas un chiffrement. Il ne protège pas les données : n'importe qui peut décoder un texte Base64 en quelques secondes. Pour protéger des données sensibles, utilisez un algorithme de chiffrement comme AES ou un hash sécurisé comme SHA-256.

Comment encoder du texte UTF-8 en Base64 ?

En JavaScript, la fonction btoa() ne supporte que les caractères ASCII. Pour encoder du texte UTF-8 (accents, emojis…), il faut d'abord convertir la chaîne en octets via TextEncoder, puis encoder en Base64.

Cet outil gère automatiquement l'UTF-8.

Base64 encode decode : comprendre l'encodage Base64 et ses usages

Qu'est-ce que l'encodage Base64 ?

Le Base64 est un système d'encodage qui convertit des données binaires en une représentation textuelle ASCII. Il est défini par la RFC 4648 (IETF, 2006) et utilise un alphabet de 64 caractères : les lettres majuscules A-Z, les minuscules a-z, les chiffres 0-9, et les caractères + et /. Le caractère = sert de padding pour que la sortie soit toujours un multiple de 4 caractères.

Le principe est simple : chaque groupe de 3 octets (24 bits) est découpé en 4 blocs de 6 bits, chacun correspondant à un caractère de l'alphabet Base64. Cette transformation augmente la taille des données d'environ 33 %, mais garantit que le résultat ne contient que des caractères ASCII imprimables.

3 octets binaires (24 bits) → 4 caractères Base64 (augmentation de ~33 %)

Cas d'utilisation courants

L'encodage Base64 est utilisé dans de nombreux contextes où les données binaires doivent transiter par des canaux texte :

  • Emails (MIME) : les pièces jointes sont encodées en Base64 pour être intégrées dans le corps du message, qui ne supporte que l'ASCII 7 bits.
  • Data URI : les images peuvent être intégrées directement dans le HTML ou le CSS via data:image/png;base64,..., évitant une requête HTTP supplémentaire.
  • Tokens d'authentification : les JWT (JSON Web Tokens) encodent leur header et payload en Base64URL.
  • Certificats PEM : les certificats SSL/TLS et les clés cryptographiques sont stockés en Base64 entre des marqueurs -----BEGIN CERTIFICATE-----.

+33 %

d'augmentation de taille lors de l'encodage Base64 (3 octets deviennent 4 caractères)

Base64 standard vs Base64 URL-safe

Comparaison des variantes Base64

Base64 standard Email, PEM, Data URI

Caractères : A-Z, a-z, 0-9, +, / | Padding : Oui (=)

Base64 URL-safe JWT, URLs, noms de fichiers

Caractères : A-Z, a-z, 0-9, -, _ | Padding : Optionnel

Source : RFC 4648, sections 4 et 5

La variante Base64 URL-safe remplace les caractères + par - et / par _. Ces substitutions évitent les conflits avec les caractères réservés dans les URLs et les noms de fichiers. Le padding = est souvent omis dans cette variante car la longueur originale peut être déduite de la longueur encodée.

Encodage

Texte → Base64

btoa() ou TextEncoder + btoa

Décodage

Base64 → Texte

atob() + TextDecoder

Base64 et UTF-8 en JavaScript

En JavaScript, les fonctions natives btoa() et atob() ne gèrent que les caractères ASCII (code points 0-255). Pour encoder du texte contenant des accents, des emojis ou d'autres caractères Unicode, il faut d'abord convertir la chaîne en octets UTF-8 via TextEncoder, puis encoder ces octets en Base64. Le processus inverse utilise atob() puis TextDecoder.

Cet outil gère automatiquement l'UTF-8, ce qui signifie que vous pouvez encoder sans problème du texte contenant des caractères accentués (é, à, ç) ou des emojis.

Base64 n'est pas du chiffrement

Le Base64 est un encodage, pas un chiffrement. N'importe qui peut décoder une chaîne Base64 instantanément. Ne l'utilisez jamais pour protéger des données sensibles. Pour la sécurité, utilisez un algorithme de chiffrement comme AES ou un hash comme SHA-256.

Erreurs fréquentes à éviter

  • Confondre encodage et chiffrement. Le Base64 ne protège pas les données. Un mot de passe encodé en Base64 est lisible par quiconque connaît le format.
  • Ignorer le padding. Une chaîne Base64 dont la longueur n'est pas un multiple de 4 provoquera une erreur avec atob(). Ajoutez les caractères = manquants.
  • Utiliser btoa() sur de l'UTF-8 directement. btoa("café") échouera car é dépasse le code point 255. Passez par TextEncoder d'abord.
  • Stocker des images volumineuses en Data URI. Une image de 100 Ko en Base64 pèsera ~133 Ko et ne bénéficiera pas de la mise en cache du navigateur. Préférez les fichiers externes pour les images de plus de quelques Ko.

Sources et références

Dev & Tech

Sources : RFC 4648 (IETF, 2006) · MDN Web Docs (btoa, atob, TextEncoder, TextDecoder). Traitement entièrement côté client, aucune donnée n'est envoyée à un serveur. Dernière mise à jour : avril 2026.