Glossário

Base64

codificação Base64

Base64 é uma codificação de binário para texto que representa bytes através de um alfabeto de 64 caracteres.

Definição

Base64 representa bytes arbitrários como texto para os transportar por sistemas orientados a caracteres. O alfabeto padrão contém letras latinas maiúsculas e minúsculas, algarismos, + e /; no fim pode surgir = como preenchimento.

Base64 só altera a representação. Por si só, não oferece confidencialidade, autenticidade ou integridade e pode ser descodificado sem chave.

Como funciona

O codificador pega em 3 bytes, divide os 24 bits em quatro valores de 6 bits e associa cada valor a um dos 64 caracteres. Se o último grupo tiver apenas 1 ou 2 bytes, = costuma marcar a parte em falta e torna o comprimento múltiplo de quatro.

Em entradas grandes, o resultado ocupa cerca de um terço a mais. Base64url troca + e / por - e _ e muitas vezes omite o preenchimento, pelo que as variantes nem sempre são intercambiáveis.

Exemplo prático

Os bytes ASCII e UTF-8 de Hi são 48 69 em hexadecimal. Base64 padrão representa-os como SGk=. A descodificação recupera os mesmos bytes, que interpretados como UTF-8 produzem Hi.

Base64 também pode conter uma imagem, dados comprimidos ou texto cifrado; descodificar com êxito não garante texto legível.

Formatos e erros frequentes

As aplicações têm de concordar quanto à variante, ao preenchimento e aos espaços permitidos. Um descodificador rigoroso pode rejeitar o que outro aceita. Antes da codificação, o texto é convertido em bytes através de uma codificação de caracteres como UTF-8; outra codificação produz um Base64 diferente.

Perguntas frequentes

Não. É uma codificação pública e reversível sem chave secreta. Os dados confidenciais devem ser primeiro protegidos por um esquema criptográfico adequado.

O preenchimento completa o último grupo de quatro caracteres quando o número de bytes não é divisível por três. Pode haver um ou dois sinais; alguns formatos omitem-nos.

Agrupam os bits da mesma forma, mas Base64url usa caracteres seguros para URL e costuma omitir o preenchimento. Deve usar-se a variante exigida pelo protocolo.

Veja também
Ferramentas relacionadas
Termos relacionados