O que é Base64?
O Codificador e Decodificador Base64 converte texto de e para Base64, o esquema de codificação que representa dados binários como caracteres ASCII simples. O Base64 está em todo lugar no desenvolvimento moderno: data URLs para imagens embutidas, JSON Web Tokens (JWT), anexos de e-mail, cabeçalhos de autenticação básica e payloads de API que precisam trafegar por canais de texto. Esta ferramenta codifica e decodifica UTF-8 completo, então caracteres acentuados, símbolos e emoji são preservados corretamente. O modo automático inspeciona sua entrada e decide se codifica ou decodifica, enquanto os modos manuais Codificar e Decodificar dão controle total. Tudo roda localmente no navegador, então até tokens sensíveis nunca saem do dispositivo.
Base64 é um esquema de codificação que converte dados binários — bytes com qualquer valor de 0 a 255 — em uma string de caracteres ASCII imprimíveis. Foi criado para transportar com segurança conteúdo binário (imagens, arquivos, código executável) por sistemas projetados para lidar com texto, como e-mail, URLs e atributos HTML. O nome vem do alfabeto de 64 caracteres que usa: A–Z, a–z, 0–9, + e /.
Erros comuns com Base64
Tratar como medida de segurança
Base64 não tem chave nem segredo. Qualquer coisa codificada pode ser decodificada instantaneamente por qualquer um, inclusive por esta página. Codificar uma senha ou uma chave de API antes de armazenar ou transmitir não acrescenta proteção alguma — só torna o valor mais difícil de reconhecer de relance, o que não é a mesma coisa.
Chamar btoa() em texto fora do Latin1
O btoa() nativo do navegador só aceita caracteres até U+00FF e lança InvalidCharacterError em qualquer coisa além disso. Qualquer palavra acentuada, qualquer emoji, qualquer caractere cirílico ou CJK quebra a chamada. A solução é converter para bytes UTF-8 primeiro com TextEncoder e codificar esses bytes — que é o que esta ferramenta faz.
Misturar o alfabeto padrão com o URL-safe
O Base64 padrão usa + e /, e os dois têm significado dentro de uma URL: o + é lido como espaço em query string e a / separa caminhos. A variante URL-safe troca ambos por - e _. Entregar a um decodificador o alfabeto errado produz bytes corrompidos em vez de um erro limpo, então a falha aparece longe da causa.
Esquecer que ele aumenta o payload
Três bytes viram quatro caracteres, então o dado codificado fica cerca de 33% maior que o original, mais o padding. Embutir uma imagem grande como data URL pode custar mais banda do que uma segunda requisição custaria, e ela não pode ser cacheada separadamente do documento que a carrega.
Alfabeto padrão vs URL-safe
As duas variantes codificam bytes idênticos; só três posições mudam. A RFC 4648 as define nas seções 4 e 5, respectivamente.
| Posição | Padrão (RFC 4648 §4) | URL-safe (§5) | Por que muda |
|---|---|---|---|
| Índice 62 | + | - | O sinal de mais é lido como espaço em query strings |
| Índice 63 | / | _ | A barra é separador de caminho em URLs |
| Padding | = (obrigatório) | = (muitas vezes omitido) | Um = literal precisa de percent-encoding na URL |
| Índices 0-61 | A-Z a-z 0-9 | A-Z a-z 0-9 | Idênticos nas duas variantes |
JWTs usam a variante URL-safe com o padding removido, e é por isso que um segmento de JWT colado num decodificador padrão pode falhar até você recolocar os caracteres =.
Como funciona a codificação Base64
O codificador lê a entrada três bytes de cada vez (24 bits) e os divide em quatro grupos de 6 bits. Cada valor de 6 bits mapeia para um caractere no alfabeto de 64 caracteres, produzindo quatro caracteres ASCII para cada três bytes. Se o comprimento da entrada não for múltiplo de três, um ou dois caracteres de preenchimento = são adicionados.
A decodificação inverte o processo: cada caractere mapeia de volta para seu valor de 6 bits, grupos de quatro são mesclados em 24 bits, depois divididos em três bytes. Os = informam ao decodificador quantos bytes reais estão no último grupo.
Codificação e Decodificação Localmente
Codificação e decodificação em Base64 rodam como algoritmos JavaScript no seu navegador. Os dados que você codifica ou decodifica são processados localmente na sua máquina e nunca enviados a servidores externos.