Garantia de privacidade: Esta ferramenta roda inteiramente no seu navegador. Nenhuma requisição de rede é feita. Seus dados permanecem no seu dispositivo.
0 caracteres
0 caracteres
Ações rápidas: Base64 URL-safe Data URL (image/png) Data URL (text/plain)

O que é Codificação Base64?

Base64 é um esquema de codificação binário-para-texto que converte dados binários arbitrários em uma sequência de 64 caracteres ASCII imprimíveis: letras maiúsculas (A-Z), letras minúsculas (a-z), dígitos (0-9), mais (+) e barra (/). O padding é adicionado com sinais de igual (=) para garantir que o comprimento da saída seja múltiplo de quatro.

O nome "Base64" vem do fato de que usa exatamente 64 caracteres distintos para representar dados. Cada 3 bytes de entrada se tornam 4 caracteres Base64, o que significa que a saída codificada é aproximadamente 33% maior que o binário original.

Quando Usar Base64

  • Incorporar imagens em HTML/CSS — use uma data URL (data:image/png;base64,...) para incluir imagens pequenas inline sem requisições HTTP extras
  • Payloads JSON — JSON só suporta texto; Base64 permite incluir dados binários como conteúdo de arquivos ou imagens em campos JSON
  • Anexos de email — o padrão MIME usa Base64 para codificar anexos binários em emails de texto simples
  • Headers HTTP e query parameters — passe valores binários com segurança por canais que só aceitam ASCII
  • Tokens JWT — o header e payload de um JSON Web Token são codificados em Base64URL
  • Armazenar blobs binários em bancos de texto — codifique pequenos valores binários para armazenamento em colunas VARCHAR ou TEXT
  • Autenticação Basic — HTTP Basic Auth codifica credenciais como Base64 (usuario:senha)

Base64 em JavaScript

Navegadores modernos fornecem duas funções nativas para codificação e decodificação Base64. Para texto Unicode, você precisa lidar com caracteres multi-byte explicitamente:

// Codificar uma string ASCII simples
const encoded = btoa('Hello, world!');
// → "SGVsbG8sIHdvcmxkIQ=="

// Decodificar uma string Base64
const decoded = atob('SGVsbG8sIHdvcmxkIQ==');
// → "Hello, world!"

// Codificar uma string UTF-8 (suporta emoji, não-ASCII)
function encodeUTF8(str) {
  const bytes = new TextEncoder().encode(str);
  const binStr = Array.from(bytes, b => String.fromCharCode(b)).join('');
  return btoa(binStr);
}

// Decodificar uma string Base64 UTF-8
function decodeUTF8(b64) {
  const binStr = atob(b64);
  const bytes = Uint8Array.from(binStr, c => c.charCodeAt(0));
  return new TextDecoder().decode(bytes);
}

// Base64 URL-safe (substitui + por - e / por _)
function encodeURLSafe(str) {
  return encodeUTF8(str).replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '');
}

// Node.js (server-side)
const encoded = Buffer.from('Hello').toString('base64');
const decoded = Buffer.from('SGVsbG8=', 'base64').toString('utf8');

// Gerar uma data URL a partir de uma string
function toDataURL(content, mimeType = 'text/plain') {
  return `data:${mimeType};base64,${encodeUTF8(content)}`;
}

Perguntas Frequentes

O que é codificação Base64?

Base64 é um esquema de codificação binário-para-texto que representa dados binários usando 64 caracteres ASCII imprimíveis. É usado para transmitir com segurança conteúdo binário — como imagens, arquivos ou bytes arbitrários — por canais que só suportam texto, como JSON, XML, email e URLs. Base64 não comprime dados; a saída codificada é aproximadamente 33% maior que a entrada.

Quando devo usar codificação Base64?

Use Base64 quando precisar incorporar dados binários em um contexto somente-texto: imagens inline em HTML ou CSS como data URLs, campos binários em payloads de API JSON, anexos de arquivos em email (MIME), credenciais em headers HTTP Basic Auth e pequenos blobs binários armazenados em colunas de texto em bancos de dados. Para arquivos grandes, prefira fazer upload diretamente em vez de codificá-los em Base64, pois o overhead de tamanho se acumula rapidamente.

Base64 é uma forma de criptografia?

Não — Base64 é puramente um esquema de codificação, não criptografia. Oferece zero segurança ou confidencialidade. Qualquer string Base64 pode ser decodificada instantaneamente por qualquer pessoa sem chave ou senha. Nunca use Base64 para esconder dados sensíveis como senhas, chaves de API ou informações pessoais. Se precisar de confidencialidade, use criptografia adequada como AES-256 (simétrica) ou RSA (assimétrica).

O que é uma data URL em Base64?

Uma data URL incorpora o conteúdo de um arquivo diretamente em um URI usando codificação Base64, seguindo o formato data:[mime-type];base64,[dados-codificados]. Por exemplo: data:image/png;base64,iVBORw0KGgo.... Data URLs permitem incorporar imagens ou arquivos pequenos diretamente em HTML, CSS ou JSON sem uma requisição de arquivo separada. São mais indicadas para assets pequenos (abaixo de poucos kilobytes), pois data URLs maiores aumentam o tamanho da página e não podem ser cacheadas pelo navegador independentemente do documento que as contém.

Ferramentas Relacionadas