Charger un fichier
  1. base64hub
  2. Outils web et jetons
  3. Base64 dans du JSON

Trouver et décoder le Base64 dans du JSON

Collez n’importe quel JSON : l’analyseur parcourt chaque chaîne, repère celles qui sont vraiment du Base64 et affiche chaque valeur décodée à côté de son chemin, comme $.event.body.

Gratuit sans inscription, sans limites Local rien n'est envoyé Imbriqué le JSON décodé est réanalysé, jusqu'à 6 niveaux Mis à jour 27 oct. 2026
Entrée –Sortie –

Traité dans votre navigateur. Cette page ne peut envoyer vos données nulle part – comment le savons-nous

Comment décoder les champs Base64 d’un JSON

  1. Collez le JSON dans Entrée · JSON, ou déposez un fichier .json ou .har.
  2. Le tableau liste chaque correspondance avec son Chemin, la colonne Ressemble à, un niveau de confiance et l’aperçu Décodé, ainsi que Copier le décodé et Télécharger.
  3. Le panneau de sortie contient tout le document, avec les valeurs texte, JSON et JWT décodées sur place, prêt à être lu ou comparé.
  4. Ajustez Longueur min. (8 par défaut) pour ignorer les chaînes courtes, décochez Analyser le JSON imbriqué pour vous arrêter au premier niveau, ou cochez Afficher les correspondances peu fiables quand vous cherchez de courtes clés binaires.

L’onglet JSON en Base64 fait l’inverse : il valide le JSON et l’encode tel quel, minifié ou formaté, avec les options URL-safe, sans remplissage et retour à la ligne.

Exemple : une réponse d’API avec trois champs encodés

{
  "event": { "body": "eyJvcmRlcklkIjo0MiwicXR5IjoyfQ==", "isBase64Encoded": true },
  "file": { "name": "README.md", "encoding": "base64",
            "content": "IyBEZW1vCgpIZWxsbyBmcm9tIHRoZSBSRUFETUUuCg==" },
  "prefs": "eyJ0aGVtZSI6ImRhcmsifQ==",
  "sha": "3b18e512dba79e4c8300dd08aeb37f8e728b8dad"
}
CheminRessemble àDécodé
$.event.bodyJSON{"orderId":42,"qty":2}
$.file.contenttexte# Demo / Hello from the README.
$.prefsJSON{"theme":"dark"}

$.sha n’est pas listé. Une chaîne hex de 40 caractères est du Base64 valide si l’on ne regarde que l’alphabet, mais c’est un hachage Git, et l’analyseur écarte volontairement les longues chaînes hex. Chaque préfixe eyJ du tableau est le Base64 de {", un signe rapide de JSON encodé.

Où le Base64 se cache dans le JSON

  • Les événements AWS API Gateway et Lambda transportent les corps binaires ou compressés dans body avec "isBase64Encoded": true.
  • L’API contents de GitHub renvoie les fichiers dans content avec "encoding": "base64", découpés en lignes par des \n. Les sauts de ligne sont ignorés ici.
  • Les parties de message de l’API Gmail utilisent du Base64 URL-safe dans body.data. Une entrée URL-safe (- et _) est détectée automatiquement.
  • Les JWT des champs access_token ou id_token voient leur en-tête et leur payload décodés. Pour vérifier la signature, utilisez le décodeur JWT.
  • Les data URI comme data:image/png;base64,… dans des champs avatar ou logo sont reconnues avec leur type MIME.
  • Les Secrets Kubernetes au format JSON ; le décodeur de Secret Kubernetes ajoute des fonctions propres aux Secrets.

Le faire en Python

Un parcours minimal qui signale les chaînes qui se décodent en texte UTF-8 :

import base64, binascii, json, sys

def walk(node, path="$"):
    if isinstance(node, dict):
        for k, v in node.items():
            yield from walk(v, f"{path}.{k}")
    elif isinstance(node, list):
        for i, v in enumerate(node):
            yield from walk(v, f"{path}[{i}]")
    elif isinstance(node, str) and len(node) >= 8:
        try:
            text = base64.b64decode(node, validate=True).decode("utf-8")
            yield path, text
        except (binascii.Error, UnicodeDecodeError):
            pass

for path, text in walk(json.load(open(sys.argv[1]))):
    print(path, "=>", text[:60])

Il manque les valeurs URL-safe et sans remplissage, ainsi que les payloads binaires comme les images, et c’est là que se concentre l’essentiel du travail d’un véritable analyseur. Voir Base64 en Python pour les détails du décodage et Base64 ou Base64URL pour la différence d’alphabet.

Limites

  • La détection est heuristique. Les valeurs de moins de 8 caractères et les clés binaires d’apparence aléatoire peuvent être manquées ou marquées incertaines ; baissez Longueur min. et activez les correspondances peu fiables pour les voir.
  • L’analyse s’arrête après 200 000 chaînes et affiche au plus 1 000 lignes, ce qui couvre les gros fichiers HAR sans figer l’onglet.
  • Un JSON non valide est signalé avec la ligne et la colonne. Pour une seule chaîne Base64 qui se décode en JSON, utilisez Base64 en JSON.

FAQ

Comment l'outil distingue-t-il le Base64 des chaînes ordinaires ?

Il décode chaque candidat et examine le résultat : de l’UTF-8 lisible, du JSON valide ou une signature de fichier connue donnent une confiance élevée. Les hachages hex, les chaînes composées uniquement de chiffres et les mots ordinaires sont écartés, et les résultats binaires sont marqués probables ou incertains selon la longueur et le remplissage.

Puis-je décoder les champs Base64 d'un fichier HAR ?

Oui. Déposez l’export .har du panneau Réseau du navigateur. Les corps de réponse stockés avec "encoding": "base64" apparaissent dans le tableau avec leur contenu décodé, ainsi que tout Base64 présent dans le JSON des requêtes et des réponses.

Que deviennent les valeurs binaires comme les images ?

Elles sont listées avec le type de fichier détecté et un bouton Télécharger, et restent en Base64 dans le panneau de sortie. Seules les valeurs texte, JSON et JWT sont remplacées sur place.