O que é Base64 e quando usar?
Entenda o esquema de codificação Base64: como funciona, por que ele não é criptografia e quando deve ser usado em projetos reais.
Base64 é um esquema de codificação que transforma dados binários em uma sequência de caracteres ASCII legíveis. O nome vem do fato de usar um alfabeto de 64 caracteres: letras maiúsculas (A-Z), minúsculas (a-z), dígitos (0-9), mais os símbolos "+" e "/". O caractere "=" é usado como padding para garantir que o resultado tenha sempre comprimento múltiplo de 4.
Por que Base64 existe?
Muitos protocolos de comunicação foram projetados para transmitir apenas texto, não dados binários. O e-mail (SMTP), por exemplo, nasceu para transmitir texto ASCII. Quando surgiu a necessidade de enviar imagens ou arquivos anexados, foi preciso uma forma de representar binário como texto. Base64 foi a solução: ele converte qualquer sequência de bytes em uma string formada apenas por caracteres seguros para protocolos de texto.
Hoje, além do e-mail, Base64 é amplamente usado em APIs REST para transmitir dados binários dentro de JSON (que é um formato texto), em data URIs para embutir imagens diretamente em HTML ou CSS, em tokens de autenticação como Basic Auth, e em diversas partes de protocolos como JWT.
Como funciona o algoritmo?
O algoritmo pega 3 bytes (24 bits) de entrada e os converte em 4 caracteres Base64 (6 bits cada). Se os dados de entrada não forem múltiplos de 3 bytes, o padding "=" é adicionado para completar o grupo de 4 caracteres. Isso gera um aumento de tamanho de aproximadamente 33%.
- Converte cada byte para sua representação binária de 8 bits
- Agrupa os bits em grupos de 6
- Mapeia cada grupo de 6 bits para um caractere do alfabeto Base64
- Adiciona "=" de padding se necessário
Entrada: "Man"
ASCII: 77 97 110
Binário: 01001101 01100001 01101110
Grupos: 010011 010110 000101 101110
Base64: T W F u
Resultado: "TWFu"Base64 não é criptografia
Este é o equívoco mais comum. Base64 apenas muda a representação dos dados — não os protege. Para dados sensíveis, use algoritmos de criptografia real como AES-256 ou, para senhas, funções de hash como bcrypt ou argon2. Usar Base64 para "ofuscar" dados dá uma falsa sensação de segurança e não oferece proteção alguma contra ataques.
Variante URL-safe
Existe também o Base64 URL-safe, que substitui "+" por "-" e "/" por "_". Essa variação é usada em JWTs e URLs porque os caracteres "+" e "/" têm significados especiais em URLs e podem causar problemas se não forem codificados explicitamente. A maioria das bibliotecas modernas suporta ambas as variantes.
Quando usar Base64 na prática
- Embutir imagens em HTML/CSS como data URIs para evitar requisições HTTP extras
- Enviar arquivos binários dentro de um campo JSON em APIs REST
- Codificar credenciais no header Authorization: Basic em HTTP Basic Auth
- Transmitir chaves públicas ou certificados em formatos PEM
- Armazenar dados binários em bancos de dados que suportam apenas texto
Use a ferramenta de Base64 do UtilDev para codificar e decodificar texto diretamente no navegador, sem precisar instalar nada. Todo o processamento acontece localmente — seus dados não são enviados a nenhum servidor.