Como decodificar Base64: texto, imagens e JWT (grátis)

Por • 30 Outubro, 2026 • Ferramentas para desenvolvedores • 11 minutos de leitura

Decodifique qualquer string Base64 em segundos: exemplos reais com texto, imagens, JWT e Basic Auth, por que saem caracteres estranhos e como corrigir.

Para decodificar Base64, cole a string codificada em um decodificador Base64 e leia o resultado: SGVsbG8sIHdvcmxkIQ== vira Hello, world!. Nosso decodificador Base64 grátis faz isso com um clique em qualquer navegador, e a ferramenta Base64 para imagem mostra imagens codificadas. O decodificador aceita Base64 “URL-safe”, um prefixo data: colado e a falta de preenchimento, e mostra um erro quando a entrada não é Base64. Se mesmo assim o resultado sair cheio de símbolos estranhos, quase sempre os dados nunca foram texto ou há várias strings juntas. Este guia mostra como identificar cada caso e como resolver.

As ferramentas são grátis e você não precisa de conta para começar. Sem conta, você tem 5 usos de ferramentas por dia, e uma conta gratuita do My Botsy (100% grátis, sem spam) remove esse limite diário. Todos os exemplos foram executados em 30 de outubro de 2026 nas nossas ferramentas ou com o mesmo código de decodificação que elas usam, e os resultados foram copiados exatamente como saíram.

O que é Base64 (e o que não é)

Base64 transforma quaisquer bytes (texto, uma imagem, um PDF) em uma string feita só de 64 caracteres seguros: A–Z, a–z, 0–9, + e /, com = como preenchimento no final. Ele é definido na RFC 4648 e existe para que dados binários possam passar por sistemas feitos para texto: anexos de e-mail, campos JSON, cabeçalhos HTTP, HTML e CSS.

Dois fatos explicam quase todo problema de decodificação:

  • Cada 3 bytes viram 4 caracteres. Por isso o dado codificado fica cerca de um terço maior que o original, e por isso o tamanho da string normalmente é múltiplo de 4 (um ou dois = completam o último grupo).
  • Base64 é codificação, não criptografia. Não existe chave. Qualquer pessoa que veja uma string Base64 consegue decodificá-la em um segundo, então ela nunca protege senha nem token. Se algo sensível está “escondido” em Base64, trate como texto puro.

Como decodificar Base64 online, passo a passo

  1. Copie só a parte codificada. Deixe de fora rótulos como Authorization: Basic. O prefixo data:...;base64, é removido automaticamente, e quebras de linha e espaços dentro da string não atrapalham.
  2. Cole no decodificador Base64 e clique em Enviar.
  3. Leia o resultado. Se for texto legível, pronto: copie com o botão de copiar.
  4. Se aparecerem símbolos estranhos, pontos de interrogação ou um erro, veja se os dados são binários (uma imagem ou arquivo) ou se há várias strings juntas, usando a seção de problemas mais abaixo.
  5. Se for uma imagem, cole a mesma string em Base64 para imagem para ver e baixar a figura.

Exemplos resolvidos (resultados reais)

Exemplo 1: texto simples

Entrada: SGVsbG8sIHdvcmxkIQ==
Saída: Hello, world!

Treze caracteres de texto viraram 20 de Base64, sendo os dois últimos de preenchimento. É a string de teste clássica e um bom jeito de checar qualquer decodificador antes de confiar nele.

Exemplo 2: acentos, ç e outros caracteres

Entrada: Q2Fmw6kgY29uIGxlY2hl
Saída: Café con leche

Base64 não entende de letras, só de bytes. O é foi guardado como dois bytes UTF-8, e nosso decodificador devolve esses bytes como UTF-8, então ele aparece certo. Se um decodificador interpretar os bytes como Latin-1, você veria Café: esse é o sinal clássico de problema de conjunto de caracteres, não de Base64. Com o ç acontece o mesmo, e ele aparece como ç.

Exemplo 3: um cabeçalho Basic Auth

Um cabeçalho HTTP como Authorization: Basic dXNlcjpwYXNz carrega um usuário e uma senha separados por dois-pontos. Decodificar dXNlcjpwYXNz dá user:pass. Essa é toda a “proteção”, e é por isso que Basic Auth só deve ser enviado por HTTPS. Se você achar um cabeçalho assim em um log ou em um print compartilhado, considere a senha exposta e troque (nosso guia de senhas fortes ajuda a escolher a nova).

Exemplo 4: o payload de um JWT

