> décodeur base64 | paste | decode <
// Collez n'importe quelle chaîne Base64 — standard, URL-safe ou sans padding — et décodez en texte UTF-8 instantanément. Exécuté à 100 % dans votre navigateur.
Détection automatique du format
Détecte automatiquement Base64 standard RFC 4648, Base64 URL-safe (-_) et padding manquant. Aucune configuration nécessaire — collez simplement.
100 % dans le navigateur
Vos chaînes Base64 ne quittent jamais votre appareil. Aucun téléversement serveur, aucun journal, aucune télémétrie. Sûr pour jetons, identifiants et données privées.
Décodage instantané
Décode pendant la frappe. Gère texte multi-octets UTF-8, emojis, JSON, XML, binaire en Base64. Taille d'entrée illimitée.
// FONCTIONNEMENT DU DÉCODAGE BASE64
Algorithme de décodage Base64:
Base64 encode 3 octets de données binaires en 4 caractères ASCII d'un alphabet de 64 caractères (A-Z, a-z, 0-9, +, /). Le décodage inverse le processus : chaque caractère correspond à une valeur 6 bits, et quatre groupes de 6 bits se recombinent en trois octets de 8 bits. Les caractères de padding (=) sont ajoutés pour que la longueur encodée soit un multiple de 4. Ce décodeur accepte les entrées avec padding, sans padding et URL-safe, et renvoie du texte UTF-8.
Exemple de décodage:
Entrée : SGVsbG8sIEJhc2U2NCE=
Bits : 01001000 01100101 01101100 01101100
01101111 00101100 00100000 01000010
01100001 01110011 01100101 00110110
00110100 00100001
Sortie : Hello, Base64!
Cas d'usage courants:
- >Décoder l'en-tête et la charge utile JWT (avant la signature)
- >Lire les pièces jointes e-mail encodées en Base64 (MIME)
- >Inspecter les paramètres URL Base64 et les jetons OAuth state
- >Extraire du texte depuis des Data URI (data:text/plain;base64,...)
- >Déboguer les réponses API qui encapsulent du binaire en Base64
// QUESTIONS FRÉQUENTES
Comment décoder une chaîne Base64 en ligne ?
Collez la chaîne Base64 dans la zone ENTRÉE ci-dessus — le décodeur s'exécute automatiquement pendant la frappe (auto-décodage activé par défaut). Le texte décodé apparaît instantanément dans la zone SORTIE. Vous pouvez aussi cliquer explicitement sur [DECODE] ou utiliser Ctrl/Cmd + Entrée. Tout s'exécute localement dans votre navigateur ; rien n'est envoyé à un serveur, donc coller des jetons JWT, OAuth state ou charges utiles confidentielles est sûr.
Quelles variantes de Base64 ce décodeur prend-il en charge ?
Toutes. Le décodeur détecte automatiquement et accepte :
• Base64 standard (RFC 4648) — alphabet A-Z a-z 0-9 + / avec padding =.
• Base64 URL-safe (RFC 4648 §5) — alphabet avec - et _ au lieu de + et /. Utilisé par JWT, OAuth, APIs Google, URLs pré-signées AWS S3.
• Base64 sans padding — les = de fin sont omis. Courant dans JWT, où un décodeur doit ajouter automatiquement le padding.
• Tolérant aux espaces — sauts de ligne, tabulations et espaces dans la chaîne Base64 sont supprimés avant décodage (gère la sortie 76 colonnes MIME des corps d'e-mail).
Le format détecté est affiché sous forme de badge sous les boutons pour que vous sachiez quelle variante le décodeur a identifiée.
Pourquoi mon Base64 décode en charabia ou échoue avec une erreur ?
La plupart des échecs de décodage ont l'une de ces cinq causes :
1. L'entrée n'est pas vraiment du Base64. Beaucoup confondent Base64 avec hex, Base32 ou encodage URL. Base64 n'utilise que A-Z a-z 0-9 + / = (ou - _ pour URL-safe). Si la chaîne contient %20, c'est du pourcent-encodage ; si elle est entièrement en 0-9 a-f, c'est probablement de l'hex.
2. Troncature. La longueur Base64 doit être un multiple de 4 après padding. Un copier-coller qui perd les == finaux cause des erreurs "longueur invalide". Ce décodeur ajoute automatiquement le padding, mais les chaînes sévèrement tronquées échouent quand même.
3. URL-safe et standard mélangés. Si +/-_ sont tous présents, la chaîne est ambiguë et probablement corrompue. Une seule variante devrait être utilisée.
4. Double encodage. Parfois une chaîne est encodée en Base64 deux fois. Un premier décodage donne un charabia qui est lui-même du Base64. Décodez à nouveau pour obtenir le texte final.
5. Les octets d'origine ne sont pas UTF-8. Base64 décode en octets. Si les octets originaux ne sont pas du UTF-8 valide (ex. binaire brut comme un blob chiffré ou un PNG), la sortie décodée ressemblera à du mojibake. C'est attendu — utilisez un outil Base64-vers-fichier à la place.
Comment décoder un JWT avec ce décodeur Base64 ?
Un JWT a trois parties séparées par des points : header.payload.signature. Les trois sont en Base64 URL-safe sans padding. Pour inspecter la charge utile :
1. Copiez le segment du milieu (entre les deux points).
2. Collez-le dans le décodeur ci-dessus. L'auto-décodage gère l'alphabet URL-safe et ajoute le padding manquant.
3. Vous obtenez la charge utile JSON avec des claims comme iss, sub, exp, iat.
La signature (troisième segment) est une sortie binaire HMAC ou RSA — la décoder en tant que texte donne du charabia, ce qui est attendu. Pour un inspecteur JWT complet avec vérification de signature, utilisez notre décodeur JWT dédié.
Note de sécurité : décoder un JWT ne le vérifie pas. N'importe qui peut lire une charge utile JWT — c'est par conception. La signature prouve que le jeton provient de l'émetteur ; elle est vérifiée séparément avec la clé publique de l'émetteur ou un secret partagé.
Puis-je décoder Base64 en ligne de commande (bash, PowerShell, Python) ?
Oui — chaque plateforme majeure embarque un décodeur Base64 :
macOS / Linux (bash/zsh) :echo 'SGVsbG8=' | base64 -d — renvoie Hello. Utilisez -D sur macOS si -d ne fonctionne pas. Pour une entrée URL-safe, faites un pipe via tr '_-' '/+' d'abord.
Windows PowerShell :[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('SGVsbG8='))
Python :import base64
base64.b64decode('SGVsbG8=').decode('utf-8') # Hello
base64.urlsafe_b64decode(s + '===').decode() # URL-safe avec padding auto
Node.js :Buffer.from('SGVsbG8=', 'base64').toString('utf-8')
DevTools navigateur :atob('SGVsbG8=') — fonctionne dans n'importe quelle console. Pour les chaînes UTF-8, enveloppez avec new TextDecoder().decode(Uint8Array.from(atob(s), c => c.charCodeAt(0))).
PHP : base64_decode('SGVsbG8=')
Ruby : Base64.decode64('SGVsbG8=')
Go : base64.StdEncoding.DecodeString("SGVsbG8=")
Ce décodeur Base64 est-il sûr pour décoder des jetons et identifiants sensibles ?
Oui — ce décodeur est plus sûr que les outils serveur, car rien ne quitte votre navigateur. Le décodage se produit entièrement en JavaScript sur votre appareil via les API natives atob() et TextDecoder. Il n'y a aucun appel réseau, aucun téléversement, aucun journal, aucune analytique sur le contenu entré. Vous pouvez le vérifier vous-même en ouvrant l'onglet Réseau des DevTools pendant le décodage — vous verrez zéro requête.
Cela dit, Base64 n'est pas du chiffrement — c'est juste de l'encodage. Quiconque possède la chaîne Base64 peut la décoder. Donc bien que cet outil soit sûr, vous devez quand même :
• Ne jamais partager de captures d'écran de JWT décodés qui n'ont pas expiré.
• Faire tourner les identifiants qui fuient n'importe où (journaux, captures, chat partagé).
• Traiter les OAuth state, jetons CSRF et IDs de session décodés comme des secrets jusqu'à invalidation.
Pour les environnements corporatifs/réglementés où même la chaîne Base64 est sensible, vous pouvez enregistrer cette page hors ligne (Cmd/Ctrl + S) — elle fonctionne totalement isolée après un chargement, puisque la logique de décodage est du pur JavaScript.
Comment décoder une Data URI Base64 comme 'data:image/png;base64,iVBORw0KGgo...' ?
Une Data URI suit la syntaxe data:[<mediatype>][;base64],<data>. Pour décoder uniquement la charge utile :
1. Trouvez la virgule. Tout ce qui est avant est des métadonnées (data:image/png;base64), tout ce qui est après est le fichier encodé en Base64.
2. Copiez uniquement la partie après la virgule dans ce décodeur.
3. Pour le contenu binaire (PNG, JPG, PDF), la sortie décodée sera des octets bruts — l'affichage texte montre du mojibake. C'est attendu.
4. Pour visualiser une image Data URI, collez la totalité de la data:... URI dans la barre d'adresse de votre navigateur — le navigateur la décode et la rend directement.
5. Pour sauvegarder le fichier image, utilisez notre outil dédié Base64 vers image, qui gère la Data URI complète et télécharge un PNG/JPG/WebP.
Les Data URI se trouvent couramment dans : règles CSS background-image, icônes SVG en ligne, images de signature e-mail, pièces jointes PDF encodées dans des réponses API JSON, et bundles d'icônes d'extensions Electron/VS Code.
Quelle est la différence entre encodage et décodage Base64 ?
L'encodage prend des données binaires ou texte arbitraires et produit une chaîne ASCII en n'utilisant que des caractères imprimables — sûr pour le transport sur canaux texte-uniquement (e-mail, URLs, JSON). Le décodage inverse cela : une chaîne Base64 ASCII redevient les octets d'origine.
Propriétés clés :
• Aller-retour sans perte : decode(encode(x)) === x pour toute entrée en octets. Aucune donnée n'est jamais perdue.
• Pas du chiffrement : Base64 n'offre aucun secret. N'importe qui peut le décoder.
• Surcharge de taille : la sortie encodée est ~33 % plus grande que l'entrée (4 octets de sortie pour 3 d'entrée).
• Cas d'usage : jetons JWT, pièces jointes e-mail MIME, en-têtes HTTP Basic Auth, codes OAuth, URLs pré-signées S3, images en ligne en HTML/CSS.
Cette page est dédiée au décodage. Si vous avez besoin d'aller dans l'autre sens (texte/fichier → Base64), utilisez notre encodeur Base64 sur la page d'accueil, ou notre convertisseur image vers Base64 pour les fichiers image.
Puis-je décoder de très grandes chaînes Base64 ou des fichiers encodés en Base64 ?
Oui, dans les limites de mémoire du navigateur. Le décodeur accepte une longueur d'entrée illimitée — nous avons testé avec des chaînes Base64 de 50 Mo (~37 Mo décodés) sur des portables modernes. Performances :
• < 100 Ko : instantané, aucun délai UI.
• 1 – 10 Mo : le décodage prend ~50-500 ms selon le CPU.
• 10 – 100 Mo : le navigateur peut geler brièvement (2-10 s) car atob est synchrone. Désactivez auto-decode d'abord et cliquez sur [DECODE] manuellement.
• > 100 Mo : vous atteindrez les limites de mémoire du navigateur. Pour les fichiers Base64 de l'ordre du gigaoctet, utilisez un outil en ligne de commande (base64 -d).
Si le contenu décodé est un fichier binaire (PNG, PDF, ZIP), la zone de sortie texte affichera du mojibake. Pour télécharger les octets décodés comme un fichier, utilisez notre outil Base64 vers image (gère les images) ou l'approche en ligne de commande : echo '<base64>' | base64 -d > output.bin.
Ce décodeur Base64 fonctionne-t-il hors ligne ?
Oui. Après le chargement initial de la page, tout le décodage se fait côté client en JavaScript — aucun réseau n'est nécessaire. Pour le rendre totalement hors ligne :
1. Enregistrez la page : appuyez sur Ctrl+S (Windows/Linux) ou Cmd+S (macOS) et enregistrez comme "Page Web, complète". Le décodeur fonctionne depuis le HTML sauvegardé.
2. Installez comme PWA (si supporté) : certains navigateurs proposent "Installer cette app" pour base64.sh — vous donne un lanceur avec accès hors ligne.
3. Utilisez dans les DevTools : la fonction native atob() fonctionne dans n'importe quelle console de navigateur sans cette page. Pour un décodage rapide : atob('SGVsbG8=').
L'opération hors ligne est utile pour : recherche sécurité en environnement isolé, laboratoires de pentest, environnements corporatifs avec règles strictes de sortie de données, et vols/trains sans internet.