Codificador e decodificador Base64

Converta texto em Base64 e Base64 de volta em texto, com suporte correto a acentos e emoji (UTF-8). A ferramenta também aceita Base64URL, usado em JWT e URLs, e explica o motivo quando a entrada é inválida. Tudo acontece no seu navegador.

Exemplos:

Base64 é codificação, não criptografia: qualquer pessoa consegue decodificar. O conteúdo não sai do seu navegador.

Resultado

Como usar

  1. Cole o texto ou o Base64 no campo de entrada.
  2. Clique em Codificar para gerar Base64, ou em Decodificar para ler um Base64.
  3. Marque Base64URL se o valor vai para uma URL, um nome de arquivo ou um token JWT.
  4. Use Usar resultado como entrada para fazer a ida e a volta e Copiar resultado para levar a saída adiante.

Exemplos

TextoBase64Base64URL
QAUUE=UUE
AçãoQcOnw6NvQcOnw6Nv
??>Pz8+Pz8-

Base64 não é criptografia

Base64 é só uma forma de representar bytes usando 64 caracteres seguros para texto. Não existe chave nem senha: qualquer pessoa decodifica o valor em um segundo. Por isso, credenciais em Base64 num cabeçalho Authorization: Basic, num arquivo de configuração ou num log estão, na prática, expostas. Para proteger um dado, é preciso criptografia de verdade e, no tráfego, HTTPS.

Como funciona

O texto é convertido em bytes UTF-8 com TextEncoder. Cada grupo de 3 bytes (24 bits) vira 4 caracteres de 6 bits do alfabeto A–Z a–z 0–9 + /. Quando sobram 1 ou 2 bytes no final, o resultado é completado com =. Por isso o Base64 fica cerca de 33% maior que o original.

Na decodificação, a ferramenta ignora espaços e quebras de linha, confere o alfabeto, a posição e a quantidade de = e o tamanho. Depois tenta ler os bytes como UTF-8 com TextDecoder em modo estrito. Se não for texto (uma imagem, um arquivo compactado), mostra os bytes em hexadecimal em vez de caracteres quebrados.

O Base64URL (RFC 4648, seção 5) troca + por - e / por _ e normalmente dispensa o =, para não conflitar com caracteres especiais de URL.

Uso em QA e desenvolvimento

  • Ler o cabeçalho Authorization: Basic de uma requisição capturada e conferir o usuário enviado.
  • Inspecionar partes de um JWT ou conteúdos de data: URLs.
  • Montar payloads de API que recebem arquivos ou textos em Base64.
  • Reproduzir bugs de acentuação: texto que vira ç costuma ser UTF-8 decodificado como Latin-1.

Erros comuns

  • Usar btoa() direto com acentos: a função do navegador só aceita caracteres de 1 byte e falha com “ção” ou emoji. É preciso converter para UTF-8 antes, como esta ferramenta faz.
  • Misturar alfabetos: um valor com + e - ao mesmo tempo foi corrompido ou montado errado.
  • Copiar pela metade: um Base64 cortado termina com tamanho inválido ou gera lixo nos últimos caracteres.
  • Achar que = é obrigatório: no Base64URL ele costuma ser omitido, e isso é válido.

Limitações

  • A entrada aceita até 2 milhões de caracteres.
  • Conteúdo binário é exibido em hexadecimal (até 512 bytes); a ferramenta não gera arquivos para download.
  • Variantes antigas, como o Base64 com quebra de linha a cada 76 caracteres (MIME), são decodificadas, mas a codificação gera sempre uma linha única.

Perguntas frequentes

Base64 serve para esconder senhas?

Não. Base64 é reversível por qualquer pessoa, sem chave. Ele resolve um problema de transporte (bytes em canais de texto), não de sigilo.

Por que o resultado termina com = ou ==?

Porque o tamanho original não era múltiplo de 3 bytes. Um = indica que faltou 1 byte para completar o último grupo, e == indica que faltaram 2.

O que significa “não é texto UTF-8”?

Os bytes decodificados não formam texto válido: provavelmente são um arquivo binário, como imagem ou PDF, ou um texto em outra codificação.

Meu conteúdo é enviado para algum servidor?

Não. A conversão roda no JavaScript da página e nada é registrado.

Ferramentas relacionadas

Referências