Codificador e decodificador Base64

Codifique texto em Base64 ou decodifique Base64 de volta para texto — compatível com Unicode e com erros claros quando algo falha. Tudo no seu navegador.

Esta página foi traduzida do inglês com a ajuda de IA e conferida com o original. Ler a versão em inglês

  • Grátis — Sem necessidade de cadastro
  • Instantâneo — Os resultados são atualizados enquanto você digita
  • Privado — Processado no seu navegador

O Base64 transforma qualquer sequência de bytes em texto formado por 64 caracteres seguros, para que dados binários ou não ASCII possam trafegar por sistemas que só entendem ASCII puro: corpos de e-mail, strings JSON, cabeçalhos HTTP, arquivos de configuração. Esta ferramenta codifica e decodifica texto nos dois sentidos, e faz isso corretamente para qualquer caractere Unicode, algo que as funções nativas btoa e atob do navegador não conseguem.

Como funciona

No modo Codificar, o seu texto é primeiro convertido em bytes UTF-8 com TextEncoder, e depois esses bytes são codificados em Base64 em blocos de 32 KB, para que entradas muito longas não estourem a pilha de chamadas. A saída usa o alfabeto padrão (A–Z, a–z, 0–9, +, /) com padding =, conforme definido na seção 4 da RFC 4648.

No modo Decodificar, o Base64 é convertido de volta em bytes com atob e depois decodificado como UTF-8 em modo estrito. Dois erros diferentes podem aparecer:

  • Isso não parece ser Base64 válido significa que a entrada contém caracteres fora do alfabeto ou que o comprimento dela é impossível. Espaços e quebras de linha são tolerados, e a falta de padding é perdoada, mas a variante URL-safe com - e _ não: substitua esses caracteres por + e / antes.
  • Os dados decodificados não são texto UTF-8 válido significa que o Base64 estava correto, mas os bytes não são texto. É o que você vê ao decodificar uma imagem, um certificado no formato DER ou um blob compactado. A ferramenta trabalha só com texto de propósito: ela não vai mostrar uma versão corrompida de dados binários.

Tudo roda localmente, e o resultado é atualizado a cada tecla digitada.

O que o Base64 é e o que ele não é

Base64 é uma codificação, não uma criptografia. Qualquer pessoa consegue revertê-lo em uma fração de segundo, e ele também não oferece nenhuma proteção de integridade. Se você encontrar credenciais "protegidas" por Base64, trate-as como texto puro. O cabeçalho de autenticação HTTP Basic é o exemplo clássico: Basic dXNlcjpwYXNz é simplesmente user:pass.

Ele também não é compacto. Cada 3 bytes viram 4 caracteres, então a saída fica cerca de 33% maior que a entrada, sem contar o padding. Embutir arquivos grandes em JSON ou HTML dessa forma consome banda; para qualquer coisa acima de alguns kilobytes, prefira uma requisição binária separada.

O padding = não carrega dados. Algumas implementações o omitem, e a RFC 7515 (JSON Web Signatures) exige que ele seja omitido na forma URL-safe usada pelos JWTs. É por isso que um segmento de JWT colado aqui precisa de um pequeno ajuste antes de ser decodificado; o decodificador de JWT cuida dessa variante para você.

Equivalente na linha de comando

As mesmas operações no Linux e no macOS, com -n para impedir que o echo acrescente uma quebra de linha que acabaria dentro da codificação:

echo -n 'héllo wörld' | base64          # aMOpbGxvIHfDtnJsZA==
echo 'aMOpbGxvIHfDtnJsZA==' | base64 -d  # héllo wörld

Nas versões mais antigas, o utilitário base64 do macOS usa -D para decodificar; --decode funciona nos dois sistemas.

Saiba mais

O Base64 aparece sempre que um protocolo precisa transportar bytes dentro de texto. O guia de design de APIs REST discute quando embutir dados binários em um corpo JSON e quando usar um link para eles, e o guia de OAuth 2.0 explica o cabeçalho do fluxo client credentials e a codificação URL-safe usada pelos tokens. Para a codificação percentual, o outro esquema que torna um texto seguro para URLs, veja o codificador de URL.

Perguntas frequentes

Isso lida corretamente com emojis e texto em outros idiomas?
Sim. O texto é convertido em bytes UTF-8 antes da codificação em Base64 (e decodificado da mesma forma), então caracteres acentuados, emojis e escritas não latinas são preservados corretamente — ao contrário de um simples btoa/atob, que falha com qualquer caractere fora do intervalo Latin-1.
Por que a decodificação diz que minha entrada é inválida?
O Base64 usa um alfabeto específico de 64 caracteres mais o preenchimento =. Se a entrada contém outros caracteres, tem um comprimento incorreto, ou é decodificada em uma sequência de bytes que não é texto UTF-8 válido, você verá um erro específico explicando qual desses problemas ocorreu.
Meus dados são enviados a um servidor?
Não. A codificação e a decodificação acontecem inteiramente no seu navegador.