MiniMe

Base64 encoder e decoder

Converta texto para Base64 e de volta, com suporte a Base64URL.

Base64

O que Base64 faz

Base64 representa dados binários usando apenas 64 caracteres de texto seguro: letras, números, mais e barra. Serve para transportar bytes por canais que só aceitam texto — corpo de e-mail, campo de JSON, atributo de HTML, URL. Cada três bytes viram quatro caracteres, o que faz o resultado ficar cerca de um terço maior que o original.

Base64 não é criptografia

Qualquer pessoa decodifica Base64 em um segundo, sem chave nenhuma. É codificação, e codificar é o oposto de esconder. Senha, token e dado pessoal em Base64 estão tão expostos quanto em texto puro — o que explica por que o payload de um JWT é legível por quem tiver o token.

A diferença do Base64URL

Os caracteres mais e barra do alfabeto padrão têm significado próprio dentro de uma URL, e o sinal de igual do preenchimento também atrapalha. O Base64URL troca mais por hífen, barra por sublinhado, e dispensa o preenchimento. É o que o JWT usa em todas as três partes, e é o que você precisa ao colocar dado codificado em query string ou em nome de arquivo.

O problema do acento

A função btoa do navegador trabalha um byte por caractere, e isso quebra de dois jeitos diferentes. Com caracteres fora da faixa Latin-1, como ideogramas, ela lança exceção. Com acentos comuns do português ela é pior: não reclama, grava o byte errado e devolve um resultado que só revela o estrago quando alguém tenta ler o dado do outro lado. Esta ferramenta converte o texto para UTF-8 antes de codificar, que é o que qualquer sistema espera receber.

Quando a decodificação não vira texto

Nem todo Base64 contém texto: pode ser imagem, certificado, arquivo compactado. Quando os bytes decodificados não formam UTF-8 válido, a ferramenta avisa em vez de devolver caracteres quebrados, e oferece mostrar os bytes em hexadecimal.

Nada sai do seu navegador

A conversão roda na sua máquina. O texto colado não é enviado a servidor nenhum — o que importa, considerando que Base64 costuma carregar justamente aquilo que alguém achou que estava escondendo.

Base64 encode e decode

A documentação e a maioria das bibliotecas chamam as duas operações deencode e decode. Codificar é transformar bytes em texto seguro para trafegar; decodificar é o caminho de volta. Vale lembrar que Base64 não é criptografia: qualquer pessoa desfaz, e é por isso que token e senha em Base64 não estão protegidos, só disfarçados.