Neste artigo
O que é Base64?
Base64 é um esquema de codificação que converte dados binários em uma string de caracteres ASCII. Utiliza 64 caracteres seguros (A-Z, a-z, 0-9, +, /) para representar qualquer dado binário, tornando-o seguro para transmissão em protocolos baseados em texto como cabeçalhos HTTP, e-mail (MIME) e JSON.
Base64 não é criptografia — é codificação. Qualquer pessoa pode decodificar Base64 de volta aos dados originais sem nenhuma chave. O propósito do Base64 é permitir que dados binários passem por sistemas projetados para texto, não para fornecer segurança.
Como funciona a codificação Base64
Base64 converte cada grupo de 3 bytes (24 bits) em 4 caracteres Base64 (6 bits cada), adicionando caracteres = de preenchimento se a entrada não for divisível por 3.
- Agrupamento de bytes — os bytes de entrada são agrupados em conjuntos de 3 e convertidos em 4 caracteres de saída
- Mapeamento de caracteres — cada grupo de 6 bits é mapeado para um dos 64 caracteres ASCII imprimíveis
- Preenchimento — caracteres = são adicionados para garantir que o comprimento da saída seja sempre múltiplo de 4
Experimente gratuitamente — sem cadastro
Codificar ou Decodificar Base64 →Quando usar Base64
Base64 é usado sempre que dados binários precisam ser incorporados em formatos baseados em texto.
- Anexos de e-mail — a codificação MIME usa Base64 para anexar arquivos binários a mensagens de e-mail
- Data URIs — incorpore imagens diretamente em HTML/CSS como data:image/png;base64,... para evitar requisições HTTP
- Autenticação em APIs — credenciais de Basic Auth são codificadas em Base64 no cabeçalho HTTP Authorization
Perguntas frequentes
Base64 aumenta o tamanho dos dados?
Sim. A codificação Base64 aumenta o tamanho em aproximadamente 33%, pois cada 3 bytes de entrada produzem 4 bytes de saída. Essa é uma troca inerente para tornar dados binários seguros para texto.
Qual é a diferença entre Base64 padrão e Base64 seguro para URLs?
O Base64 padrão usa + e /, que têm significados especiais em URLs. O Base64 seguro para URLs (Base64url) substitui + por - e / por _ para produzir strings seguras para uso em URLs e nomes de arquivos sem codificação percentual. JWTs usam codificação Base64url.
Como lidar com Base64 em dados não UTF-8?
Base64 trabalha com bytes brutos, não com texto. Ao codificar dados binários como imagens ou conteúdo criptografado, trate-os como um array de bytes em vez de uma string. Em JavaScript, use Uint8Array ou Buffer; em Python, use objetos bytes para evitar problemas de codificação com dados não UTF-8.