Outils / Texte et données / Encodeur/Décodeur Base64
Côté client

Encodeur/Décodeur Base64

Encodez du texte en Base64 ou décodez un payload Base64 en clair, le tout dans votre navigateur sans aucun envoi.

Ce que fait l'outil

  • Encodage de texte en Base64, accents et emoji compris
  • Décodage de Base64 vers du texte lisible
  • Alphabet standard (+/ avec =) ou URL-safe (-_ sans remplissage)
  • Décodage avec ou sans les signes = finaux
  • Traitement via WebAssembly, rien ne quitte l'onglet

Cet outil convertit du texte en Base64 et du Base64 en texte, dans la variante standard comme dans la variante URL-safe. Tapez dans le champ Texte brut et cliquez sur Encoder ↓, ou collez une chaîne Base64 dans le champ Base64 et cliquez sur Décoder ↑. Le travail est effectué par la bibliothèque Rust base64 compilée en WebAssembly, dans votre navigateur. Rappel utile : Base64 n'est pas un chiffrement. N'importe qui retrouve le texte d'origine en une seconde, d'où l'intérêt de ne pas coller un identifiant ou un token encodé sur un site tiers. Ici, rien n'est envoyé.

Pour une page verrouillée sur un seul sens, utilisez l'encodeur texte vers Base64 ou le décodeur Base64 vers texte.

Comment encoder ou décoder du Base64

  1. Choisissez la variante : Standard (sélectionnée par défaut) ou URL-safe.
  2. Pour encoder, saisissez votre texte dans le champ du haut et cliquez sur Encoder ↓. Le Base64 apparaît en bas.
  3. Pour décoder, collez la chaîne Base64 dans le champ du bas et cliquez sur Décoder ↑. Le texte apparaît en haut.
  4. Copiez l'un ou l'autre côté avec son bouton de copie. Le message d'état indique la longueur du résultat.

Standard ou URL-safe : laquelle choisir ?

  • Standard (RFC 4648, section 4) : alphabet A-Z a-z 0-9 + /, sortie complétée par des = jusqu'à un multiple de quatre caractères. C'est la variante des pièces jointes d'e-mail (MIME), de l'en-tête d'authentification HTTP Basic, des data URI, des certificats PEM et de la plupart des API.
  • URL-safe (RFC 4648, section 5) : + devient - et / devient _, et l'encodeur omet ici le remplissage =. On la trouve dans les tokens JWT, les paramètres d'URL, les noms de fichiers et partout où + et / seraient mal interprétés.

Le décodage doit utiliser la variante d'origine. Une chaîne contenant - ou _ est URL-safe et échoue en mode Standard ; une chaîne avec + ou / est standard. Dans les deux modes, les = finaux sont facultatifs et les espaces en début ou fin de chaîne sont ignorés.

Le principe du Base64 en bref

Base64 prend les octets de votre texte trois par trois (24 bits) et les écrit sous forme de quatre caractères d'un alphabet de 64 (6 bits chacun). La sortie est donc toujours environ 33 % plus longue que l'entrée. Le texte est d'abord converti en octets UTF-8, ce qui garantit que les accents français et les emoji passent correctement : é€ donne w6nigqw=. Au décodage, les octets sont relus en UTF-8.

Limites et cas particuliers

  • Du texte uniquement. Si les octets décodés ne forment pas un texte UTF-8 valide (une image, un PDF, un ZIP), l'outil affiche « Decoded bytes are not valid UTF-8 » plutôt que des caractères illisibles. Pour une image, passez par le convertisseur image vers Base64, qui gère les data URI dans les deux sens.
  • Pas de retour à la ligne dans la chaîne. Un Base64 coupé tous les 76 caractères, comme dans un e-mail ou un fichier PEM, doit être remis sur une seule ligne avant décodage ; sinon l'outil signale « Invalid symbol » avec la position fautive.
  • Pas de préfixe data URI. Retirez data:text/plain;base64, avant de décoder.
  • JWT : chaque partie d'un token est en Base64 URL-safe. Décodez l'en-tête ou le payload en mode URL-safe, ou lisez toutes les parties d'un coup avec le décodeur JWT.

Usages typiques

  • Construire un en-tête d'authentification HTTP Basic : encoder utilisateur:motdepasse puis envoyer Authorization: Basic suivi du résultat.
  • Lire un Secret Kubernetes, dont les valeurs sont stockées en Base64.
  • Inspecter le contenu d'un webhook, d'un cookie ou d'un champ d'API qui se révèle être du Base64.
  • Glisser un court texte ou une configuration JSON dans une variable d'environnement ou un paramètre d'URL.

Par rapport à la ligne de commande

Sous macOS et Linux, echo -n 'texte' | base64 encode et base64 -d (ou -D sur les anciens macOS) décode ; sous Windows, PowerShell passe par [Convert]::ToBase64String. Attention au -n : sans lui, echo ajoute un retour à la ligne qui se retrouve encodé dans la valeur, source classique d'erreurs « mot de passe incorrect ». Dans cet outil, ce que vous voyez dans le champ est exactement ce qui est encodé.

Confidentialité : Base64 ne cache rien

Base64 étant trivialement réversible, les chaînes que l'on décode sont souvent sensibles : identifiants d'authentification Basic, secrets Kubernetes, tokens d'API, cookies de session. Les coller dans un décodeur en ligne qui traite l'entrée côté serveur expose la valeur en clair. Ici, encodage et décodage s'exécutent en WebAssembly dans l'onglet, sans requête réseau pour vos données, qui restent sur votre poste et sous votre contrôle.

Foire aux questions

Base64 est-il une forme de chiffrement ?
Non. C'est un encodage qui permet de transporter des données binaires sous forme de texte. N'importe qui peut le décoder sans clé : ne comptez jamais dessus pour protéger un mot de passe ou un token.
Mon texte est-il envoyé à un serveur ?
Non. Tout s'exécute dans votre navigateur via WebAssembly. Rien n'est transmis ni conservé.
Pourquoi le décodage échoue-t-il avec « Invalid symbol » ?
La chaîne contient un caractère hors de l'alphabet choisi : retour à la ligne, espace au milieu, ou - et _ en mode Standard. Supprimez les retours à la ligne ou passez en URL-safe.
Pourquoi le décodage échoue-t-il avec « not valid UTF-8 » ?
Le Base64 contient des données binaires, pas du texte, et cet outil n'affiche que du texte. Utilisez un outil adapté au type de fichier, comme le convertisseur d'images pour une photo.
Les signes = à la fin sont-ils obligatoires ?
Pas pour décoder ici : le remplissage est facultatif dans les deux modes. D'autres décodeurs l'exigent, gardez-le donc quand vous réutilisez une sortie Standard ailleurs.
Les accents et les emoji sont-ils gérés ?
Oui. Le texte est encodé en UTF-8, qui couvre tous les caractères Unicode, et décodé de la même façon.