Enviar um arquivo
  1. base64hub
  2. Web e tokens
  3. Base64 em JSON

Encontrar e decodificar Base64 dentro de JSON

Cole qualquer JSON e o scanner percorre cada string, separa as que são realmente Base64 e mostra cada valor decodificado ao lado do caminho, como $.event.body.

Grátis sem cadastro, sem limites Local nada é enviado Aninhado o JSON decodificado é varrido de novo, até 6 níveis Atualizado 27 de out. de 2026
Entrada –Saída –

Processado no seu navegador. Esta página não consegue enviar seus dados para lugar nenhum – como sabemos

Como decodificar campos Base64 em JSON

  1. Cole o JSON em Entrada · JSON, ou arraste um arquivo .json ou .har.
  2. A tabela lista cada ocorrência com o Caminho, o que ela Parece ser, um nível de confiança e a prévia Decodificado, além de Copiar decodificado e Baixar.
  3. O painel de saída traz o documento inteiro com os valores de texto, JSON e JWT decodificados no lugar, pronto para ler ou comparar.
  4. Ajuste Tamanho mín. (padrão 8) para pular strings curtas, desmarque Analisar JSON aninhado para parar na primeira camada, ou marque Mostrar correspondências de baixa confiança quando estiver procurando chaves binárias curtas.

A aba JSON para Base64 faz o contrário: valida o JSON e o codifica como digitado, minificado ou formatado, com opções de URL-safe, sem preenchimento e quebra de linha.

Exemplo: uma resposta de API com três campos codificados

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

$.sha não aparece na lista. Uma string hex de 40 caracteres é Base64 válido só pelo alfabeto, mas é um hash do Git, e o scanner descarta strings hex longas de propósito. Todo prefixo eyJ na tabela é o Base64 de {", um sinal rápido de JSON codificado.

Onde o Base64 se esconde no JSON

  • Eventos do AWS API Gateway e do Lambda trazem corpos binários ou compactados em body com "isBase64Encoded": true.
  • A API de conteúdos do GitHub devolve arquivos em content com "encoding": "base64", quebrados em linhas com \n. As quebras de linha são ignoradas aqui.
  • As partes de mensagem da API do Gmail usam Base64 URL-safe em body.data. Entradas URL-safe (- e _) são detectadas automaticamente.
  • JWTs em campos access_token ou id_token têm header e payload decodificados. Para verificar a assinatura, use o decodificador de JWT.
  • Data URIs como data:image/png;base64,… em campos avatar ou logo são reconhecidos com o MIME type.
  • Secrets do Kubernetes em formato JSON; o decodificador de Secret do Kubernetes acrescenta recursos específicos para Secrets.

Fazendo isso em Python

Um percorredor mínimo que mostra as strings que decodificam para 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])

Ele deixa passar valores URL-safe e sem preenchimento, além de payloads binários como imagens, que é onde está a maior parte do trabalho de um scanner de verdade. Veja Base64 em Python para os detalhes da decodificação e Base64 vs Base64URL para a diferença entre os alfabetos.

Limites

  • A detecção é heurística. Valores com menos de 8 caracteres e chaves binárias com cara de aleatórias podem passar despercebidos ou ser marcados como incertos; reduza o Tamanho mín. e ative as correspondências de baixa confiança para vê-los.
  • A varredura para depois de 200.000 strings e mostra até 1.000 linhas, o que dá conta de arquivos HAR grandes sem travar a aba.
  • JSON inválido é informado com linha e coluna. Para uma única string Base64 que decodifica para JSON, use o Base64 para JSON.

Perguntas frequentes

Como a ferramenta distingue Base64 de strings comuns?

Ela decodifica cada candidata e analisa o resultado: UTF-8 legível, JSON válido ou uma assinatura de arquivo conhecida contam como alta confiança. Hashes hex, strings só de dígitos e palavras comuns são descartados, e resultados binários são marcados como prováveis ou incertos conforme o tamanho e o preenchimento.

Dá para decodificar campos Base64 num arquivo HAR?

Dá. Arraste a exportação .har do painel Network do navegador. Corpos de resposta guardados com "encoding": "base64" aparecem na tabela com o conteúdo decodificado, junto com qualquer Base64 dentro do JSON de requisições e respostas.

O que acontece com valores binários, como imagens?

Eles são listados com o tipo de arquivo detectado e um botão Baixar, e continuam em Base64 no painel de saída. Só valores de texto, JSON e JWT são substituídos no lugar.