Decodificador e Codificador de Base64

Cole um Base64 e veja o texto na hora, ou codifique texto e arquivos. Entende o header Authorization: Basic, Secrets do Kubernetes, data URIs e Base64url, e aponta a linha e a coluna do caractere inválido.

Base64 costuma carregar senha e token. Aqui a conversão roda no seu navegador: o conteúdo não é enviado a nenhum servidor, não vai para a URL e não fica salvo.

Modo
0 caracteres
Exemplos:

Resultado

Nada para mostrar ainda

Cole um Base64 no campo ao lado ou use um dos exemplos. O resultado aparece aqui enquanto você digita.

Vai colocar uma imagem num HTML, CSS ou e-mail? O conversor de imagem mostra a prévia e gera o data URI pronto.

Imagem para Base64

O que é Base64

Base64 é um jeito de escrever bytes quaisquer usando só 64 caracteres seguros para texto: A a Z, a a z, 0 a 9, + e /. Cada grupo de 3 bytes vira 4 caracteres, e o = no final completa o último grupo. Serve para passar dado binário ou texto com acento por lugares que só aceitam ASCII, como headers HTTP, JSON, YAML e e-mail. Não tem chave nem senha: qualquer pessoa decodifica.

Onde o Base64 aparece no dia a dia

  • No header Authorization: Basic, que leva usuário:senha em Base64. Colado aqui, o valor já aparece separado em usuário e senha.

  • Nos Secrets do Kubernetes, em que todo valor de data: é Base64. Cole a saída de kubectl get secret nome -o yaml e veja todas as chaves decodificadas juntas.

  • Em mensagens de fila e webhooks: o Google Pub/Sub entrega o corpo em message.data em Base64, e o API Gateway da AWS faz o mesmo com corpo binário quando isBase64Encoded é true.

  • Em arquivos dentro de texto: anexos de e-mail (MIME), certificados PEM, PDFs e imagens enviados em JSON por APIs.

Base64 e Base64url

O Base64url troca + por - e / por _, porque + e / têm significado em URL e em caminho de arquivo, e costuma dispensar o = do final. É o formato do JWT e de muitos tokens em links. Este decodificador aceita os dois sem você precisar escolher.

VarianteCaracteres extras= no finalOnde aparece
Base64 (RFC 4648, seção 4)+ /SimHeader Basic, Kubernetes, MIME, PEM, data URI
Base64url (RFC 4648, seção 5)- _Geralmente nãoJWT, parâmetros de URL, nomes de arquivo

Por que o texto decodificado veio estranho

Se aparecem símbolos como ç no lugar de ç, o texto foi gravado em UTF-8 e lido como Latin-1, ou o contrário. Aqui o texto é lido como UTF-8 e, se os bytes não forem UTF-8 válido, como Windows-1252, com um aviso. Se aparecem caracteres sem sentido do início ao fim, o conteúdo não é texto: pode ser imagem, PDF, ZIP ou gzip. Nesse caso a página diz o tipo e oferece o download.

Base64 no terminal

No Linux, echo -n 'texto' | base64 codifica e base64 -d decodifica. No macOS o comando é o mesmo; versões antigas usam -D para decodificar. No PowerShell, [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes('texto')) codifica. Sem o -n, o echo acrescenta uma quebra de linha e o Base64 muda: echo -n user dá dXNlcg==, e echo user dá dXNlcgo=.

Base64 não protege nada

Base64 só muda a forma de escrever os bytes. Um Secret do Kubernetes sem criptografia no etcd e sem controle de acesso fica legível para quem consegue lê-lo, e um header Basic em HTTP sem TLS entrega a senha para quem estiver no caminho. Para esconder um valor, use criptografia; para provar que ele não mudou, use hash ou HMAC.

Perguntas frequentes sobre Base64

Decodificação, erros comuns, header Basic, Kubernetes e privacidade.