Decodificar Base64

Cole uma string Base64 e recupere o texto ou os bytes originais. Quebras de linha, caracteres seguros para URL, preenchimento ausente e prefixos data: são tratados automaticamente, e os erros apontam o caractere exato.

Funciona inteiramente no seu navegador. Nada é enviado.

Como usar

  1. Cole a string Base64 na entrada ou clique em Abrir arquivo para carregar um arquivo que contenha texto em Base64.
  2. Mantenha a saída como Texto e escolha o conjunto de caracteres em Codificação de texto (UTF-8 por padrão), ou mude a saída para Hex no caso de dados binários.
  3. Se a decodificação falhar, leia a mensagem de erro: ela indica a posição do primeiro caractere inválido.
  4. Copie o resultado decodificado ou baixe-o.

O que o decodificador aceita

A decodificação inverte a codificação: cada caractere é convertido de volta em seu valor de 6 bits, e cada grupo de quatro caracteres vira três bytes. O Base64 encontrado no dia a dia raramente vem limpo, por isso este decodificador é tolerante:

  • Espaços e quebras de linha são ignorados, então corpos MIME e blocos PEM com quebras de linha podem ser colados como estão. Mas apague antes as linhas -----BEGIN e -----END: suas letras e hifens são caracteres Base64 válidos e seriam decodificados como dados.
  • Entrada segura para URL com - e _ é decodificada exatamente como o Base64 padrão com + e /.
  • Preenchimento ausente não é problema. Apenas um comprimento de 4n + 1 caracteres é rejeitado, porque um único caractere restante não consegue formar um byte; isso geralmente significa que a string foi cortada.
  • Data URIs também funcionam: um prefixo data:...;base64, no início é removido antes da decodificação.

Saída em texto ou em binário

O resultado da decodificação é sempre uma sequência de bytes. Se o original era texto, mantenha a saída como texto e escolha o conjunto de caracteres dele. Se era uma imagem, um PDF, um arquivo compactado, uma chave ou um texto cifrado, nenhum conjunto de caracteres vai torná-lo legível: mude a saída para hex para inspecionar os bytes ou abra Base64 para arquivo ou Base64 para imagem para visualizar e salvar o conteúdo. Os primeiros caracteres muitas vezes já revelam do que se trata:

Base64 começa comConteúdo decodificado
iVBORw0KGgoImagem PNG
/9j/Imagem JPEG
R0lGODImagem GIF
JVBERi0Documento PDF
UEsDBArquivo ZIP, incluindo DOCX, XLSX e JAR
H4sIDados compactados com gzip
eyJObjeto JSON, como o cabeçalho de um JWT

Por que o texto decodificado aparece com caracteres estranhos

  • Conjunto de caracteres errado. Um texto UTF-8 lido como Windows-1252 transforma é em é, e um texto GBK ou Shift_JIS lido como UTF-8 exibe caracteres de substituição (�). Selecione o conjunto de caracteres em que o texto foi escrito.
  • Dados binários. Símbolos aleatórios com um ou outro fragmento legível, como PNG ou PK perto do início, indicam que o conteúdo é um arquivo, e não texto.
  • Dados compactados ou criptografados. Fluxos gzip, Protocol Buffers e textos cifrados são decodificados corretamente, mas não são texto. A saída em hex mostra o que realmente está ali.
  • Codificação dupla. Se a saída também for Base64, cole-a de volta na entrada e decodifique-a uma segunda vez.

Como decodificar Base64 em código

# Python
base64.b64decode(s).decode('utf-8')

// Node.js (também aceita entrada segura para URL)
Buffer.from(s, 'base64').toString('utf8')

// Navegador: atob() retorna um caractere por byte, então decodifique o UTF-8 depois
new TextDecoder().decode(Uint8Array.from(atob(s), c => c.charCodeAt(0)))

# Shell do Linux e do macOS
echo 'SGVsbG8=' | base64 --decode

Especificação

AlfabetoA-Z a-z 0-9 + /
Tamanho da saída4 caracteres a cada 3 bytes (cerca de 133%)
PreenchimentoCom = até um múltiplo de 4 caracteres
PadrãoRFC 4648, seção 4
Diferencia maiúsculas e minúsculasSim

Exemplos

Entrada (UTF-8)Saída
Hello, World!SGVsbG8sIFdvcmxkIQ==
Base64.isQmFzZTY0Lmlz
你好5L2g5aW9

Perguntas frequentes

Por que recebo um erro de caractere inválido?
A entrada contém algo fora do alfabeto Base64, como aspas, uma barra invertida ou escapes percentuais como %2B e %3D copiados de uma URL. Remova as aspas ou aplique antes a decodificação de URL à string. A mensagem de erro mostra a posição do primeiro caractere problemático.
Posso decodificar Base64 sem preenchimento?
Sim. O decodificador não precisa dos sinais = no final, então strings sem preenchimento vindas de JWTs, URLs e APIs são decodificadas normalmente.
Por que a saída fica errada depois de copiar Base64 de uma URL?
Quando o Base64 é colocado em uma query string sem escape, a decodificação de formulários costuma transformar cada + em espaço. Aqui os espaços são ignorados, então esses caracteres se perdem. Substitua os espaços por + antes de decodificar e use Base64URL para valores que trafegam em URLs.
Como decodificar Base64 para uma imagem ou arquivo?
Use Base64 para imagem para visualizar e baixar imagens, ou Base64 para arquivo para PDFs, arquivos compactados, áudio e outros arquivos. As duas ferramentas detectam o tipo de arquivo pelos primeiros bytes.
Meu Base64 é enviado para um servidor?

Não. A decodificação acontece no seu navegador, com JavaScript, e a entrada nunca sai do seu dispositivo, o que é importante quando você decodifica tokens, segredos de configuração ou dados pessoais.