Enviar um arquivo
  1. base64hub
  2. Ferramentas de texto
  3. Decodificador Base64

Decodificador Base64: decodificar Base64 para texto online

Cole uma string Base64 e leia o texto decodificado na hora. Quebras de linha, prefixos data:, caracteres URL-safe e o preenchimento = ausente são tratados para você, e os erros apontam o caractere exato.

Grátis sem cadastro, sem limites Local nada é enviado Automático detecta PNG, PDF, ZIP, JSON e mais Atualizado 27 de out. de 2026
Entrada 0 BSaída 0 BTamanho –

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

Como decodificar Base64

  1. Cole o Base64 na caixa Entrada · Base64. Quebras de linha, espaços, aspas em volta e um prefixo data:...;base64, podem ficar; o decodificador os remove.
  2. O texto decodificado aparece em Saída · texto. Uma linha de status informa Base64 válido, a variante (Standard ou Base64URL), o número de bytes decodificados e, em Parece ser, o tipo de conteúdo detectado.
  3. Se o texto sair embaralhado, troque o Charset ou escolha Detectar automaticamente.
  4. Se o conteúdo for JSON, Formatar JSON o indenta para leitura.
  5. Clique em Copiar saída, ou em Baixar para salvar os bytes decodificados como arquivo. A extensão segue o tipo detectado, então JSON é salvo como decoded.json e um PNG como decoded.png.

Inverter manda o texto decodificado de volta para a entrada e muda para codificação, um jeito rápido de confirmar que a string faz o caminho de ida e volta.

O que o decodificador aceita

O Base64 raramente chega limpo. Ele vem quebrado em 76 caracteres de um e-mail, entre aspas de um arquivo JSON, com codificação percentual de uma URL ou sem preenchimento de um token. O decodificador aceita tudo isso sem nenhuma configuração:

Você colaVocê recebeO que aconteceu
SGVsbG8gV29ybGQHello World= ausente restaurado, a linha de status avisa
8J-Riw👋- e _ URL-safe reconhecidos, variante mostrada como Base64URL
data:text/plain;base64,SGk=HiPrefixo de data URI removido
"SGVsbG8="HelloAspas de código ou JSON removidas
SGVsbG8%3DHello%3D codificado para URL lido como =
SGVs (quebra de linha) bG8=HelloQuebras de linha e espaços ignorados

O decodificador é tolerante com essa embalagem e rígido com todo o resto: um caractere fora do alfabeto o interrompe, com um erro que indica o caractere e a posição. Algumas bibliotecas, ao contrário, pulam caracteres inválidos em silêncio e devolvem uma saída corrompida (veja a seção de código abaixo).

Para tokens URL-safe, o decodificador Base64URL explica o alfabeto, e Base64 vs Base64URL mostra as diferenças.

Quando o Base64 decodificado é um arquivo

O Base64 transporta quaisquer bytes, e muitas strings Base64 são imagens ou documentos. A ferramenta compara os primeiros bytes dos dados decodificados com assinaturas de arquivo conhecidas (magic numbers) e mostra o resultado em Parece ser: PNG, JPEG, PDF, ZIP, gzip, JSON, XML e muitos outros. Para formatos binários, ela mostra uma prévia imprimível, avisa que os dados são binários e indica a ferramenta certa, como Base64 para imagem ou Base64 para PDF. Baixar salva os bytes originais de qualquer forma.

O início de uma string Base64 muitas vezes entrega o formato antes mesmo de decodificar:

