Pular para o conteúdo principal

Base64 Encode/Decode Online

Codifique e decodifique texto em Base64 rapidamente. Ferramenta essencial para desenvolvedores trabalharem com APIs, imagens e dados binários.

O que é Base64?

Base64 é um esquema de codificação que converte dados binários em texto ASCII usando 64 caracteres imprimíveis (A-Z, a-z, 0-9, +, /). É amplamente usado para transmitir dados binários através de meios que suportam apenas texto, como email (MIME) e URLs.

Como funciona a codificação Base64?

A codificação Base64 funciona dividindo a entrada em grupos de 3 bytes (24 bits) e convertendo cada grupo em 4 caracteres de 6 bits. Quando o número de bytes não é múltiplo de 3, caracteres de padding (=) são adicionados ao final.

Exemplo de conversão:

Texto original: "ABC"

Binário: 01000001 01000010 01000011

Agrupado (6 bits): 010000 010100 001001 000011

Decimal: 16 20 9 3

Base64: "QUJD"

Para que serve Base64?

1. Incorporar Imagens em HTML/CSS: Data URLs permitem incluir imagens diretamente no código sem requisições HTTP adicionais.

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

2. Transmissão de Dados Binários em JSON: APIs REST frequentemente usam Base64 para enviar arquivos ou dados binários em payloads JSON.

3. Autenticação HTTP Basic: Credenciais são codificadas em Base64 no header Authorization.

Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=

4. Email (MIME): Anexos em emails são codificados em Base64 para garantir compatibilidade com servidores que só suportam ASCII de 7 bits.

5. Armazenamento Temporário: Armazenar dados binários em cookies, localStorage ou sessionStorage.

Vantagens e Desvantagens

✓ Vantagens

  • • Compatível com sistemas que só aceitam texto ASCII
  • • Fácil de transmitir por email, URL e JSON
  • • Suportado nativamente em todas as linguagens
  • • Seguro para copiar/colar sem perder dados

✗ Desvantagens

  • • Aumenta tamanho em ~33% (overhead)
  • • Não é criptografia (não oferece segurança)
  • • Custo de CPU para encode/decode
  • • Não é human-readable

Base64 vs Outros Esquemas

EsquemaCaracteresOverheadUso Comum
Base64A-Z, a-z, 0-9, +, /~33%Email, JSON, Data URLs
Base64URLA-Z, a-z, 0-9, -, _~33%URLs, JWT tokens
Hexadecimal0-9, A-F100%Hashes, cores CSS
Base32A-Z, 2-7~60%TOTP, códigos de backup

Casos de uso práticos

🖼️ Data URL para favicon

Incorpore um favicon inline sem requisição HTTP externa:

<link rel="icon" href="data:image/svg+xml;base64,PHN2Zy..." />

🔑 HTTP Basic Auth

Enviar credenciais em requisições HTTP:

const credentials = btoa('usuario:senha');
headers.Authorization = `Basic ${credentials}`;

📧 Anexo de email

Protocolos SMTP usam Base64 para anexos, garantindo que caracteres especiais não corrompam a mensagem durante transmissão.

Base64 NÃO é criptografia

⚠️ Aviso Importante

Base64 é um esquema de codificação, não criptografia. Qualquer pessoa pode decodificar Base64 instantaneamente. Nunca use Base64 para proteger senhas, tokens ou dados sensíveis. Para segurança real, use algoritmos de criptografia como AES, RSA ou bcrypt.

FAQ - Perguntas Frequentes

1. Por que Base64 aumenta o tamanho do arquivo?

Porque converte 3 bytes (24 bits) em 4 caracteres de 6 bits cada. Isso gera um overhead de aproximadamente 33%. Um arquivo de 1 MB se torna ~1.33 MB em Base64.

2. O que significa o "=" no final de strings Base64?

O sinal de "=" é padding, adicionado quando o número de bytes de entrada não é múltiplo de 3. Pode haver 0, 1 ou 2 caracteres "=" no final.

3. Base64 pode ser usado para URLs?

Base64 padrão usa "+", "/" e "=" que são caracteres especiais em URLs. Use Base64URL (substitui + por -, / por _ e remove padding) para URLs seguras.

4. Como converter imagens para Base64?

Em JavaScript: use FileReader API. Em linha de comando: base64 image.png. Em Python: base64.b64encode().

5. Base64 suporta caracteres Unicode?

Sim! Nossa ferramenta usa encodeURIComponent para suportar UTF-8, incluindo emojis e caracteres acentuados.

6. Qual a diferença entre btoa() e atob()?

btoa() = binary to ASCII (codifica). atob() = ASCII to binary (decodifica). São funções JavaScript nativas do navegador.

Ferramentas Relacionadas