Codificador e decodificador Base64
O codificador de Base64 converte texto em Base64 e de volta, em tempo real. Base64 representa dados binários usando apenas 64 caracteres seguros para texto, o que permite carregar conteúdo por canais que só aceitam texto.
Base64 não é criptografia
Essa é a confusão mais cara que existe em torno do formato. Base64 é codificação, não cifra: qualquer pessoa decodifica em um segundo, sem chave e sem esforço. Guardar senha, token ou dado pessoal em Base64 achando que está protegido é o mesmo que guardar em texto puro com um passo a mais.
Ele existe para transporte: anexo de e-mail, Basic Auth em cabeçalho HTTP, payload de JWT, data URI de imagem em CSS. Em todos esses casos o problema resolvido é o canal aceitar só texto, nunca sigilo.
Base64 e Base64URL
A RFC 4648 define duas tabelas. A padrão usa mais e barra nos dois últimos símbolos, o que quebra quando o valor vai dentro de uma URL ou de um nome de arquivo. A variante Base64URL troca esses dois por menos e sublinhado, e costuma dispensar o preenchimento com igual.
É por isso que um JWT não decodifica com um decodificador Base64 comum: as três partes dele são Base64URL. Se você viu caractere estranho ou erro de preenchimento, provavelmente é isso.
Acentuação e UTF-8
Base64 opera sobre bytes, não sobre caracteres. Texto em português precisa ser convertido para UTF-8 antes, senão acento e cedilha se perdem ou geram erro. Em JavaScript esse é o motivo clássico do erro de btoa com caractere fora do intervalo Latin-1.
A ferramenta faz essa conversão nos dois sentidos com TextEncoder e TextDecoder, então acentuação atravessa a ida e a volta intacta.
Nada do que você cola aqui sai do seu navegador. O processamento é todo local, em JavaScript, sem envio para servidor, sem log e sem armazenamento.
Perguntas frequentes
Base64 protege meus dados?
Não. É codificação reversível sem chave, projetada para transporte, não para sigilo. Qualquer pessoa com o texto codificado recupera o original imediatamente.
Por que o texto codificado fica maior?
Base64 usa quatro caracteres para cada três bytes, então o resultado cresce cerca de 33 por cento. É o custo de representar binário usando só caracteres seguros para texto.
Funciona com acento e emoji?
Sim. O texto é convertido para UTF-8 antes de codificar e reconvertido ao decodificar, então caractere acentuado e emoji sobrevivem ao processo.
Qual a diferença entre Base64 e Base64URL?
Base64URL troca os caracteres mais e barra por menos e sublinhado, para o valor poder viajar dentro de URL e nome de arquivo. JWT usa Base64URL, e é por isso que ele não abre em um decodificador comum.
Referências
- RFC 4648 (Base16, Base32 e Base64)Define as duas tabelas, o preenchimento e a variante segura para URL.
- MDN: Base64Como codificar e decodificar em JavaScript sem quebrar acentuação.