Codificar / decodificar Base64
De texto para Base64 e de volta, com UTF-8 correto e alfabeto seguro para URL opcional.
Os exemplos substituem temporariamente os dados e as configurações. Você pode restaurar seu trabalho anterior.
Cole ou digite acima para ver o resultado aqui.
Seus arquivos ficam no seu dispositivo
Esta ferramenta roda inteiramente no seu navegador. O que você cola é processado no seu dispositivo e nunca é enviado a um servidor, então é seguro usar com tokens, chaves e textos não publicados.
Exemplo
Exemplo: cabeçalho Basic, acentos em UTF-8 e o XML que uma API devolve em Base64
Um desenvolvedor de uma loja virtual testa à mão a API de um fornecedor. Ela pede um cabeçalho Authorization para a conta de teste loja-teste com a senha Senha-2026 e devolve o XML da nota fiscal em Base64. Modo: Codificar para Base64, alfabeto seguro para URL desligado, salvo quando indicado.
- Digite loja-teste:Senha-2026 (usuário, dois-pontos, senha) e o Base64 aparece enquanto você digita: bG9qYS10ZXN0ZTpTZW5oYS0yMDI2. O cabeçalho fica Authorization: Basic bG9qYS10ZXN0ZTpTZW5oYS0yMDI2.
- São 21 bytes, múltiplo de 3, então saem exatamente 28 caracteres, sem = no fim. “Conceição” tem 9 letras mas 11 bytes, porque ç e ã ocupam dois cada em UTF-8.
- Mude para Decodificar e cole PD94bWwgdmVyc2lvbj0iMS4wIj8+, o começo do campo que a API devolveu: sai <?xml version="1.0"?>.
- Um sistema antigo que grava em ISO-8859-1 manda Q29uY2Vp5+Nv para “Conceição”. Decodificado, a página avisa que o resultado não é texto UTF-8 em vez de mostrar caracteres quebrados.
| Texto | Bytes UTF-8 | Base64 | Seguro para URL |
|---|---|---|---|
| Ação | 6 | QcOnw6Nv | QcOnw6Nv |
| Conceição | 11 | Q29uY2Vpw6fDo28= | Q29uY2Vpw6fDo28 |
| São Paulo – SP | 17 | U8OjbyBQYXVsbyDigJMgU1A= | U8OjbyBQYXVsbyDigJMgU1A |
| R$ 1.234,56 | 11 | UiQgMS4yMzQsNTY= | UiQgMS4yMzQsNTY |
| {"uf":"SP"} | 11 | eyJ1ZiI6IlNQIn0= | eyJ1ZiI6IlNQIn0 |
| loja-teste:Senha-2026 | 21 | bG9qYS10ZXN0ZTpTZW5oYS0yMDI2 | bG9qYS10ZXN0ZTpTZW5oYS0yMDI2 |
| 👍 | 4 | 8J+RjQ== | 8J-RjQ |
Decodificar qualquer um deles devolve o texto exato, com cedilha, til, travessão e emoji. E o cabeçalho Basic não esconde nada: decodifique bG9qYS10ZXN0ZTpTZW5oYS0yMDI2 e a senha aparece em texto puro, então mande só por HTTPS.
Como funciona
- Escolha Codificar para transformar texto em Base64, ou Decodificar para o caminho inverso.
- Cole a entrada. Ao decodificar, tanto o alfabeto padrão com + e / quanto o seguro para URL com - e _ são aceitos; preenchimento faltando é tolerado.
- Ligue o alfabeto seguro para URL se o resultado for para uma URL, um JWT ou um nome de arquivo.
- O resultado aparece enquanto você digita; copie-o. Acentos, texto CJK e emoji são codificados como bytes UTF-8.
Perguntas frequentes
- Base64 é criptografia?
- Não. Base64 é uma codificação reversível que representa bytes com 64 caracteres imprimíveis. Qualquer um decodifica na hora. Serve para transportar e embutir, nunca para esconder segredos.
- Como ele lida com acentos, japonês ou emoji?
- O texto é convertido em bytes UTF-8 antes de codificar, e a saída da decodificação é lida como UTF-8. É o que a maioria das linguagens e bibliotecas HTTP faz. O btoa() do JavaScript só aceita Latin-1, e é por isso que codificadores ingênuos quebram com esses caracteres.
- Por que a saída fica cerca de um terço maior?
- O Base64 empacota 3 bytes em 4 caracteres, então a saída fica em torno de 4/3 da entrada mais até dois caracteres de preenchimento. Esse custo é o preço de usar só caracteres imprimíveis.
- Por que aparece o aviso de que não é UTF-8 ao decodificar?
- Porque os bytes decodificados não formam texto UTF-8: são um arquivo binário (uma imagem, um PDF) ou um texto gravado numa codificação antiga, como a ISO-8859-1 de muitos sistemas legados. Em vez de mostrar � no lugar de ç e ã, a página avisa. Q29uY2Vp5+Nv, “Conceição” em ISO-8859-1, dá esse aviso; Q29uY2Vpw6fDo28= dá Conceição.
- Preciso do = no final para decodificar?
- Não. Ao decodificar, o preenchimento que falta é tolerado, e tanto + e / quanto - e _ são aceitos: Q29uY2Vpw6fDo28 dá Conceição do mesmo jeito. Ao codificar com o alfabeto seguro para URL, o = do final é retirado, como em Q29uY2Vpw6fDo28= → Q29uY2Vpw6fDo28.
- Meus dados vão para um servidor?
- Não. Codificar e decodificar acontecem inteiramente no navegador. Você pode converter chaves de API, strings de conexão ou textos pessoais sem que nada saia do seu aparelho.