Visualizando em Português Ver em inglês

Codificador e decodificador Base64

Codifique texto para Base64 ou decodifique Base64 de volta para texto. Compatível com UTF-8, aceita caracteres além do ASCII.

  1. Cole o texto ou a string Base64 no campo.
  2. Clique em Codificar para converter texto em Base64, ou em Decodificar para converter Base64 em texto.
  3. Marque "Seguro para URL" se o valor for usado em uma URL ou JWT — usa - e _ e omite o preenchimento.
  4. Clique em Copiar para colocar o resultado na área de transferência.
O que ele faz?

Base64 codifica bytes arbitrários em 64 caracteres ASCII imprimíveis, para que canais inseguros para binário (strings JSON, URLs, corpos de e-mail, variáveis de ambiente, autenticação HTTP Basic) possam transportá-los sem corrompê-los. Esta ferramenta lida corretamente com entrada UTF-8 — primeiro codifica sua string em bytes UTF-8 e depois codifica esses bytes em Base64, para que caracteres não-ASCII façam a ida e volta sem perdas. A saída é cerca de 33% maior que a entrada (a cada 3 bytes, 4 caracteres).

Exemplo

Codificando o texto "Hello, world!":

SGVsbG8sIHdvcmxkIQ==

Codificando o mesmo texto com "Seguro para URL" ativado (sem preenchimento):

SGVsbG8sIHdvcmxkIQ

Codificando o texto com emoji "café ☕":

Y2Fmw6kg4piV

Por que minha string Base64 não decodifica?

  • Divergência entre padrão e seguro para URL. Strings com - ou _ são base64url, não Base64 padrão. Alterne a caixa "Seguro para URL" para combinar.
  • Preenchimento faltando. O comprimento de uma string Base64 padrão deve ser múltiplo de 4. SGVsbG8 falha; SGVsbG8= funciona. Adicione = até o comprimento ser divisível por 4.
  • Espaços ou quebras de linha dentro do valor. Alguns sistemas quebram o Base64 a cada 76 caracteres com \n. A maioria dos decodificadores tolera isso, os mais estritos não. Remova os espaços antes de decodificar.
  • Decodificado duas vezes sem querer. Decodificar U0dWc2JHOA== dá SGVsbG8, que também é uma string Base64. Se a saída ainda parecer Base64, decodifique novamente.
  • Dados binários não-UTF-8. Se os bytes decodificados não forem UTF-8 válido (por exemplo, um cabeçalho PNG), decodificar como texto falhará ou mostrará lixo. Use uma ferramenta Base64 que lide com arquivos para binários.
  • Aspas "espertas" ou reticências visíveis. Copiar de um processador de texto pode substituir " por aspas curvas ou cortar strings longas com reticências. Passe por um editor de texto simples primeiro.
Perguntas frequentes

Qual é a diferença entre Base64 padrão e Base64 seguro para URL?

O Base64 padrão (RFC 4648) usa + e /, e preenche com =. O Base64 seguro para URL (base64url) troca + por - e / por _, e normalmente omite o preenchimento para que a string sobreviva como caminho ou parâmetro de URL sem alterações. JWTs usam base64url. Marque "Seguro para URL" quando a saída for para uma URL.

Esta ferramenta lida com emojis e texto não-ASCII corretamente?

Sim. A entrada é primeiro codificada como bytes UTF-8, e então esses bytes são codificados em Base64. A decodificação inverte as duas etapas. Por isso colar "café" e decodificar o resultado devolve "café", não mojibake. Muitas ferramentas Base64 antigas assumem Latin-1 e corrompem tudo fora do ASCII.

Posso codificar um arquivo binário como imagem ou PDF?

Esta página codifica apenas texto. Para codificar um arquivo em Base64, use uma ferramenta que leia o arquivo como binário (ou o console do navegador com FileReader.readAsDataURL). Esta ferramenta é para strings — o caso típico é incorporar credenciais, configuração ou campos JSON.

Por que minha saída decodificada parece lixo?

Geralmente a entrada nem era Base64, ou era Base64 seguro para URL decodificado como padrão (ou vice-versa). Tente alternar a caixa "Seguro para URL". Outra causa comum é decodificar uma string que na verdade é binário codificado em Base64, não texto — nesse caso os bytes não são UTF-8 válido.

O preenchimento = importa?

O Base64 padrão preenche a saída para que seu comprimento seja múltiplo de 4. A maioria dos decodificadores aceita entrada sem preenchimento, mas alguns estritos rejeitam. O Base64 seguro para URL geralmente omite o preenchimento. Se um decodificador reclamar, adicione = até o comprimento ser divisível por 4, ou remova todos e tente de novo.

Vocês salvam o texto que eu codifico ou decodifico?

Não. Não guardamos nenhum texto colado aqui. Sua entrada é descartada no instante em que você fecha ou atualiza a página — nada é mantido, e não há registro do que você codificou ou decodificou. Para uma camada extra de confiança, confira nas ferramentas de desenvolvedor do seu navegador.