Base64 aparece em JWTs, em URIs data:, em cabeçalhos de autenticação básica e em metade dos emails com anexos do mundo. E, ainda assim, é uma das técnicas pior compreendidas: muita gente acredita que Base64 é uma forma de cifra. Não é.
O que faz exatamente
Base64 converte dados binários em texto imprimível, usando 64 caracteres seguros (A-Z, a-z, 0-9, +, /). Não comprime nem oculta nada: é uma codificação reversível por design, tão reversível que a poderias decodificar de cabeça se soubesses a tabela. O seu único trabalho é garantir que bytes arbitrários sobrevivem intactos por canais pensados para texto (JSON, XML, formulários, email).
O custo: mais 33 % de tamanho
Cada 3 bytes de dados originais tornam-se 4 caracteres Base64. Isso é um overhead fixo de 33 %, sempre. Por isso, incorporar uma imagem como data:image/png;base64,... dentro de HTML ou CSS só compensa para ícones muito pequenos (uns KB): poupas um pedido HTTP, mas pagas em peso extra e perdes a cache independente do ficheiro.
Onde faz mesmo sentido
- JSON Web Tokens (JWT): o header e o payload vão em Base64URL (uma variante com
-e_em vez de+e/, sem padding=, para caber numa URL sem escapar caracteres). - Cabeçalhos
Authorization: Basic: utilizador e palavra-passe concatenados e codificados — por isso o HTTP Basic Auth exige HTTPS, já que decodificar Base64 é trivial. - Anexar binários em JSON: quando não podes usar
multipart/form-data, Base64 é a forma padrão de meter uma imagem ou PDF num campo de texto.
O erro a evitar
Se precisares de ocultar um dado (uma palavra-passe, um token secreto em trânsito), o Base64 não te protege de nada — é codificação, não cifra. Para isso usa TLS no transporte e, se precisares de cifra real em repouso, algo como AES com a nossa cifra AES-256, que essa sim exige uma palavra-passe e não pode ser revertida sem ela.
Podes codificar e descodificar texto ou imagens com o conversor Base64 (incluindo a variante URL-safe), ou converter diretamente uma imagem para URI data: com o conversor de imagem para Base64 — tudo no teu navegador, sem carregar nada para lado nenhum.

