Base64: o que é e como codificar e decodificar
Base64 é um método para representar dados binários (imagens, arquivos, bytes de qualquer tipo) usando apenas 64 caracteres de texto: as letras A–Z e a–z, os números 0–9 e os símbolos + e /, com = como preenchimento no final. Ele existe porque muitos canais só transportam texto com segurança — e-mails, JSON, XML, URLs, cabeçalhos HTTP — e bytes arbitrários seriam corrompidos no caminho.
Esta ferramenta codifica e decodifica textos com suporte completo a acentos e emojis (UTF-8), converte arquivos em Base64 e Data URI e transforma Base64 de volta em arquivo para download. Tudo acontece no navegador, sem enviar nada para servidores.
Como funciona a codificação
O Base64 pega os dados em grupos de 3 bytes (24 bits) e os divide em 4 blocos de 6 bits; cada bloco vira um dos 64 caracteres. Por isso o resultado é sempre cerca de 33% maior que o original. Quando o número de bytes não é múltiplo de 3, o final recebe um ou dois sinais de =.
Exemplo: o texto Olá em UTF-8 tem os bytes 4F 6C C3 A1 e vira T2zDoQ==.
Base64 não é criptografia
Qualquer pessoa decodifica um Base64 em segundos. Ele serve para transportar dados, não para protegê-los. Nunca use Base64 para "esconder" senhas ou informações sigilosas; para isso existem criptografia e funções de hash (veja o gerador de hash).
Variações
- Base64 padrão (RFC 4648): usa
+e/, com preenchimento=. - Base64URL: troca
+por-e/por_, e geralmente dispensa o=. É seguro para URLs e nomes de arquivos, e é o formato usado nos tokens JWT. - MIME: quebra o texto em linhas de 76 caracteres, como exigem os anexos de e-mail.
Na decodificação, a ferramenta aceita qualquer uma dessas variações, com ou sem quebras de linha e preenchimento.
Data URI: imagens dentro do código
Um Data URI embute o arquivo diretamente no HTML ou CSS, no formato data:image/png;base64,iVBORw0…. É útil para ícones pequenos, e-mails HTML e protótipos, porque evita uma requisição extra. Para imagens grandes não compensa: o arquivo fica 33% maior e não é armazenado em cache separadamente. Na aba Arquivo → Base64 você copia o resultado pronto como Base64 puro, Data URI, regra CSS ou tag <img>.
Base64 em linguagens de programação
JavaScript (navegador): btoa(String.fromCharCode(...new TextEncoder().encode(texto)))
Node.js: Buffer.from(texto, "utf8").toString("base64")
Python: base64.b64encode(texto.encode()).decode()
PHP: base64_encode($texto)
Java: Base64.getEncoder().encodeToString(texto.getBytes(UTF_8))
Linux/macOS: echo -n "texto" | base64
Atenção ao btoa() do JavaScript: ele não aceita acentos diretamente e gera erro com caracteres fora do Latin-1. É preciso converter o texto para bytes UTF-8 antes, como esta ferramenta faz.