Base64 na prática: para que serve, quando usar e por que não é segurança
O Base64 está em todo lugar: no token JWT da sua API, na imagem embutida num CSS, no anexo do e-mail que você mandou hoje. E, mesmo onipresente, segue gerando duas confusões clássicas — achar que é compressão e achar que é criptografia. Não é nenhuma das duas.
O problema que o Base64 resolve
Muitos protocolos e formatos só transportam texto com segurança: e-mail (MIME), JSON, XML, URLs. Dados binários — uma imagem, um PDF, bytes criptografados — quebrariam no caminho. O Base64 traduz qualquer sequência de bytes para um alfabeto de 64 caracteres imprimíveis, garantindo que o conteúdo atravesse qualquer canal de texto intacto.
Onde você usa sem perceber
- JWT: os três blocos de um token (header, payload, assinatura) são Base64URL — qualquer pessoa decodifica o payload e lê o conteúdo. Por isso nunca se guarda dado sensível dentro de um JWT;
- Data URIs:
data:image/png;base64,...embute ícones e imagens pequenas direto no HTML/CSS, economizando uma requisição; - Anexos de e-mail: todo anexo binário viaja como Base64 no corpo MIME;
- APIs: campos binários em JSON (assinaturas, certificados, arquivos) vão codificados.
O custo: 33% maior
Cada 3 bytes viram 4 caracteres — o dado codificado cresce um terço. Embutir imagens grandes em Base64 num HTML costuma ser anti-otimização: além do peso extra, o navegador perde o cache separado do arquivo. A regra prática: data URI para ícones pequenos, arquivo normal para o resto.
Codificar não é proteger
Base64 é reversível por definição e sem chave — qualquer um decodifica em um clique. "Senha em Base64 no banco" é senha em texto claro com uma etapa a mais. Para sigilo, criptografe primeiro (AES, por exemplo) e use o Base64 apenas para transportar o resultado.
Teste no navegador
O nosso Conversor Base64 codifica e decodifica direto no seu navegador — nada é enviado a servidor nenhum — e trata acentuação corretamente (UTF-8), que é onde a maioria dos conversores tropeça com português.