Base64 é um esquema de codificação de binário para texto que representa dados binários usando um conjunto de 64 caracteres ASCII imprimíveis. Foi projetado para transportar com segurança dados binários através de sistemas que lidam apenas com texto — como e-mail (MIME), cabeçalhos HTTP e XML. O nome "Base64" vem dos 64 caracteres usados no alfabeto de codificação.
A codificação funciona pegando três bytes de entrada (24 bits) e dividindo-os em quatro grupos de 6 bits. Cada valor de 6 bits corresponde a um caractere no alfabeto Base64. Se o comprimento da entrada não for múltiplo de três, caracteres de preenchimento (=) são adicionados para atingir um múltiplo de quatro caracteres na saída. O resultado é uma string aproximadamente 33% maior do que os dados originais, mas segura para transmissão como texto simples.
Por que usar esta ferramenta?
Este codificador lida corretamente com texto Unicode, suporta as variantes padrão e URL-safe, e codifica inteiramente no seu navegador — seus dados nunca saem da sua máquina.
⚡
Codificação instantânea
Os resultados aparecem enquanto você digita. Sem botões para clicar, sem aguardar resposta do servidor.
🔗
Alternância URL-safe
Alterne entre codificação padrão (+/) e URL-safe (-_) com um único clique. O preenchimento é removido automaticamente para a variante URL-safe.
🔒
Totalmente no lado do cliente
Toda a codificação ocorre localmente no seu navegador usando a API nativa btoa e TextEncoder. Nada é enviado para nenhum servidor.
🎛️
Suporte a Unicode
Lida corretamente com Unicode completo incluindo emoji, caracteres CJK e qualquer texto UTF-8 usando encodeURIComponent antes de codificar.
Como usar este codificador Base64 online
Sem conta, sem instalação, sem upload — cole o texto e a saída codificada aparece instantaneamente.
1
Cole ou digite seu texto
Clique no campo de entrada e cole qualquer texto — strings simples, payloads JSON, chaves de API, endereços de e-mail ou qualquer conteúdo UTF-8. A codificação é atualizada em tempo real enquanto você digita.
2
Escolha sua variante
Selecione Padrão (RFC 4648) para MIME, HTTP Basic Auth e uso geral. Selecione URL-safe para tokens JWT, parâmetros de query string, nomes de arquivo e qualquer contexto onde + ou / quebraria a análise de URL.
3
Copie a saída
Clique em Copiar para enviar a string Base64 para sua área de transferência com um clique. A saída está pronta para ser colada diretamente no seu código, arquivo de configuração ou requisição de API.
4
Use em sua aplicação
Cole a string codificada onde for necessário — cabeçalhos Authorization, URIs de dados, campos JSON, variáveis de ambiente ou segredos do Kubernetes. Para saída URL-safe, o padding já está removido.
O alfabeto Base64
Base64 usa 64 caracteres: maiúsculas A–Z (valores 0–25), minúsculas a–z (26–51), dígitos 0–9 (52–61), e dois caracteres especiais para os valores 62 e 63. A variante padrão RFC 4648 usa + e /; a variante URL-safe os substitui por - e _ para evitar conflitos em URLs e nomes de arquivo.
A–Z
0–25
ABCDEFGHIJKLMNOPQRSTUVWXYZ
a–z
26–51
abcdefghijklmnopqrstuvwxyz
0–9
52–61
0123456789
+, /
62–63
RFC 4648 padrão — evitar em URLs e nomes de arquivo
-, _
62–63
Variante URL-safe (RFC 4648 §5) — segura em URLs e nomes de arquivo
Base64 padrão vs URL-safe
O alfabeto Base64 padrão usa + e / que são caracteres especiais em URLs e caminhos de arquivo. A variante URL-safe os substitui por - e _ e normalmente omite os caracteres de preenchimento =. Use codificação URL-safe para tokens JWT, dados em strings de consulta, nomes de arquivo e qualquer contexto onde + ou / seriam mal interpretados.
Entrada
Padrão
URL-safe
Man
TWFu
TWFu
Hello
SGVsbG8=
SGVsbG8
A
QQ==
QQ
1+1=2
MSsxPTI=
MSsxPTI
Casos de uso comuns
Anexos de e-mail (MIME)
SMTP foi projetado para texto ASCII de 7 bits. A codificação Base64 é usada pelo padrão MIME para incorporar com segurança anexos binários (imagens, PDFs, executáveis) em mensagens de e-mail.
URIs de dados
Incorpore imagens, fontes e outros recursos diretamente em HTML ou CSS usando URIs de dados: data:image/png;base64,... — eliminando requisições HTTP extras para recursos pequenos.
Cargas de API
APIs REST frequentemente requerem que campos binários (uploads de arquivos, chaves criptográficas, certificados) sejam codificados em Base64 quando incorporados em JSON, pois JSON não tem tipo binário.
Arquivos de configuração
Segredos do Kubernetes, variáveis de ambiente e configurações CI/CD comumente armazenam segredos binários e certificados como strings Base64 para evitar problemas de escape.
HTTP Basic Auth
O cabeçalho HTTP Authorization: Basic codifica credenciais como Base64(usuário:senha). Isso não é criptografia — apenas fornece codificação para transporte em cabeçalhos.
Tokens JWT
JSON Web Tokens usam Base64 URL-safe (base64url) para codificar os segmentos de cabeçalho e carga útil, tornando o token seguro para uso em URLs e cabeçalhos HTTP sem escape.
Quando NÃO usar Base64
Base64 é uma codificação de transporte, não um mecanismo de segurança. Estes são os usos incorretos mais comuns que causam problemas reais em produção:
✕
Não para segurança ou criptografia
Base64 é trivialmente reversível — nenhuma chave ou senha é necessária para decodificá-lo. Qualquer pessoa que veja uma string Base64 pode decodificá-la em segundos. Nunca use Base64 como substituto para criptografia, hashing ou controle de acesso.
✕
Não para compressão
Base64 aumenta o tamanho da saída em ~33%. É o oposto da compressão. Não o use para reduzir o tamanho do payload — use gzip, Brotli ou zstd.
✕
Não para armazenamento de arquivos binários
Armazenar arquivos binários grandes como Base64 em bancos de dados ou APIs JSON desperdiça armazenamento e memória significativos. Use armazenamento de objetos (S3, R2, Cloudflare) e sirva o binário diretamente.
Exemplos de código
Como codificar uma string em Base64 em linguagens e ambientes populares:
JavaScript (browser)
// Standard Base64
const encoded = btoa(unescape(encodeURIComponent(text)))
// URL-safe Base64 (no padding)
const urlSafe = btoa(unescape(encodeURIComponent(text)))
.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '')
Existem vários codificadores Base64 online. Os principais diferenciais para uso diário do desenvolvedor são privacidade, correção e suporte a variantes.
Totalmente privado — sem servidor
Este codificador roda inteiramente no seu navegador usando a API nativa btoa e TextEncoder. Seu texto nunca é transmitido para nenhum servidor — seguro para chaves de API, tokens e segredos.
Codificação Unicode correta
Muitas ferramentas Base64 online corrompem silenciosamente entradas não-ASCII. Esta ferramenta lida corretamente com Unicode completo — emoji, CJK, árabe e todo texto UTF-8 — codificando primeiro para bytes UTF-8.
Ambas as variantes em um só lugar
A maioria das ferramentas oferece apenas Base64 padrão. Este codificador fornece as variantes padrão (+/) e URL-safe (-_) com tratamento automático de padding — sem necessidade de substituição manual de caracteres.
Perguntas frequentes
Base64 é o mesmo que criptografia?
Não. Base64 é um esquema de codificação, não criptografia. É trivialmente reversível por qualquer pessoa — nenhuma chave ou senha é necessária para decodificá-lo. Nunca use Base64 para proteger dados sensíveis. Use criptografia adequada (AES, RSA) para esse propósito.
Por que a saída Base64 termina com = ou ==?
Base64 trabalha em grupos de 3 bytes (24 bits), produzindo 4 caracteres Base64. Se o comprimento da entrada não for múltiplo de 3, caracteres de preenchimento (=) são adicionados para que o comprimento da saída seja múltiplo de 4. Um = significa que o último grupo tinha 2 bytes; dois = significa que tinha 1 byte.
O que é Base64 URL-safe?
Base64 URL-safe (definido em RFC 4648 §5) substitui + por - e / por _ para que a string codificada possa ser usada em URLs, nomes de arquivo e cabeçalhos HTTP sem codificação percentual. Também tipicamente omite os caracteres de preenchimento =.
Quanto o Base64 aumenta o tamanho do arquivo?
A codificação Base64 aumenta o tamanho em aproximadamente 33%. Cada 3 bytes de entrada se tornam 4 caracteres de saída. Para um arquivo de 1 MB, a saída Base64 será de aproximadamente 1,37 MB. Essa sobrecarga é por que Base64 só é usado quando necessário.
Posso codificar arquivos binários com esta ferramenta?
Esta ferramenta codifica strings de texto (tratadas como bytes UTF-8). Para codificar arquivos binários arbitrários (imagens, PDFs, executáveis), use uma biblioteca de linguagem ou ferramenta CLI que leia bytes brutos e os alimente ao codificador Base64.
Qual é a diferença entre btoa() e Buffer.from().toString('base64')?
btoa() é um built-in do navegador que funciona com strings Latin-1; lançará erro para caracteres não ASCII a menos que você os codifique para bytes UTF-8 primeiro (usando encodeURIComponent). Buffer.from(texto).toString('base64') no Node.js lida com strings UTF-8 diretamente e é a abordagem preferida no servidor.
Base64 funciona com arquivos binários?
Esta ferramenta codifica strings de texto como bytes UTF-8 em Base64. Para arquivos binários (imagens, PDFs, executáveis), use uma ferramenta de linha de comando ou biblioteca de linguagem que leia bytes brutos. No navegador, use FileReader.readAsDataURL() que retorna uma URI de dados com conteúdo binário codificado em Base64.
Existe um limite de tamanho para codificação?
Esta ferramenta roda inteiramente no navegador sem limite do lado do servidor. Os limites práticos dependem da memória do seu navegador. Para entradas muito grandes (acima de alguns MB), uma ferramenta de linha de comando como base64 (Linux/macOS) ou certutil -encode (Windows) é mais eficiente.