Como funciona a codificação Base64
A codificação Base64 divide os dados de entrada em blocos de 3 bytes (24 bits) e converte cada bloco em quatro carateres Base64 de 6 bits.
Alfabeto Base64:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
Preenchimento: Se o tamanho da entrada não for divisível por 3, carateres de preenchimento (=) são adicionados ao final.
Exemplo: “M” (77 em ASCII) = 01001101 em binário = TQ==
Exemplos comuns de codificação Base64
Aqui estão alguns exemplos comuns de codificação Base64:
| Texto original | Base64 codificado | Notas |
|---|---|---|
Hello |
SGVsbG8= |
Texto simples com preenchimento |
World |
V29ybGQ= |
Palavra de cinco carateres |
Hello World! |
SGVsbG8gV29ybGQh |
Inclui espaço e pontuação |
Base64 |
QmFzZTY0 |
Não precisa de preenchimento |
user:password |
dXNlcjpwYXNzd29yZA== |
Valor no estilo Basic Auth |
{"ok":true} |
eyJvayI6dHJ1ZX0= |
Pequena carga JSON |
Casos de uso comuns do Base64
- Anexos de e-mail: Base64 é usado em MIME para representar anexos binários em mensagens de e-mail
- Data URL: Incorporar imagens pequenas em HTML/CSS usando data:image/png;base64,…
- Autenticação de API: Algumas APIs usam Base64 em Basic Auth (utilizador:palavra-passe)
- Ficheiros de configuração: Armazenar dados binários ou carateres especiais em configurações JSON/XML
- Desenvolvimento web: Codificar conteúdos binários em pedidos AJAX
Erros de descodificação Base64 e dicas de uso seguro
Base64 é um formato de codificação, não encriptação. Qualquer pessoa com o valor codificado pode descodificá-lo; não use Base64 para proteger palavras-passe, chaves privadas, tokens ou dados confidenciais.
Se um valor Base64 não descodificar, verifique carateres ausentes, quebras de linha copiadas, variantes URL-safe que usam - e _, ou preenchimento = ausente no final.
- Use Base64 quando dados binários precisarem passar por um sistema apenas texto.
- Evite Base64 para imagens grandes em páginas de produção, pois aumenta o tamanho e pode reduzir a eficiência do cache.
- Use codificação de URL quando o objetivo for apenas tornar parâmetros de consulta seguros dentro de uma URL.