Pack Camo

Base64 : encoder et décoder

Encodez du texte ou des fichiers en Base64 et décodez le Base64, compatible UTF-8. Tout s'exécute localement — rien n'est téléversé.

Entrée
Text · any file · Base64
Sortie
Base64 · Base64URL · text · file

Texte

36 caractères · 50 B

Base64

68 caractères · +36% par rapport aux octets UTF-8

SGVsbG8sIHdvcmxkISBIw6lsbG8sIHfDtnJsZCEg44GT44KT44Gr44Gh44GvIPCfkYs=

Encodage et décodage Base64, pour le texte comme pour les fichiers

Cet encodeur et décodeur Base64 convertit du texte ou n'importe quel fichier en Base64, et inversement, pendant que vous tapez. Le texte est d'abord encodé en UTF-8 : les accents, les emoji et les écritures non latines survivent à l'aller-retour, et la variante Base64URL, sûre pour les URL, est à un clic. Tout se passe dans votre navigateur : le texte que vous collez et les fichiers que vous déposez ne sont jamais téléversés.

Comment encoder ou décoder du Base64

  1. Choisissez Texte pour travailler sur ce que vous pouvez taper ou coller, ou Fichier pour encoder un fichier ou retransformer une chaîne Base64 en fichier.
  2. Choisissez Encoder ou Décoder. Si vous collez du Base64 en mode encodage, l'outil le remarque et propose de le décoder à la place.
  3. À l'encodage, choisissez le Base64 standard ou sûr pour les URL, si vous gardez le remplissage =, et si les lignes sont coupées à 76 caractères.
  4. Copiez le résultat, renvoyez-le dans l'entrée pour inverser l'opération, ou envoyez-le vers un autre outil. Les fichiers décodés peuvent être téléchargés ; l'extension est déduite de la signature du fichier lui-même.

Ce qu'est le Base64, et pourquoi il existe

Le Base64 représente des octets quelconques à l'aide de 64 caractères sûrs seulement : A–Z, a–z, 0–9, + et /. Chaque groupe de trois octets en entrée devient quatre caractères en sortie, et quand la longueur de l'entrée n'est pas un multiple de trois, un ou deux signes = complètent la fin.

Il existe parce que de nombreux canaux ont été conçus pour du texte, pas pour des données binaires. L'e-mail (MIME), le JSON, le XML, les attributs HTML, les en-têtes HTTP et les variables d'environnement peuvent tous transporter du Base64 sans risque, là où des octets bruts seraient abîmés. C'est pourquoi on le croise dans les pièces jointes d'e-mails, les URI data:, les en-têtes d'authentification Basic, les JSON Web Tokens et les charges utiles d'API qui embarquent des fichiers.

Le Base64 est un encodage, pas un chiffrement. N'importe qui peut le décoder, il ne cache donc rien ; si une valeur doit rester secrète, chiffrez-la. Pour vérifier que des données n'ont pas été modifiées, une empreinte calculée avec le générateur de hash est le bon outil.

Base64 standard, Base64URL et retour à la ligne

Le décodeur accepte toutes ces formes : l'un ou l'autre alphabet, avec ou sans remplissage, avec ou sans sauts de ligne et espaces. Une URI data:…;base64, complète peut être collée telle quelle.

Standard (RFC 4648)
Utilise + et / et complète avec =. C'est ce que produisent MIME, les URI data, la plupart des bibliothèques et la commande base64.
Sûr pour les URL, Base64URL
Remplace + par - et / par _ pour que le résultat puisse figurer dans une URL ou un nom de fichier sans encodage pourcent. Les JWT l'utilisent sans remplissage, d'où l'option de remplissage.
Retour à la ligne MIME
L'e-mail impose des lignes de 76 caractères au plus : les encodeurs MIME insèrent donc un saut de ligne tous les 76 caractères. Activez-le pour coller dans la source d'un e-mail ou un bloc de type PEM ; laissez-le désactivé pour le JSON, les URL et le code.

Pourquoi le texte doit d'abord passer en UTF-8

