BrowserTools
Publicidade
Início / Codificadores / Codificador e Descodificador Base64

Codificador e Descodificador Base64

Codifica e descodifica texto ou ficheiros em Base64 localmente no teu navegador.

A carregar Codificador e Descodificador Base64… Se nada acontecer, ativa o JavaScript.

O Base64 é um esquema de codificação de binário para texto que representa dados binários usando apenas 64 caracteres ASCII imprimíveis: as letras latinas maiúsculas e minúsculas, os dígitos de 0 a 9 e os símbolos + e /. Foi normalizado em 1987 como parte do RFC 989 para o correio com privacidade reforçada (Privacy Enhanced Mail) e mais tarde formalizado no RFC 4648. O nome vem do facto de cada caractere de saída codificar exatamente 6 bits, o que significa que cada 3 bytes de entrada binária se tornam exatamente 4 caracteres ASCII, uma sobrecarga de 33 % que compensa bem o ganho em compatibilidade.

Exemplos

Entrada Hello, World!
Saída SGVsbG8sIFdvcmxkIQ==

Base64 padrão de texto UTF-8.

Entrada Café
Saída Q2Fmw6k=

O que não é ASCII é primeiro codificado em UTF-8: é torna-se os bytes 0xC3 0xA9.

Entrada SGVsbG8sIFdvcmxkIQ==
Saída Hello, World!

A descodificação reverte a transformação exatamente.

Perguntas frequentes

Os meus dados são enviados para um servidor?
Não. Toda a codificação e descodificação acontece localmente no teu navegador, usando as API integradas btoa/atob e FileReader da plataforma web. O teu texto, os teus ficheiros e quaisquer valores sensíveis nunca saem do teu dispositivo e nunca são transmitidos pela rede.
O que são exatamente esses 64 caracteres que o Base64 usa?
O alfabeto padrão definido no RFC 4648 usa A-Z (26 caracteres), a-z (26 caracteres), 0-9 (10 caracteres), mais + e /, totalizando 64. O caractere = é usado como preenchimento para tornar o comprimento da saída múltiplo de 4. A variante segura para URL substitui + por - e / por _ para que a saída seja segura em URL e nomes de ficheiro sem mais escapes.
Quando devo usar a codificação Base64 nos meus próprios projetos?
Usa Base64 sempre que precisares de incorporar dados binários dentro de um formato só de texto: incorporar imagens como Data URI em HTML ou CSS, guardar blobs binários em JSON ou XML, enviar ficheiros no corpo de uma API JSON ou incluir chaves criptográficas em variáveis de ambiente. Evita-o quando puderes usar um transporte capaz de lidar com binário, já que o Base64 acrescenta uma sobrecarga de 33 %.
Como se compara o Base64 com a codificação hexadecimal?
Ambas convertem dados binários em texto imprimível, mas diferem na densidade. O hexadecimal usa 2 caracteres por byte (50 % de sobrecarga), enquanto o Base64 usa cerca de 1,33 caracteres por byte (33 % de sobrecarga), tornando o Base64 cerca de 25 % mais compacto. O hexadecimal é mais fácil de ler e muito usado para somas de verificação e códigos de cor; o Base64 é preferido quando a compacidade importa ou quando a saída vai ser incorporada em formatos de texto estruturados.
Qual é o tamanho máximo de ficheiro que posso codificar ou descodificar?
Não há um limite fixo, mas aplicam-se restrições práticas. Ficheiros muito grandes (dezenas de megabytes) são mantidos inteiros na memória do navegador como uma cadeia de texto, o que pode causar lentidão ou erros de falta de memória em dispositivos com pouca RAM. Para a maioria dos casos, até alguns megabytes, a ferramenta é rápida e fluida. Para fluxos de trabalho em massa ou com ficheiros grandes, uma ferramenta de linha de comandos como o base64 (Linux/macOS) ou o certutil -encode (Windows) é mais adequada.
Funciona offline e em todos os navegadores modernos?
Sim. A ferramenta usa apenas API web padrão (btoa, atob, FileReader, TextEncoder) que estão disponíveis em todos os principais navegadores desde 2012. Não há pedidos externos, por isso funciona totalmente offline depois de a página carregar. O desempenho depende da CPU e da RAM disponível do teu dispositivo.
Posso codificar ficheiros binários como imagens ou PDF?
Sim. Usa a entrada de ficheiro para selecionar qualquer ficheiro binário. A API FileReader lê-o como um ArrayBuffer, que é depois convertido numa cadeia Base64 sem qualquer problema de codificação de caracteres. A cadeia resultante pode ser colada diretamente num Data URI (precede-a com data:image/png;base64, para um PNG, por exemplo) ou usada em qualquer outro lugar onde se espere binário codificado em Base64.
O Base64 é uma forma de cifra?
Não, o Base64 é puramente um esquema de codificação, não uma cifra. Não oferece qualquer confidencialidade: quem vir a cadeia codificada pode descodificá-la instantaneamente sem qualquer chave ou palavra-passe. Não uses Base64 para proteger dados sensíveis. Usa cifra adequada (AES, RSA, etc.) para a confidencialidade, e usa Base64 apenas como formato de transporte ou armazenamento depois de os dados estarem cifrados.
Qual é a diferença entre Base64 padrão e Base64url?
O Base64 padrão (RFC 4648, secção 4) usa + e / como os caracteres 62 e 63, que têm significado especial nas URL e têm de ser codificados em percentagem. O Base64url (RFC 4648, secção 5) substitui + por - e / por _, tornando a saída segura para incluir em URL, nomes de ficheiro e cabeçalhos HTTP sem escapes. Os JSON Web Token usam sempre Base64url. O comutador de modo seguro para URL desta ferramenta aplica essa substituição automaticamente.
Porque é que às vezes recebo um erro de 'caractere inválido' ao descodificar?
Isto significa normalmente que a entrada contém caracteres fora do alfabeto Base64, muitas vezes espaços, mudanças de linha ou um prefixo de Data URI como 'data:image/png;base64,'. Remove qualquer prefixo desse tipo antes de descodificar. Outra causa comum é uma cadeia codificada em URL onde o + foi substituído por um espaço; nesse caso, muda para o modo seguro para URL ou substitui manualmente os espaços por + antes de descodificar.

