Para que serve o Base64
O Base64 representa bytes quaisquer com 64 caracteres ASCII imprimíveis (A–Z, a–z, 0–9, + e /), para que dados binários passem por sistemas que só lidam com texto: anexos de e-mail (MIME), URLs data:, campos JSON, cabeçalhos de autenticação HTTP Basic e as partes de um JSON Web Token. Cada 3 bytes de entrada viram 4 caracteres, então o resultado fica cerca de 33% maior. Base64 é uma codificação, não criptografia: qualquer pessoa consegue decodificar.
A variante segura para URL (base64url, RFC 4648 §5) troca + e / por - e _ e normalmente dispensa o = final, para que o resultado caiba em URLs e nomes de arquivo sem escape. Os JWTs usam essa variante.
Exemplo resolvido
foobar são os bytes 66 6F 6F 62 61 72. Agrupados em blocos de 6 bits, viram Zm9vYmFy. ção tem 5 bytes em UTF-8 (C3 A7 C3 A3 6F) e vira w6fDo28=; o = completa o último grupo até 4 caracteres.
Como funciona
O texto é primeiro convertido em bytes UTF-8 com o TextEncoder do navegador; depois cada grupo de 3 bytes é dividido em quatro valores de 6 bits que indexam o alfabeto (RFC 4648 §4). A decodificação faz o caminho inverso: espaços são ignorados, os caracteres do alfabeto para URL são mapeados de volta, o padding que falta é restaurado e os bytes são lidos como UTF-8 estrito, para que sequências inválidas sejam informadas em vez de trocadas em silêncio.
Perguntas frequentes
Base64 é criptografia?
Não. É uma codificação reversível, sem chave. Nunca use para esconder senhas ou segredos.
Por que o texto decodificado sai estranho?
Provavelmente os bytes não eram texto UTF-8 (uma imagem, por exemplo, ou um arquivo em outra codificação). Esta ferramenta avisa quando o UTF-8 é inválido em vez de mostrar caracteres de substituição.
Qual a diferença entre Base64 e base64url?
O base64url troca + por - e / por _, e geralmente omite o padding =, para ser seguro em URLs. Os dois estão definidos na RFC 4648.
Algo é enviado para um servidor?
Não. Codificar e decodificar acontece nesta aba; o texto nunca é enviado, armazenado ou registrado.
Fontes
Revisado em 17 de out. de 2026 · vetores de teste fixtures/dev/base64-encode/