Subir un archivo
  1. base64hub
  2. Herramientas web y de tokens
  3. Base64 en JSON

Buscar y decodificar Base64 dentro de JSON

Pega cualquier JSON y el escáner recorre cada cadena, selecciona las que de verdad son Base64 y muestra cada valor decodificado junto a su ruta, como $.event.body.

Gratis sin registro, sin límites Local no se sube nada Anidado el JSON decodificado se vuelve a analizar, hasta 6 niveles Actualizado 27 oct 2026
Entrada –Salida –

Se procesa en tu navegador. Esta página no puede enviar tus datos a ninguna parte – cómo lo sabemos

Cómo decodificar campos Base64 en JSON

  1. Pega JSON en Entrada · JSON, o suelta un archivo .json o .har.
  2. La tabla lista cada coincidencia con su Ruta, lo que Parece, un nivel de confianza y la vista previa Decodificado, además de Copiar decodificado y Descargar.
  3. El panel de salida contiene el documento completo con los valores de texto, JSON y JWT decodificados en su sitio, listo para leer o comparar.
  4. Ajusta Longitud mín. (8 por defecto) para saltarte las cadenas cortas, desmarca Analizar JSON anidado para quedarte en la primera capa o marca Mostrar coincidencias de baja confianza cuando busques claves binarias cortas.

La pestaña JSON a Base64 hace lo contrario: valida el JSON y lo codifica tal cual, minificado o formateado, con opciones URL-safe, sin relleno y de ajuste de línea.

Ejemplo: una respuesta de API con tres campos codificados

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

$.sha no aparece. Una cadena hex de 40 caracteres es Base64 válido solo por su alfabeto, pero es un hash de Git, y el escáner descarta a propósito las cadenas hex largas. Cada prefijo eyJ de la tabla es el Base64 de {", una señal rápida de JSON codificado.

Dónde se esconde Base64 en JSON

  • Los eventos de AWS API Gateway y Lambda llevan los cuerpos binarios o comprimidos en body con "isBase64Encoded": true.
  • La API de contenidos de GitHub devuelve los archivos en content con "encoding": "base64", partidos en líneas con \n. Aquí los saltos de línea se ignoran.
  • Las partes de mensaje de la API de Gmail usan Base64 URL-safe en body.data. La entrada URL-safe (- y _) se detecta automáticamente.
  • Los JWT en campos access_token o id_token se decodifican en cabecera y payload. Para comprobar la firma, usa el decodificador JWT.
  • Los data URI como data:image/png;base64,… en campos avatar o logo se reconocen con su tipo MIME.
  • Los Secrets de Kubernetes en formato JSON; el decodificador de Secrets de Kubernetes añade funciones específicas para Secrets.

Hacerlo en Python

Un recorrido mínimo que informa de las cadenas que se decodifican en texto 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])

Se le escapan los valores URL-safe y sin relleno, y las cargas binarias como las imágenes, que es donde se va la mayor parte del trabajo de un escáner real. Consulta Base64 en Python para los detalles de la decodificación y Base64 frente a Base64URL para la diferencia de alfabeto.

Límites

  • La detección es heurística. Los valores de menos de 8 caracteres y las claves binarias de aspecto aleatorio pueden pasarse por alto o marcarse como inciertos; baja Longitud mín. y activa las coincidencias de baja confianza para verlos.
  • El análisis se detiene tras 200.000 cadenas y muestra hasta 1.000 filas, lo que cubre archivos HAR grandes sin bloquear la pestaña.
  • El JSON no válido se indica con línea y columna. Para una sola cadena Base64 que se decodifica en JSON, usa Base64 a JSON.

Preguntas frecuentes

¿Cómo distingue la herramienta el Base64 de las cadenas normales?

Decodifica cada candidata y examina el resultado: UTF-8 legible, JSON válido o una firma de archivo conocida cuentan como confianza alta. Los hashes en hex, las cadenas solo de dígitos y las palabras normales se descartan, y los resultados binarios se marcan como probables o inciertos según la longitud y el relleno.

¿Puedo decodificar campos Base64 de un archivo HAR?

Sí. Suelta la exportación .har del panel Red del navegador. Los cuerpos de respuesta guardados con "encoding": "base64" aparecen en la tabla con su contenido decodificado, junto con cualquier Base64 dentro del JSON de peticiones y respuestas.

¿Qué pasa con los valores binarios, como las imágenes?

Se listan con el tipo de archivo detectado y un botón Descargar, y se quedan como Base64 en el panel de salida. Solo los valores de texto, JSON y JWT se sustituyen en su sitio.