O que é Base64?
Base64 é um esquema de codificação que converte dados binários ou texto em uma sequência de 64 caracteres ASCII imprimíveis. É muito usado para transmitir dados em e-mails, incorporar imagens em HTML/CSS e enviar dados binários por canais que só aceitam texto. A decodificação reverte o processo, devolvendo o texto original.
Como codificar texto em Base64?
Para codificar texto em Base64, pegue os bytes brutos do texto, agrupe-os em conjuntos de 3 e mapeie cada grupo de 3 bytes (24 bits) para quatro caracteres do alfabeto Base64 de 64 caracteres; grupos finais incompletos recebem preenchimento com =. Exemplo: "hello" é codificado como "aGVsbG8=" e decodificar "aGVsbG8=" devolve "hello".
Passos para codificar e decodificar Base64
- Converta o texto de entrada em bytes brutos usando codificação UTF-8.
- Agrupe os bytes em conjuntos de 3 (24 bits no total), da esquerda para a direita.
- Divida cada grupo de 24 bits em quatro blocos de 6 bits (valores de 0 a 63).
- Mapeie cada bloco de 6 bits para um caractere do alfabeto Base64 A-Z, a-z, 0-9, +, /.
- Se o último grupo tiver menos de 3 bytes, preencha a saída com caracteres = para que o comprimento total seja múltiplo de 4; para decodificar, inverta cada etapa para recuperar os bytes originais.
Regra de codificação Base64
3 bytes (24 bits) -> 4 caracteres Base64 (6 bits cada), com preenchimento = até um múltiplo de 4
- Alfabeto Base64 = A-Z, a-z, 0-9, +, / — 64 caracteres imprimíveis, cada um representando um valor de 0 a 63
- O caractere de preenchimento = completa um grupo final incompleto, para que o comprimento da saída codificada seja sempre múltiplo de 4
Exemplos de conversão de texto para Base64
| Texto | Base64 |
|---|
| a | YQ== |
| ab | YWI= |
| abc | YWJj |
| hello | aGVsbG8= |
| Olá, Mundo! | T2zDoSwgTXVuZG8h |
Perguntas frequentes
A codificação Base64 é o mesmo que criptografia?
Não. O Base64 não tem chave secreta — qualquer pessoa pode decodificá-lo de volta ao texto original usando o mesmo alfabeto público e padronizado. Ele só muda a forma como os dados são representados para transmissão segura por sistemas que só aceitam texto; não oferece confidencialidade nenhuma e nunca deve ser usado para proteger dados sensíveis.
Por que a saída codificada às vezes termina com = ou ==?
Os caracteres = são preenchimento. O Base64 sempre converte grupos de 3 bytes de entrada em 4 caracteres de saída; se o comprimento da entrada não for múltiplo de 3, o último grupo recebe um ou dois sinais = para que o comprimento total da saída continue múltiplo de 4.
Por que a saída em Base64 é mais longa que o texto original?
Cada 3 bytes de entrada viram 4 caracteres de saída, então o texto codificado fica cerca de 33% maior que o original. Esse acréscimo é o preço para representar qualquer dado binário usando só caracteres ASCII seguros e imprimíveis.
O Base64 pode codificar qualquer tipo de dado, não só texto?
Sim. O Base64 opera sobre bytes brutos, então pode codificar imagens, áudio ou qualquer arquivo binário, não só texto. Esta ferramenta aceita entrada de texto e codifica sua representação em bytes UTF-8; codificar arquivos binários quaisquer exige uma ferramenta que leia os bytes do arquivo diretamente.
Esta ferramenta codifica e decodifica texto UTF-8 inteiramente no seu navegador; ela não aceita upload direto de arquivos binários, e decodificar um texto que não seja Base64 válido mostra um erro em vez de uma saída parcial ou corrompida.
Sources: RFC 4648 - The Base16, Base32, and Base64 Data Encodings