Sobre Codificador e Descodificador Base64

Os programadores recorrem ao Base64 todos os dias sem darem sempre por isso. Os Data URI que incorporam imagens ou tipos de letra diretamente em HTML e CSS usam Base64. Os JSON Web Token usam Base64url (uma variante segura para URL) para empacotar o cabeçalho e a carga útil. A autenticação básica HTTP codifica as credenciais como Base64 antes de as colocar no cabeçalho Authorization. Os certificados TLS, as chaves SSH e as mensagens PGP em armadura são todos distribuídos como ficheiros PEM envolvidos em Base64. Sempre que dados binários têm de sobreviver a uma camada de transporte ou armazenamento só de texto (correio, JSON, XML, variáveis de ambiente), o Base64 é a resposta padrão.

Esta ferramenta codifica e descodifica Base64 inteiramente dentro do teu navegador. Usa as funções btoa/atob integradas na plataforma para o texto e a API FileReader para o carregamento de ficheiros binários. Como todo o processamento acontece no teu próprio dispositivo, os teus dados nunca são transmitidos para nenhum servidor, o que torna seguro usá-la com credenciais sensíveis, chaves privadas ou documentos confidenciais. A ferramenta também suporta Base64 segura para URL, que substitui + por - e / por _ para que a saída possa ser incorporada em URL sem codificação percentual.

Alguns pontos a ter em atenção: o btoa lança um TypeError se a entrada contiver caracteres fora do intervalo Latin-1, por isso a ferramenta codifica automaticamente em UTF-8 o texto Unicode antes de o codificar. Ao descodificar, os caracteres de preenchimento finais (=) são opcionais em muitas implementações, mas alguns analisadores estritos exigem-nos; se receberes um erro de descodificação, tenta acrescentar um ou dois sinais =. O Base64 é uma codificação, não uma cifra: não oferece qualquer confidencialidade e qualquer pessoa o pode descodificar instantaneamente. Nunca guardes palavras-passe ou tokens em Base64 à espera de algum benefício de segurança.

As origens do Base64

O Base64 foi normalizado em 1987 como parte do RFC 989, que definiu o correio com privacidade reforçada (PEM) para a troca segura de correio eletrónico. O nome vem do facto de a codificação usar exatamente 64 caracteres ASCII imprimíveis, o maior subconjunto potência de dois que cabe confortavelmente na maioria das codificações de caracteres da época. O esquema foi mais tarde aperfeiçoado no RFC 1421 e documentado definitivamente no RFC 4648 (2006), que continua a ser a referência autoritária hoje.

Antes do Base64, enviar dados binários por sistemas de correio era notoriamente pouco fiável. Os primeiros relés de correio operavam em ASCII de 7 bits e corrompiam em silêncio os bytes acima de 127, tratando-os como códigos de controlo ou removendo o bit alto por completo. O Base64 resolveu isto mapeando cada 3 bytes de entrada binária em 4 caracteres imprimíveis retirados de um subconjunto de ASCII seguro e universalmente suportado, garantindo um trânsito fiel por qualquer canal só de texto.

Hoje, o Base64 está entretecido na trama da web. Um navegador moderno processa milhares de operações Base64 por carregamento de página sem que o utilizador dê por isso: a descodificar ficheiros de tipos de letra incorporados em CSS, a verificar tokens JWT em respostas de API, a apresentar imagens em linha em clientes de correio e a validar certificados TLS durante o aperto de mão HTTPS. O que começou como uma solução provisória para uma infraestrutura de correio falha dos anos 80 tornou-se uma das codificações mais silenciosamente essenciais da computação.

Publicidade
Publicidade
Publicidade