Base64 Encode / Decode
- Escolha o modo: codificar ou decodificar.
- Cole ou digite o texto.
- O resultado aparece enquanto você digita e pode ser copiado direto.
Base64 representa dados binários usando apenas 64 caracteres seguros: letras maiúsculas, minúsculas, dígitos, mais o + e o /. O sinal de igual no fim é preenchimento, para completar o último bloco.
A finalidade é atravessar canais que só aceitam texto — corpo de e-mail, campo JSON, atributo de HTML, URL de dados em CSS. Sem essa conversão, bytes arbitrários corromperiam a mensagem.
A conta é simples: cada 3 bytes viram 4 caracteres. Por isso o resultado é sempre cerca de 33% maior que a entrada. Embutir imagem grande como data URI cresce a página nessa mesma proporção.
A função btoa nativa do navegador só aceita caracteres de um byte e falha em qualquer texto com acento, cedilha ou emoji.
Esta ferramenta contorna isso convertendo o texto para UTF-8 com TextEncoder antes de codificar, e desfazendo o caminho com TextDecoder ao decodificar. Assim "ação" e "日本語" funcionam sem erro.
Se o seu código quebra com btoa em texto acentuado, é exatamente esse o passo que está faltando.
Codificação não é criptografia. Qualquer pessoa decodifica um Base64 em um segundo, sem chave e sem esforço.
Guardar senha, token ou dado pessoal em Base64 achando que está protegido é um equívoco comum e perigoso. Para proteger, é preciso criptografia de verdade.
O texto que você cola não sai do navegador: a conversão é local e nada é registrado.
Perguntas frequentes
Não. É apenas uma forma de representar dados usando caracteres seguros. A conversão é pública e reversível por qualquer um, sem chave.
Porque a função btoa do navegador só lida com caracteres de um byte. É preciso converter para UTF-8 antes, o que esta ferramenta faz automaticamente.
São preenchimento. O Base64 processa a entrada em blocos de 3 bytes; quando o último bloco fica incompleto, um ou dois sinais de igual completam a saída.
É uma variante que troca + por - e / por _, porque esses dois caracteres têm significado especial em URLs. É a codificação usada em JWT.
Para ícones pequenos, sim: elimina uma requisição. Para imagens grandes, não, porque o arquivo cresce um terço, não é cacheado separadamente e atrasa a renderização da página.