Codificador e decodificador Base64
Codifique texto em Base64 ou decodifique Base64 de volta para texto — compatível com Unicode e com erros claros quando algo falha. Tudo no seu navegador.
Esta página foi traduzida do inglês com a ajuda de IA e conferida com o original. Ler a versão em inglês
- Grátis — Sem necessidade de cadastro
- Instantâneo — Os resultados são atualizados enquanto você digita
- Privado — Processado no seu navegador
O Base64 transforma qualquer sequência de bytes em texto formado por 64 caracteres seguros, para que dados binários ou não ASCII possam trafegar por sistemas que só entendem ASCII puro: corpos de e-mail, strings JSON, cabeçalhos HTTP, arquivos de configuração. Esta ferramenta codifica e decodifica texto nos dois sentidos, e faz isso corretamente para qualquer caractere Unicode, algo que as funções nativas btoa e atob do navegador não conseguem.
Como funciona
No modo Codificar, o seu texto é primeiro convertido em bytes UTF-8 com TextEncoder, e depois esses bytes são codificados em Base64 em blocos de 32 KB, para que entradas muito longas não estourem a pilha de chamadas. A saída usa o alfabeto padrão (A–Z, a–z, 0–9, +, /) com padding =, conforme definido na seção 4 da RFC 4648.
No modo Decodificar, o Base64 é convertido de volta em bytes com atob e depois decodificado como UTF-8 em modo estrito. Dois erros diferentes podem aparecer:
- Isso não parece ser Base64 válido significa que a entrada contém caracteres fora do alfabeto ou que o comprimento dela é impossível. Espaços e quebras de linha são tolerados, e a falta de padding é perdoada, mas a variante URL-safe com
-e_não: substitua esses caracteres por+e/antes. - Os dados decodificados não são texto UTF-8 válido significa que o Base64 estava correto, mas os bytes não são texto. É o que você vê ao decodificar uma imagem, um certificado no formato DER ou um blob compactado. A ferramenta trabalha só com texto de propósito: ela não vai mostrar uma versão corrompida de dados binários.
Tudo roda localmente, e o resultado é atualizado a cada tecla digitada.
O que o Base64 é e o que ele não é
Base64 é uma codificação, não uma criptografia. Qualquer pessoa consegue revertê-lo em uma fração de segundo, e ele também não oferece nenhuma proteção de integridade. Se você encontrar credenciais "protegidas" por Base64, trate-as como texto puro. O cabeçalho de autenticação HTTP Basic é o exemplo clássico: Basic dXNlcjpwYXNz é simplesmente user:pass.
Ele também não é compacto. Cada 3 bytes viram 4 caracteres, então a saída fica cerca de 33% maior que a entrada, sem contar o padding. Embutir arquivos grandes em JSON ou HTML dessa forma consome banda; para qualquer coisa acima de alguns kilobytes, prefira uma requisição binária separada.
O padding = não carrega dados. Algumas implementações o omitem, e a RFC 7515 (JSON Web Signatures) exige que ele seja omitido na forma URL-safe usada pelos JWTs. É por isso que um segmento de JWT colado aqui precisa de um pequeno ajuste antes de ser decodificado; o decodificador de JWT cuida dessa variante para você.
Equivalente na linha de comando
As mesmas operações no Linux e no macOS, com -n para impedir que o echo acrescente uma quebra de linha que acabaria dentro da codificação:
echo -n 'héllo wörld' | base64 # aMOpbGxvIHfDtnJsZA==
echo 'aMOpbGxvIHfDtnJsZA==' | base64 -d # héllo wörld
Nas versões mais antigas, o utilitário base64 do macOS usa -D para decodificar; --decode funciona nos dois sistemas.
Saiba mais
O Base64 aparece sempre que um protocolo precisa transportar bytes dentro de texto. O guia de design de APIs REST discute quando embutir dados binários em um corpo JSON e quando usar um link para eles, e o guia de OAuth 2.0 explica o cabeçalho do fluxo client credentials e a codificação URL-safe usada pelos tokens. Para a codificação percentual, o outro esquema que torna um texto seguro para URLs, veja o codificador de URL.
Perguntas frequentes
- Isso lida corretamente com emojis e texto em outros idiomas?
- Sim. O texto é convertido em bytes UTF-8 antes da codificação em Base64 (e decodificado da mesma forma), então caracteres acentuados, emojis e escritas não latinas são preservados corretamente — ao contrário de um simples btoa/atob, que falha com qualquer caractere fora do intervalo Latin-1.
- Por que a decodificação diz que minha entrada é inválida?
- O Base64 usa um alfabeto específico de 64 caracteres mais o preenchimento =. Se a entrada contém outros caracteres, tem um comprimento incorreto, ou é decodificada em uma sequência de bytes que não é texto UTF-8 válido, você verá um erro específico explicando qual desses problemas ocorreu.
- Meus dados são enviados a um servidor?
- Não. A codificação e a decodificação acontecem inteiramente no seu navegador.