Base64: o que é e como funciona
Uma forma de escrever bytes com letras e números. Parece embaralhado, mas qualquer pessoa desfaz em um segundo.
Codificação
Só muda o formato dos dados, sem esconder nada.
Não é criptografia
Não protege um segredo: qualquer pessoa decodifica.
Chave
Não usa chave. A tabela de 64 caracteres é pública.
O que é
Base64 é uma codificação: uma regra para representar bytes quaisquer usando apenas 64 caracteres seguros, que passam por qualquer sistema de texto. Ela está definida na RFC 4648.
Muitos canais foram feitos para texto, como o e-mail, o JSON e os endereços da web. Um arquivo de imagem ou uma chave de criptografia contêm bytes que esses canais não aceitam. O Base64 resolve isso: transforma os bytes em texto, e o destino transforma o texto de volta nos mesmos bytes.
O Base64 não é criptografia. Não existe chave, e a regra é pública. Ele só muda a aparência dos dados.
Como funciona
O alfabeto tem 64 caracteres: as letras de A a Z, as letras de a a z, os dígitos de 0 a 9, e os sinais + e /. Como 64 é dois elevado a seis, cada caractere representa exatamente 6 bits.
O texto é lido em grupos de 3 bytes, ou 24 bits. Cada grupo vira 4 grupos de 6 bits, e cada grupo de 6 bits vira um caractere do alfabeto. Quando o último grupo tem menos de 3 bytes, o resultado é completado com um ou dois sinais =.
Como 3 bytes viram 4 caracteres, o resultado fica cerca de 33% maior que o original.
Exemplo
No playground desta página, escolha Base64 e digite "olá". Em UTF-8, essa palavra tem 4 bytes, porque a letra "á" ocupa 2 bytes. O resultado é b2zDoQ==. Os dois sinais = no fim indicam que o último grupo tinha só 1 byte.
Clique em "Decifrar" e a palavra volta, sem nenhuma chave. Qualquer site ou terminal faz o mesmo: basta colar b2zDoQ== em um decodificador de Base64.
Onde é usado
O Base64 aparece em muitos lugares do dia a dia:
- Anexos de e-mail, pelo padrão MIME.
- Data URLs, que colocam uma imagem pequena direto no código de uma página.
- O JWT, o token de login de muitos sites, que usa a variante Base64url, com - e _ no lugar de + e /.
- O cabeçalho HTTP Basic, que envia usuário e senha em Base64.
- Chaves, certificados e textos cifrados, como os que o playground mostra para o AES e o RSA.
Pontos fortes e fracos
Pontos fortes: é simples, rápido, sem perdas e suportado por todas as linguagens. Ele permite enviar qualquer dado binário por um canal de texto.
Pontos fracos: os dados ficam um terço maiores. E o risco mais comum é confundir Base64 com proteção. Um texto em Base64 parece ilegível, mas não esconde nada. O conteúdo de um JWT pode ser lido por qualquer pessoa que tenha o token. Uma senha enviada pelo HTTP Basic sem HTTPS pode ser lida por quem observa a rede.
Quando usar
Use o Base64 para transportar bytes por canais de texto: anexos, JSON, URLs (com a variante Base64url) ou para mostrar chaves e textos cifrados na tela.
Nunca use o Base64 para esconder uma senha, um token ou um dado pessoal. Se a informação é secreta, cifre primeiro com um algoritmo como o AES-256-GCM. Depois, se precisar, codifique o resultado em Base64 para transportá-lo.
Teste os algoritmos
Escolha um algoritmo, escreva um texto e veja como ele fica. Tudo acontece no seu navegador e nada é salvo.
Criptografia
Hash
Autenticação e assinatura
Troca e derivação de chaves
Codificação
Cifras clássicas
Base64
Não é criptografiaCodificação
Transforma bytes em letras e números para transporte. Não usa chave: qualquer pessoa desfaz a codificação, então não protege nada.
Veja também
Precisa enviar um segredo?
Use uma nota segura: o texto é criptografado com AES-256-GCM e se apaga sozinho.