Codificar e Decodificar Base64

Codifique e decodifique Base64 online com suporte UTF-8 correto (ç, acentos e emoji), variante URL-safe e arquivos. Tudo no seu navegador, sem enviar nada.

0 bytes

O que é Base64?

Base64 é um sistema de codificação que representa dados binários usando apenas 64 caracteres de texto imprimível (A–Z, a–z, 0–9, + e /), para poder transportá-los por canais que só aceitam texto.

A ideia é simples: os bytes são agrupados de três em três (24 bits) e divididos em quatro grupos de 6 bits, cada um traduzido para um desses 64 caracteres. Por exemplo, a palavra «Man» (bytes 77, 97, 110) vira «TWFu». Quando os bytes não são múltiplo de três, adiciona-se o preenchimento «=».

Base64 não comprime nem protege nada; na verdade, ocupa cerca de 33% mais espaço que o original. O seu valor está em que um dado binário (uma imagem, um arquivo) pode ser colocado dentro de um texto, um e-mail, um JSON ou uma URL sem se corromper.

Base64 NÃO é criptografia

Importante: Base64 é uma codificação, não uma criptografia. Qualquer um pode decodificar um Base64 na hora, sem chave nem senha.

É um erro muito comum achar que «codificar em Base64» oculta ou protege a informação. Não é assim: não há nenhum segredo, apenas uma forma diferente de escrever os mesmos dados. Por isso você nunca deve usar Base64 para guardar senhas, tokens privados ou dados sensíveis achando que estão seguros.

A confusão costuma aparecer com os tokens JWT, cujas partes estão em Base64 URL-safe: são lidas sem problema, não estão criptografadas. Se você precisa de segurança real, use criptografia (AES, RSA) ou funções hash, não Base64.

UTF-8, acentos e emojis

É aqui que muitas ferramentas falham. A função btoa() do navegador só entende caracteres Latin-1, então quebra ou corrompe o resultado assim que aparece um ç, um acento ou um emoji.

Esta ferramenta converte primeiro o texto em bytes UTF-8 com TextEncoder e depois em Base64, de modo que qualquer caractere (português, espanhol, chinês, emoji) é codificado e recuperado exato. Se você trabalha com dados antigos que usam Latin-1 (ISO-8859-1), pode escolher essa codificação nas opções.

Base64 URL-safe (base64url)

O Base64 padrão usa os caracteres «+» e «/», que têm um significado especial nas URLs e nos nomes de arquivo. A variante URL-safe (base64url, RFC 4648) os substitui por «-» e «_» e elimina o preenchimento «=», para que o resultado possa ser colado em um endereço web sem quebrá-lo.

É o formato que as partes de um token JWT usam. Marque a caixa «URL-safe» para gerá-lo; ao decodificar, a ferramenta aceita automaticamente tanto o padrão quanto o URL-safe, então você não precisa se preocupar com qual recebeu.

Para que serve o Base64

  • Data URI: incorporar uma imagem diretamente no CSS ou HTML (data:image/png;base64,…) para evitar uma requisição extra.
  • Autenticação básica (Basic Auth): o usuário e a senha são enviados em Base64 no cabeçalho HTTP (por isso use sempre HTTPS).
  • E-mail e MIME: os anexos de um e-mail viajam em Base64.
  • Tokens JWT: o cabeçalho e o corpo são Base64 URL-safe.
  • APIs e JSON/XML: guardar dados binários dentro de um texto sem corrompê-los.

Se você trabalha com outras codificações, também tem o nosso conversor de texto em binário o tradutor de código morse e o codificador de URL.

Perguntas frequentes

Base64 é criptografia? Ele criptografa meu texto?
Não. Base64 é uma codificação, não uma criptografia. Não oculta nem protege a informação: qualquer um pode decodificá-la na hora. Nunca use para guardar senhas ou dados sensíveis como se fossem seguros.
Funciona com ç, acentos e emojis?
Sim. Ao contrário de muitas ferramentas que usam btoa e quebram com caracteres não ingleses, esta processa o texto como UTF-8, então o ç, os acentos e os emojis são codificados e decodificados corretamente.
O que é o Base64 URL-safe (base64url)?
É uma variante que substitui os caracteres «+» e «/» por «-» e «_» e remove o preenchimento «=», para poder usar o resultado em URLs e nomes de arquivo sem problemas. É o formato das partes de um token JWT. Ao decodificar, esta ferramenta aceita ambas as variantes automaticamente.
Meu texto ou arquivo é enviado a algum servidor?
Não. Todo o processo, incluindo arquivos, acontece no seu navegador com FileReader; nada é enviado a nenhum servidor. Por isso você pode codificar informações sensíveis com tranquilidade.
Posso converter uma imagem em Base64?
Sim. Envie um arquivo no modo «Codificar» e você obtém o seu Base64 e o seu Data URI (data:image/...;base64,...), pronto para incorporar no CSS ou HTML. Ao decodificar um Data URI de imagem, é mostrada uma prévia.
Por que dá erro ao decodificar?
Base64 só aceita letras, números e os símbolos +/ (ou -_ no URL-safe) com comprimento múltiplo de 4. Se o texto tiver outros caracteres ou estiver incompleto, não é um Base64 válido e a ferramenta avisa.