O Base64 começa comBytes decodificadosFormato
iVBORw0KGgo89 50 4E 47 0D 0A 1A 0AImagem PNG
/9j/FF D8 FFImagem JPEG
JVBERi0%PDF-Documento PDF
UEsDBAPK 03 04ZIP, e também DOCX e XLSX
H4sI1F 8B 08Dados gzip (decodificador de Base64 gzip)
eyJ{"JSON, muitas vezes um segmento de JWT
PD94bWwg<?xmlXML

Mais assinaturas estão listadas em prefixos Base64 comuns. Para um arquivo de tipo desconhecido, Base64 para arquivo detecta o formato e mostra a prévia.

Charsets: como consertar texto embaralhado

O Base64 guarda bytes e não diz nada sobre qual charset transformou os caracteres nesses bytes. O decodificador assume UTF-8, o que está certo para a maioria dos dados modernos. Quando está errado, os sintomas são reconhecíveis:

  • Caracteres � e o aviso “Alguns bytes não são UTF-8 válido”. O texto veio de um charset legado. Y2Fm6Q== aparece como caf� em UTF-8 e como café em ISO-8859-1 ou Windows-1252. Texto em russo como z/Do4uXy precisa de Windows-1251 para mostrar Привет.
  • Um ponto ou espaço depois de cada letra. Isso é UTF-16, em que letras ASCII são seguidas de um byte zero. SABlAGwAbABvAA== é Hello em UTF-16LE (Base64 para UTF-16).
  • é, ü ou ’ na saída. A decodificação está correta; o texto foi codificado duas vezes antes de virar Base64, porque alguma etapa anterior leu UTF-8 como se fosse Latin-1 e gravou o resultado de novo como UTF-8. Y2Fmw4PCqQ== decodifica exatamente para café. Corrija na origem.

Detectar automaticamente procura uma marca de ordem de bytes, depois verifica se os bytes são UTF-8 válido e, por fim, o padrão de bytes zero do UTF-16. Code pages de um byte, como Windows-1251 e KOI8-R, parecem iguais para qualquer detector, então escolha-as manualmente quando souber a origem.

Mensagens de erro e o que significam

MensagemCausa habitualSolução
Caractere inválido “.” na posição 21Um JWT inteiro colado: os pontos separam três segmentosDecodifique um segmento ou use o decodificador de JWT
Caractere inválido "\\" na posição 8Base64 copiado de um JSON em que / virou \/Troque \/ por /
A entrada mistura caracteres padrão (+ /) e URL-safe (- _)Duas strings juntas ou uma conversão feita pela metadeConverta para um único alfabeto com Base64URL para Base64
O preenchimento (=) só pode aparecer bem no finalDois valores Base64 colados, como SGk=SGk=Separe e decodifique cada um
Comprimento incorreto: há um caractere a mais ou a menosA cópia perdeu ou ganhou um caractereCopie de novo ou experimente Reparar Base64

O guia de erros de Base64 aprofunda cada caso. Para encontrar o caractere ou o problema de preenchimento exato numa string, use o validador de Base64.

Decodificar Base64 em JavaScript, Python e na linha de comando

O atob() devolve uma “binary string” com um caractere por byte, então texto UTF-8 precisa de um passo com TextDecoder. O atob aceita preenchimento ausente, mas lança InvalidCharacterError com - e _ URL-safe.

const s = "R3LDvMOfZSDwn5GL";
new TextDecoder().decode(Uint8Array.from(atob(s), c => c.charCodeAt(0)));
// "Grüße 👋"

// Node.js accepts both alphabets
Buffer.from(s, "base64").toString("utf8");          // "Grüße 👋"
Buffer.from("8J-Riw", "base64url").toString("utf8"); // "👋"

O Python lança binascii.Error: Incorrect padding com entrada sem preenchimento, então adicione o preenchimento você mesmo:

import base64

s = "SGVsbG8"
base64.b64decode(s + "=" * (-len(s) % 4)).decode("utf-8")
# 'Hello'
base64.b64decode("SGVs*bG8=", validate=True)
# binascii.Error: Only base64 data is allowed

Sem validate=True, o Python descarta o * e devolve b'Hello'. O Buffer.from do Node se comporta do mesmo jeito, então uma string danificada pode ser decodificada sem erro nenhum.

Na linha de comando:

printf '%s' 'R3LDvMOfZSDwn5GL' | base64 -d
base64 -d message.b64 > message.bin

A primeira linha imprime Grüße 👋. Versões antigas do macOS escrevem a flag como -D. Mais detalhes por linguagem: JavaScript, Node.js, Python, PHP.

Perguntas frequentes

Como decodificar uma string Base64?

Cole a string na caixa de entrada acima; o texto decodificado aparece na hora. No código, decodifique o Base64 em bytes e depois leia os bytes como UTF-8: base64.b64decode(s).decode() em Python, Buffer.from(s, "base64").toString() no Node.js.

Por que o texto decodificado mostra caracteres estranhos como � ou é?

� significa que os bytes não são UTF-8 válido, então o texto provavelmente foi codificado em outro charset; experimente Windows-1252, Windows-1251 ou UTF-16LE no menu Charset. é no lugar de é significa que o texto já estava corrompido antes de alguém codificá-lo.

Dá para decodificar Base64 sem o preenchimento =?

Dá. O decodificador adiciona sozinho o = que falta e avisa na linha de status. O preenchimento só completa o último bloco, então sempre pode ser restaurado a partir do comprimento.

A saída decodificada não faz sentido. O Base64 está quebrado?

Na maioria das vezes, os dados são um arquivo. Confira o campo “Parece ser” na linha de status: para imagens, PDFs, arquivos compactados e outros formatos binários, a ferramenta indica um decodificador que mostra a prévia ou salva o arquivo.

Dá para decodificar Base64 sem chave?

Sempre. Base64 é uma codificação com alfabeto público, então não oferece sigilo nenhum. Se o resultado decodificado ainda parecer aleatório, os dados foram criptografados ou compactados antes de serem codificados.