Artigo completo
Base64 é uma codificação inventada para transportar dados binários em canais desenhados apenas para texto, como o corpo de emails, cabeçalhos HTTP ou ficheiros JSON. Ao converter cada 3 bytes em 4 caracteres imprimíveis do alfabeto A-Z, a-z, 0-9, '+' e '/', garante que os dados sobrevivem ilesos mesmo em sistemas legados que interpretam de forma diferente bytes com o bit alto ativo.
Este codificador funciona bidireccionalmente: pode transformar texto legível em Base64 e vice-versa. Usamos internamente a API btoa/atob do navegador, complementada com encoding e decoding UTF-8 explícitos — a implementação nativa falha com caracteres acentuados se não for envolvida. Com a nossa camada extra, palavras como “São João”, “coração” ou emojis 🎉 são codificados e descodificados sem problemas.
A validação de entrada avisa quando o input não é Base64 válido (contém caracteres fora do alfabeto ou o comprimento não é múltiplo de 4). Isto ajuda a distinguir erros de colagem — como cortar um caractere final por acidente — de dados genuinamente corrompidos.
Base64 é omnipresente em contextos web: nos cabeçalhos Authorization: Basic; em data URLs que embutem pequenas imagens diretamente no HTML ou CSS eliminando pedidos HTTP extra; em tokens JWT (cujas partes são Base64URL); em anexos MIME de email; em chaves públicas PGP/SSH exportadas em texto. Compreender e conseguir inspecionar Base64 rapidamente é uma competência básica para qualquer developer.
Uma advertência importante: Base64 NÃO é encriptação. Qualquer pessoa com acesso à string codificada pode obter o conteúdo original em segundos. Nunca use Base64 sozinho para proteger palavras-passe, tokens de sessão ou dados sensíveis — combine-o com HTTPS e, quando o conteúdo o justifique, com criptografia real como AES.
Tem também uma variante importante: Base64URL substitui '+' por '-' e '/' por '_', e omite o padding '='. É usada em URLs e nomes de ficheiros para evitar caracteres que teriam de ser escapados. Se precisar de converter entre as duas variantes, faça a substituição manual após codificar/descodificar.