Codificar / Decodificar Base64

Codifique ou decodifique texto usando Base64.

...

O Que o Base64 Realmente Faz

O Base64 representa bytes arbitrários usando apenas 64 carateres ASCII seguros (A–Z, a–z, 0–9, +, /, mais = para preenchimento). Cada 3 bytes de entrada tornam-se 4 carateres de saída, por isso os dados codificados ficam cerca de 33 % maiores que o original. Existe para que dados binários ou com carateres especiais possam viajar por canais que só lidam com texto simples — corpos de email, strings JSON, atributos HTML, cabeçalhos HTTP.

Exemplo concreto: Hello World codifica para SGVsbG8gV29ybGQ=. O = final é preenchimento que marca o último grupo de 3 bytes como incompleto — os descodificadores precisam dele para saber onde os dados terminam.

Suporte Total de UTF-8

A função btoa() em bruto do navegador engasga-se com qualquer coisa fora do Latin-1 — tente codificar um emoji com ela e obtém o erro "characters outside of the Latin1 range". Esta ferramenta converte primeiro o seu texto para bytes UTF-8, por isso café, 日本語 e 🚀 codificam e descodificam corretamente na ida e volta. café torna-se Y2Fmw6k= (5 bytes, porque é ocupa dois bytes em UTF-8), e descodificar Y2Fmw6k= devolve-lhe café exatamente.

Usos Comuns

  • Data URIs: embeber pequenas imagens ou tipos de letra diretamente em CSS/HTML como data:image/png;base64,….
  • HTTP Basic Auth: o cabeçalho Authorization transporta user:password codificado em Base64.
  • Tokens JWT: cada um dos três segmentos separados por pontos é JSON codificado em Base64url — descodifique um para inspecionar as suas claims.
  • Binário em JSON/XML: conteúdos de ficheiros, chaves e certificados são rotineiramente enviados como strings Base64 em APIs.

Base64 Não é Encriptação

Esta é a armadilha que vale a pena repetir: o Base64 é uma codificação, não encriptação. Não há chave — qualquer pessoa o pode descodificar instantaneamente, como pode confirmar com esta própria ferramenta. Nunca trate o Base64 como uma forma de esconder palavras-passe ou segredos. Se precisa de verificações de integridade, use o gerador de hash; se precisa de um segredo forte à partida, use o gerador de palavras-passe. E note que o Base64 padrão usa + e /, que são inseguros dentro de URLs — passe a saída codificada pelo codificador de URL antes de a colocar numa string de consulta. Como todas as ferramentas aqui, codificar e descodificar corre inteiramente no seu navegador; nada é enviado para um servidor.

Perguntas frequentes

O que é a codificação Base64?
Um esquema que representa bytes arbitrários usando 64 carateres ASCII seguros, para que dados binários ou com carateres especiais possam passar por canais só de texto como email, JSON ou cabeçalhos HTTP. "Hello World" codifica para "SGVsbG8gV29ybGQ=".
O Base64 é encriptação?
Não. Não há chave — qualquer pessoa pode descodificar uma string Base64 instantaneamente. Muda a representação, não o sigilo. Nunca o use para proteger palavras-passe ou dados sensíveis.
Porque é que a saída codificada termina com sinais =?
Preenchimento. O Base64 processa a entrada em grupos de 3 bytes; quando o último grupo tem apenas 1 ou 2 bytes, um ou dois carateres = preenchem a lacuna para que os descodificadores saibam o comprimento real.
Posso codificar emoji e texto não inglês?
Sim. A ferramenta converte o texto para bytes UTF-8 antes de codificar, por isso emoji, acentos e carateres CJK fazem a ida e volta corretamente — ao contrário do btoa() em bruto do navegador, que falha com eles.
Quanto maior é a saída em Base64?
Cerca de 33 %: cada 3 bytes de entrada tornam-se 4 carateres de saída, mais até 2 carateres de preenchimento. 1 MB de dados torna-se cerca de 1,37 MB codificado.