O Que o Base64 Realmente Faz
O Base64 representa bytes arbitrários usando apenas 64 carateres ASCII seguros (A–Z, a–z, 0–9, +, /, mais = para preenchimento). Cada 3 bytes de entrada tornam-se 4 carateres de saída, por isso os dados codificados ficam cerca de 33 % maiores que o original. Existe para que dados binários ou com carateres especiais possam viajar por canais que só lidam com texto simples — corpos de email, strings JSON, atributos HTML, cabeçalhos HTTP.
Exemplo concreto: Hello World codifica para SGVsbG8gV29ybGQ=. O = final é preenchimento que marca o último grupo de 3 bytes como incompleto — os descodificadores precisam dele para saber onde os dados terminam.
Suporte Total de UTF-8
A função btoa() em bruto do navegador engasga-se com qualquer coisa fora do Latin-1 — tente codificar um emoji com ela e obtém o erro "characters outside of the Latin1 range". Esta ferramenta converte primeiro o seu texto para bytes UTF-8, por isso café, 日本語 e 🚀 codificam e descodificam corretamente na ida e volta. café torna-se Y2Fmw6k= (5 bytes, porque é ocupa dois bytes em UTF-8), e descodificar Y2Fmw6k= devolve-lhe café exatamente.
Usos Comuns
- Data URIs: embeber pequenas imagens ou tipos de letra diretamente em CSS/HTML como
data:image/png;base64,…. - HTTP Basic Auth: o cabeçalho
Authorizationtransportauser:passwordcodificado em Base64. - Tokens JWT: cada um dos três segmentos separados por pontos é JSON codificado em Base64url — descodifique um para inspecionar as suas claims.
- Binário em JSON/XML: conteúdos de ficheiros, chaves e certificados são rotineiramente enviados como strings Base64 em APIs.
Base64 Não é Encriptação
Esta é a armadilha que vale a pena repetir: o Base64 é uma codificação, não encriptação. Não há chave — qualquer pessoa o pode descodificar instantaneamente, como pode confirmar com esta própria ferramenta. Nunca trate o Base64 como uma forma de esconder palavras-passe ou segredos. Se precisa de verificações de integridade, use o gerador de hash; se precisa de um segredo forte à partida, use o gerador de palavras-passe. E note que o Base64 padrão usa + e /, que são inseguros dentro de URLs — passe a saída codificada pelo codificador de URL antes de a colocar numa string de consulta. Como todas as ferramentas aqui, codificar e descodificar corre inteiramente no seu navegador; nada é enviado para um servidor.