Le Base64 encode des octets, pas des caractères : le texte doit donc être transformé en octets avant d'être encodé. La fonction native btoa() du navigateur n'accepte que les caractères jusqu'à U+00FF et lève une erreur sur tout le reste, c'est pourquoi les encodeurs naïfs échouent sur « € », « 日本 » ou un emoji. Cet outil encode le texte en UTF-8, l'encodage qu'attend presque tout système : é devient les deux octets C3 A9 et se décode en é sur n'importe quelle plateforme.

Au décodage, l'outil vérifie que les octets forment de l'UTF-8 valide. Si ce n'est pas le cas, le Base64 contient presque certainement un fichier binaire plutôt que du texte, et l'outil le signale — en précisant le type de fichier quand il en reconnaît la signature — au lieu d'afficher un écran de caractères incompréhensibles.

Fichiers : taille, signatures et grosses entrées

Le Base64 grossit les données d'environ un tiers : quatre caractères pour trois octets, plus les sauts de ligne si vous coupez les lignes. Une image de 3 Mo devient environ 4 Mo de texte. La vue fichier affiche les deux tailles avant toute copie, ce qui vaut le coup d'œil avant d'intégrer un gros fichier dans une feuille de style ou un document JSON.

Décoder une chaîne Base64 en fichier fonctionne dans l'autre sens. Les premiers octets de la plupart des formats de fichier forment une signature fixe — 89 50 4E 47 pour le PNG, %PDF pour le PDF, PK pour le ZIP (et donc le DOCX et le XLSX) — que l'outil lit pour nommer correctement le téléchargement et prévisualiser les images. Les gros fichiers sont encodés par morceaux avec une barre de progression pour que la page reste réactive, et les résultats très longs ne sont prévisualisés qu'en partie, tandis que la copie et le téléchargement vous donnent toujours la totalité.

Pour les images en particulier, le convertisseur d'image en Base64 écrit aussi des extraits HTML, CSS et Markdown prêts à coller.

Questions fréquentes

Comment décoder une chaîne Base64 ?
Choisissez Décoder et collez la chaîne. Le texte décodé apparaît pendant que vous tapez. Si le Base64 contient un fichier plutôt que du texte, passez en mode Fichier pour le télécharger avec la bonne extension.
Le Base64 est-il un chiffrement ?
Non. Le Base64 est un encodage réversible que n'importe qui peut décoder sans clé. Il permet de transporter des données binaires sous forme de texte ; il ne les protège pas.
Pourquoi le Base64 rend-il les fichiers plus lourds ?
Chaque groupe de trois octets devient quatre caractères : la sortie est donc environ 33 % plus lourde que l'entrée, un peu plus encore si les lignes sont coupées pour l'e-mail.
Quelle est la différence entre Base64 et Base64URL ?
Base64URL remplace les caractères + et / par - et _ pour que le résultat soit utilisable dans les URL et les noms de fichiers, et supprime généralement le remplissage =. Les JSON Web Tokens utilisent Base64URL.
Pourquoi mon texte décodé ressemble-t-il à des symboles aléatoires ?
Le Base64 contient probablement des données binaires comme une image, un PDF ou des octets compressés, et non du texte. L'outil le détecte et propose de le traiter comme un fichier, que vous pouvez ensuite télécharger.
Que signifient les signes = à la fin ?
C'est du remplissage. Le Base64 travaille par groupes de trois octets, et quand l'entrée s'arrête au milieu d'un groupe, un ou deux signes = complètent le dernier bloc de quatre caractères. Beaucoup de décodeurs, dont celui-ci, fonctionnent avec ou sans.
Peut-on convertir une chaîne Base64 en PDF ou en image ?
Oui. En mode Fichier, choisissez Décoder et collez la chaîne ou l'URI data complète. L'outil reconnaît PNG, JPEG, GIF, WebP, PDF, ZIP, GZIP et d'autres formats à leurs premiers octets, prévisualise les images et vous laisse télécharger le fichier.
Peut-on coller des données sensibles ici sans risque ?
L'encodage et le décodage s'exécutent entièrement dans votre navigateur. Rien de ce que vous collez ou déposez n'est téléversé ni stocké.