O que é Base64
Base64 é uma forma de representar dados binários (bytes) usando apenas 64 caracteres “seguros”: as letras de A a Z maiúsculas e minúsculas, os dígitos de 0 a 9 e os símbolos + e /, com = como preenchimento no final. O padrão é descrito na RFC 4648. Ele existe porque muitos sistemas foram feitos para transportar texto, não bytes arbitrários: e-mail, JSON, XML, URLs, cabeçalhos HTTP.
Alguns lugares onde você encontra Base64 no dia a dia:
- Anexos de e-mail (MIME) são enviados em Base64.
- Data URIs: imagens pequenas embutidas direto no HTML ou CSS, como
data:image/png;base64,.... - APIs que recebem arquivos dentro de um JSON, como envio de PDF, XML de nota fiscal ou fotos de documentos.
- Autenticação HTTP Basic, em que
usuario:senhavai codificado no cabeçalho. - Tokens JWT, que usam a variante URL-safe em cada uma das três partes.
Como usar a ferramenta
Texto
- Digite ou cole o texto no campo de cima: o Base64 aparece embaixo automaticamente.
- Para o caminho inverso, cole o Base64 no campo de baixo e o texto original aparece em cima.
- Marque URL-safe se o resultado vai para uma URL, nome de arquivo ou token.
Arquivos
- Na aba Arquivo → Base64, arraste ou escolha o arquivo.
- Copie o Base64 puro, o data URI completo ou a regra CSS pronta com
background-image. - Na aba Base64 → Arquivo, cole um Base64 para validar, ver a prévia (se for imagem) e baixar o arquivo.
Como funciona a codificação
O algoritmo pega os bytes de 3 em 3 (24 bits) e divide em 4 grupos de 6 bits. Cada grupo de 6 bits é um número de 0 a 63, que vira um caractere da tabela. Se sobrarem 1 ou 2 bytes no final, completa-se com zeros e acrescenta-se = ou ==.
Exemplo com a palavra Pão. Em UTF-8, ela tem 4 bytes, porque o “ã” ocupa dois: 50 C3 A3 6F.
- Os 3 primeiros bytes (
50 C3 A3) viramUMOj. - O byte que sobra (
6F) virabw, completado com==. - Resultado:
UMOjbw==.
Esse detalhe do UTF-8 é a causa do erro mais comum com Base64 em JavaScript: a função nativa btoa("Pão") falha ou gera um resultado que outros sistemas leem errado. O certo é converter o texto em bytes UTF-8 com TextEncoder antes — exatamente o que esta página faz. Por isso emojis e acentos funcionam aqui.
Como 3 bytes viram 4 caracteres, o Base64 é sempre cerca de 33% maior que o original. Um arquivo de 90 KB vira 120 KB de texto.
Base64 padrão x URL-safe
| Característica | Padrão | URL-safe |
|---|---|---|
| Caractere 62 | + | - |
| Caractere 63 | / | _ |
Preenchimento = | Obrigatório | Geralmente omitido |
| Uso típico | E-mail, data URI, JSON | URLs, JWT, nomes de arquivo |
Na decodificação, a ferramenta aceita as duas variantes automaticamente, ignora espaços e quebras de linha e completa o = que estiver faltando.
Dicas e erros comuns
- Base64 não protege nada. Qualquer um decodifica em segundos. Não guarde senhas nem dados pessoais “codificados” achando que estão seguros.
- Evite embutir imagens grandes em data URI no site: o arquivo cresce 33% e não é armazenado em cache separadamente. Vale a pena para ícones pequenos (até uns 2–4 KB).
- Quebras de linha: alguns sistemas (como o MIME) quebram o Base64 a cada 76 caracteres. Isso é normal e é ignorado na decodificação.
- “Caracteres inválidos” geralmente indicam que o texto foi cortado, ou que veio com aspas ou com o prefixo de outro formato.
Ferramentas relacionadas
Se o Base64 vai dentro de uma URL, veja também o codificador de URL. Para APIs que recebem arquivos em JSON, organize a requisição com o formatador de JSON. E, antes de transformar uma imagem em Base64, reduza o tamanho com o compressor de imagem ou troque o formato no conversor de imagem.