tools.poderoso.io
← poderoso.io

Codificador e decodificador Base64

·codifica ou decodifica Base64 em tempo real
// base64 codificado

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