JSON Web Tokens são três partes em Base64 unidas por pontos: cabeçalho, payload e assinatura. Eles usam o alfabeto URL-safe (RFC 4648, seção 5), em que - substitui + e _ substitui /, e removem o preenchimento =. Colamos este payload no decodificador:

eyJzdWIiOiI0MiIsIm5leHQiOiIvZG9jcz9wYWdlPTIiLCJuYW1lIjoiWm_DqyJ9

Repare no _ perto do fim. Até 30 de outubro de 2026 nosso decodificador o ignorava em silêncio, então a saída começava certa e depois virava lixo. Agora ele lê o alfabeto URL-safe diretamente, e a string decodifica limpa:

{"sub":"42","next":"/docs?page=2","name":"Zoë"}

A falta de preenchimento também não é problema: o decodificador completa para você. Com o JSON em mãos, cole no validador e formatador JSON para ler organizado. Só as duas primeiras partes de um JWT são JSON; a terceira é uma assinatura binária e sempre vai parecer ruído.

Exemplo 5: uma imagem em Base64

Colamos em Base64 para imagem os 100 caracteres em Base64 de um PNG vermelho de 4×4 pixels (ele começa com iVBORw0KGgo, como todo PNG em Base64). A ferramenta mostrou a imagem com opções de download. Em um teste no navegador, os mesmos dados carregaram bem com quebras de linha, sem o == final e também com o prefixo data:image/png;base64, (antes falhava com o prefixo; isso foi corrigido em 30 de outubro de 2026). Se o texto não for uma imagem de verdade, a ferramenta avisa em vez de mostrar uma imagem quebrada.

Assinaturas úteis para adivinhar o que há em um Base64 binário: iVBORw0KGgo é PNG, /9j/ é JPEG, R0lGOD é GIF, JVBERi0 é PDF e UEsDB é um ZIP (o que inclui .docx e .xlsx).

Por que o Base64 decodificado sai com caracteres estranhos

É Base64 URL-safe

Procure - ou _. Eles aparecem em JWTs, em muitos tokens de API e em algumas URLs. Nosso decodificador aceita esses caracteres como estão, mas outros decodificadores e bibliotecas exigem que você troque - por + e _ por / antes. Se o token estiver dentro de uma URL e tiver %2B, %2F ou %3D, passe antes pelo decodificador de URL, porque esses são +, / e = codificados.

O prefixo ainda está grudado

Testamos decodificar data:text/plain;base64,SGVsbG8sIHdvcmxkIQ==. Nosso decodificador agora remove o prefixo e devolve Hello, world!. Muitos outros não fazem isso: as letras de data, text, plain e base64 são caracteres Base64 válidos, então também são decodificadas e saem uns 15 bytes de lixo antes do texto (a nossa ferramenta fazia isso até 30 de outubro de 2026). Em outras ferramentas, apague tudo até a vírgula, incluindo ela.

Os dados não são texto

Decodificar um PNG, PDF ou ZIP como texto sempre gera símbolos, porque esses bytes nunca foram letras. Compare os primeiros caracteres com as assinaturas acima e use Base64 para imagem para figuras. Para outros arquivos, decodifique para um arquivo com um dos comandos abaixo e confira o tipo real no verificador de tipo MIME.

Várias strings foram juntadas

O preenchimento marca o fim de uma string Base64. SGVsbG8=V29ybGQ= são duas strings grudadas. Nosso decodificador recusa com um erro, e os decodificadores tolerantes dão Hello seguido de lixo. Separe em cada = que não esteja no final e decodifique as partes uma a uma.

Nunca foi Base64

Nosso decodificador valida a entrada, então not base64! recebe um erro claro (“não é Base64 válido”) em vez de 6 bytes sem sentido (antes ele decodificava mesmo assim). Strings hexadecimais (só 0–9 e a–f) e IDs aleatórios também podem parecer Base64. Se nada acima explica o resultado, talvez a string seja outra coisa.

Decodificar Base64 sem site nenhum

Tokens, senhas, chaves privadas ou dados de clientes não devem ser colados em site nenhum, nem no nosso: nosso decodificador roda no nosso servidor, então o texto enviado sai do seu computador. Estes comandos decodificam localmente:

  • Linux: echo 'SGVsbG8sIHdvcmxkIQ==' | base64 --decode
  • macOS: echo 'SGVsbG8sIHdvcmxkIQ==' | base64 -D (versões recentes também aceitam --decode)
  • Windows PowerShell: [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('SGVsbG8sIHdvcmxkIQ=='))
  • Python: base64.b64decode(s), ou base64.urlsafe_b64decode(s) para o alfabeto URL-safe (precisa do preenchimento de volta)
  • Console do navegador: atob('SGVsbG8sIHdvcmxkIQ=='), que só lida bem com texto ASCII; para acentos, passe os bytes pelo TextDecoder

