← Blog

🔐 Base64: O Que É e Como Funciona

Base64 é um método de codificação que converte dados binários em texto ASCII. Essencial para desenvolvimento web, APIs e transmissão de dados.

🤔 O Que É Base64?

Sistema de codificação que representa dados binários usando 64 caracteres ASCII seguros: A-Z, a-z, 0-9, +, /

🎯 Para Que Serve?

  • Imagens Inline: Embutir imagens em HTML/CSS
  • Emails: Anexos e imagens em HTML
  • APIs: Transmitir arquivos em JSON
  • Autenticação: Basic Auth em headers HTTP
  • Data URIs: Imagens sem requests extras
  • Certificados: Armazenar chaves e certificados

💻 Exemplo Prático

Texto: Olá Mundo

Base64: T2zDoSBNdW5kbw==

🌐 Uso em Desenvolvimento Web

1. Imagens Inline

Embutir imagens pequenas diretamente no HTML/CSS reduz requests HTTP:

<img src="data:image/png;base64,iVBORw0KG..." />

2. Favicon

Incluir favicon sem arquivo extra.

3. Fontes Web

Embutir fontes customizadas em CSS.

⚠️ Quando NÃO Usar

  • Imagens Grandes: Aumenta tamanho em 33%
  • Performance: Cache não funciona
  • SEO: Imagens inline não são indexadas
  • Manutenção: Difícil atualizar

🔒 Base64 NÃO É Criptografia!

Base64 é CODIFICAÇÃO, não criptografia. Qualquer um pode decodificar. Não use para dados sensíveis!

📊 Vantagens e Desvantagens

Vantagens

  • Fácil transmissão via texto
  • Compatible com JSON/XML
  • Reduz requests HTTP
  • Funciona em sistemas legados

Desvantagens

  • Aumenta tamanho em ~33%
  • Não cacheable
  • Processamento adicional
  • Não é seguro

Codifique e Decodifique Base64!

🔐 Acessar Codificador

💡 Casos de Uso Práticos

1. API REST

Enviar arquivos em JSON sem multipart/form-data.

2. Basic Authentication

Header: Authorization: Basic base64(username:password)

3. JWT Tokens

JWTs usam Base64 URL-safe para codificar payloads.

4. Email Marketing

Imagens inline em newsletters HTML.

🔧 Base64 URL-Safe

Variante que substitui caracteres problemáticos em URLs:

  • + → -
  • / → _
  • = → omitido

📚 Curiosidades

  • Base64 foi criado nos anos 1980
  • É padrão em MIME (emails)
  • Navegadores modernos suportam nativamente
  • Python, JavaScript, PHP têm funções nativas