Décodeur et encodeur Base64
Collez du Base64 et lisez le texte tout de suite, ou encodez du texte et des fichiers. L'outil comprend l'en-tête Authorization: Basic, les Secrets Kubernetes, les data URI et le Base64url, et indique la ligne et la colonne d'un caractère invalide.
Le Base64 transporte souvent des mots de passe et des jetons. Ici la conversion se fait dans votre navigateur : le contenu n'est envoyé à aucun serveur, ne passe pas dans l'URL et n'est pas enregistré.
Résultat
Rien à afficher pour l'instant
Collez du Base64 dans le champ ou essayez un exemple. Le résultat s'affiche ici pendant la saisie.
Vous insérez une image dans du HTML, du CSS ou un e-mail ? Le convertisseur d'image affiche un aperçu et prépare le data URI.
Qu'est-ce que le Base64
Le Base64 écrit n'importe quels octets avec seulement 64 caractères sans risque pour du texte : A à Z, a à z, 0 à 9, + et /. Chaque groupe de 3 octets devient 4 caractères, et le = final complète le dernier groupe. Il sert à faire passer des données binaires ou du texte accentué là où seul l'ASCII est accepté, comme les en-têtes HTTP, le JSON, le YAML et l'e-mail. Il n'y a ni clé ni mot de passe : tout le monde peut le décoder.
Où l'on croise le Base64 au quotidien
Dans l'en-tête Authorization: Basic, qui transporte utilisateur:mot de passe en Base64. Collé ici, la valeur ressort séparée en utilisateur et mot de passe.
Dans les Secrets Kubernetes, où chaque valeur sous data: est en Base64. Collez la sortie de kubectl get secret nom -o yaml pour voir toutes les clés décodées ensemble.
Dans les messages de file et les webhooks : Google Pub/Sub livre le corps dans message.data en Base64, et l'API Gateway d'AWS fait de même pour les corps binaires quand isBase64Encoded vaut true.
Dans des fichiers glissés dans du texte : pièces jointes d'e-mail (MIME), certificats PEM, PDF ou images envoyés en JSON par des API.
Base64 et Base64url
Le Base64url remplace + par - et / par _, parce que + et / ont un sens dans les URL et les chemins de fichier, et il omet souvent le = final. C'est le format des JWT et de nombreux jetons dans les liens. Ce décodeur accepte les deux sans que vous ayez à choisir.
| Variante | Caractères en plus | = à la fin | Où on le trouve |
|---|---|---|---|
| Base64 (RFC 4648, section 4) | + / | Oui | En-tête Basic, Kubernetes, MIME, PEM, data URI |
| Base64url (RFC 4648, section 5) | - _ | En général non | JWT, paramètres d'URL, noms de fichier |
Pourquoi le texte décodé est bizarre
Si vous voyez é à la place de é, le texte a été écrit en UTF-8 et lu en Latin-1, ou l'inverse. Ici le texte est lu en UTF-8 et, si les octets ne sont pas de l'UTF-8 valide, en Windows-1252 avec un avertissement. Si tout le résultat est illisible, le contenu n'est pas du texte : ce peut être une image, un PDF, un ZIP ou un gzip. Dans ce cas la page indique le type et propose le téléchargement.
Le Base64 dans le terminal
Sous Linux, echo -n 'texte' | base64 encode et base64 -d décode. Sous macOS la commande est la même ; les anciennes versions utilisent -D pour décoder. Dans PowerShell, [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes('texte')) encode. Sans -n, echo ajoute un saut de ligne et le Base64 change : echo -n user donne dXNlcg==, et echo user donne dXNlcgo=.
Le Base64 ne protège rien
Le Base64 change seulement la façon d'écrire les octets. Un Secret Kubernetes sans chiffrement dans etcd ni contrôle d'accès est lisible par quiconque peut le lire, et un en-tête Basic en HTTP sans TLS livre le mot de passe à toute personne sur le trajet. Pour cacher une valeur, utilisez du chiffrement ; pour prouver qu'elle n'a pas changé, un hash ou un HMAC.
Questions fréquentes sur le Base64
Décodage, erreurs courantes, en-tête Basic, Kubernetes et confidentialité.