Para salvar um arquivo decodificado em vez de exibi-lo, redirecione a saída, por exemplo base64 --decode arquivo.b64 > arquivo.pdf.

Codificar no sentido contrário

Para gerar Base64, use o codificador Base64 para texto e imagem para Base64 para figuras. O codificador de texto codifica exatamente o que você digita: It's vira SXQncw== e as tags HTML são mantidas. Até 30 de outubro de 2026 ele aplicava antes a limpeza de entrada do site, que removia tudo entre <...> e transformava It's em SXQmIzM5O3M=. Isso foi corrigido, então se você guardou resultados da versão antiga, codifique de novo.

Erros comuns

  • Tratar Base64 como segredo. Ele não esconde nada. Nunca guarde senhas ou chaves de API “criptografadas” em Base64.
  • Decodificar um JWT inteiro de uma vez. Separe pelos pontos e decodifique as duas primeiras partes separadamente.
  • Copiar as aspas. Em JSON e em código, a string fica entre aspas. Copie só o que está dentro delas.
  • Esperar que a conversão reduza o arquivo. Os downloads de Base64 para imagem agora convertem de verdade (um PNG salvo como JPG ou WEBP é recodificado, e o formato original é oferecido como está), mas não otimizam. Para reduzir uma imagem, use o otimizador de imagens (veja nosso guia para comprimir imagens).
  • Embutir imagens grandes em Base64. Um data URI é um terço maior que o arquivo e não pode ser guardado em cache separadamente. Só vale a pena para ícones minúsculos.

Decodifique sua string agora

Cole no decodificador Base64. Se for imagem, use Base64 para imagem, e se for JSON, termine no validador JSON (nosso guia para corrigir JSON inválido ajuda se ele não for aceito). Todas são grátis e você não precisa de conta para começar.

Perguntas frequentes

Como saber se uma string está em Base64?

Ela usa só A–Z, a–z, 0–9, + e / (ou - e _ na variante URL-safe), o tamanho costuma ser múltiplo de 4 e pode terminar com um ou dois sinais =. O teste de verdade é decodificar: se sair texto legível ou uma assinatura de arquivo conhecida, você acertou.

Por que meu Base64 decodificado mostra caracteres estranhos?

Quase sempre porque os dados são binários, como uma imagem, ou são várias strings juntas. Alguns decodificadores também falham com Base64 URL-safe (- e _) ou com um prefixo data:; o nosso aceita os dois. Corrija a entrada e decodifique de novo.

Base64 é criptografia?

Não. Base64 é uma codificação reversível sem chave, então qualquer pessoa consegue decodificar. Serve para transportar dados, nunca para protegê-los.

Como converter Base64 em imagem?

Cole em uma ferramenta de Base64 para imagem. A nossa aceita com ou sem o prefixo data:image/...;base64,. Uma string que começa com iVBORw0KGgo é PNG e uma que começa com /9j/ é JPEG.

Dá para decodificar Base64 sem preenchimento?

Geralmente sim. Nosso decodificador e a maioria dos decodificadores tolerantes aceitam strings sem o preenchimento =. Os estritos, como o b64decode do Python, precisam que você o recoloque até o tamanho ser múltiplo de 4.

O decodificador Base64 do My Botsy é grátis?

Sim. É grátis e funciona em qualquer navegador. Sem conta, você tem 5 usos de ferramentas por dia, e uma conta gratuita e sem spam remove esse limite diário.

Como verificar a validade do certificado SSL (4 jeitos)

29 Outubro, 2026

Veja quando um certificado SSL expira: online, no navegador ou com openssl e curl. Exemplos reais e o que uma data válida não garante.

Como corrigir JSON inválido: 10 erros comuns

28 Outubro, 2026

Corrija JSON inválido rápido: entenda erros Unexpected token e corrija vírgulas finais, aspas, comentários e colchetes faltando, passo a pas..

Como consultar registros DNS: A, MX, TXT e CNAME

28 Outubro, 2026

Consulte registros DNS online ou com dig e nslookup. Saiba o que fazem os registros A, AAAA, CNAME, MX, TXT, NS e CAA e resolva problemas co..