🔐
← Voltar aos guias

O que é Base64? Um Guia Completo para Iniciantes

· Tags: base64, encoding, binary-to-text, web-development, data-transfer

O Que É a Codificação Base64?

Base64 é um esquema de codificação binário-para-texto que representa dados binários em um formato de string ASCII usando um alfabeto de 64 caracteres. Ele foi originalmente projetado para anexos de e-mail via MIME (Multipurpose Internet Mail Extensions) e continua sendo um dos métodos de codificação mais amplamente usados na web.

Quando você precisa enviar dados binários — como uma imagem, um arquivo ou bytes compactados — por um canal que foi construído para texto, o Base64 é a solução ideal. Ele pega bytes arbitrários e os transforma em uma string segura e portátil de letras, dígitos e alguns caracteres especiais.

Como o Base64 Funciona?

O Base64 funciona processando dados binários em grupos de três bytes (24 bits) e convertendo cada grupo em quatro caracteres Base64. O nome "Base64" vem do fato de que o alfabeto de codificação usa 64 caracteres diferentes: A-Z, a-z, 0-9, + e /.

O Algoritmo de Codificação Passo a Passo

  1. Pegue 3 bytes (24 bits) de dados de entrada
  2. Divida-os em quatro grupos de 6 bits
  3. Mapeie cada valor de 6 bits (0-63) para a tabela do alfabeto Base64
  4. Adicione padding (=) se o comprimento da entrada não for divisível por 3

Aqui está um exemplo concreto. A string "Man" é codificada da seguinte forma:

  • M (ASCII 77) = 01001101
  • a (ASCII 97) = 01100001
  • n (ASCII 110) = 01101110

Combinados: 01001101 01100001 01101110 → divididos em grupos de 6 bits:

  • 010011 = 19 → T
  • 010110 = 22 → W
  • 000101 = 5 → F
  • 101110 = 46 → u

Então "Man" se torna "TWFu".

E Sobre o Padding?

Se o comprimento da entrada não for um múltiplo de 3 bytes, o Base64 adiciona caracteres de padding (=) para tornar a saída um múltiplo de 4 caracteres:

  • 1 byte de entrada → 2 caracteres Base64 + 2 caracteres de padding (==)
  • 2 bytes de entrada → 3 caracteres Base64 + 1 caractere de padding (=)

Por exemplo, o único byte correspondente a "M" é codificado como TQ==.

A Tabela do Alfabeto Base64

| Valor | Char | Valor | Char | Valor | Char | Valor | Char | |-------|------|-------|------|-------|------|-------|------| | 0 | A | 16 | Q | 32 | g | 48 | w | | 1 | B | 17 | R | 33 | h | 49 | x | | 2 | C | 18 | S | 34 | i | 50 | y | | 3 | D | 19 | T | 35 | j | 51 | z | | 4 | E | 20 | U | 36 | k | 52 | 0 | | 5 | F | 21 | V | 37 | l | 53 | 1 | | 6 | G | 22 | W | 38 | m | 54 | 2 | | 7 | H | 23 | X | 39 | n | 55 | 3 | | 8 | I | 24 | Y | 40 | o | 56 | 4 | | 9 | J | 25 | Z | 41 | p | 57 | 5 | | 10 | K | 26 | a | 42 | q | 58 | 6 | | 11 | L | 27 | b | 43 | r | 59 | 7 | | 12 | M | 28 | c | 44 | s | 60 | 8 | | 13 | N | 29 | d | 45 | t | 61 | 9 | | 14 | O | 30 | e | 46 | u | 62 | + | | 15 | P | 31 | f | 47 | v | 63 | / |

Casos de Uso Comuns da Codificação Base64

Anexos de E-mail (MIME)

O Base64 foi criado para MIME (Multipurpose Internet Mail Extensions). Protocolos de e-mail como SMTP foram projetados para texto ASCII de 7 bits, portanto anexos binários como PDFs, imagens e arquivos ZIP devem ser codificados como Base64 antes de serem enviados por e-mail.

Data URLs em HTML e CSS

O Base64 permite incorporar imagens, fontes e outras mídias diretamente em arquivos HTML ou CSS usando data URLs:

<img src="data:image/png;base64,iVBORw0KGgo..." alt="Embedded Image" />

Isso elimina uma requisição HTTP extra, o que pode ser benéfico para ativos pequenos.

JSON Web Tokens (JWT)

Os JWTs usam a variante segura para URL do Base64 (Base64url) para codificar o cabeçalho, o payload e a assinatura de cada token. É por isso que você vê strings como eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 em sistemas de autenticação.

Armazenando Binário em Bancos de Dados

Muitos bancos de dados são otimizados para armazenamento de texto e podem não lidar bem com bytes brutos. Codificar dados binários como Base64 permite armazenar imagens, objetos serializados ou dados criptografados em colunas de texto.

Payloads de API

Ao enviar dados binários por uma API REST ou GraphQL — especialmente em formato JSON — o Base64 é a escolha padrão porque o JSON não pode representar bytes brutos nativamente.

O Base64 Aumenta o Tamanho do Arquivo?

Sim. A codificação Base64 aumenta o tamanho dos dados em aproximadamente 33%. Para cada 3 bytes de entrada, você obtém 4 bytes de saída. Essa sobrecarga é o trade-off para tornar os dados binários transportáveis por canais somente de texto.

Base64 É Criptografia?

Não. Este é um equívoco comum. O Base64 é um esquema de codificação, não criptografia. Qualquer pessoa que receba uma string Base64 pode decodificá-la de volta aos dados originais sem precisar de nenhuma chave. Ele não oferece segurança ou confidencialidade alguma. Se você precisar proteger dados, use criptografia (como AES) e, em seguida, opcionalmente codifique os bytes criptografados com Base64 para o transporte.

Base64 vs Outras Codificações Binário-para-Texto

| Codificação | Tamanho do Alfabeto | Sobrecarga | Melhor Para | |----------|--------------|----------|----------| | Base64 | 64 chars | ~33% | Transferência e incorporação de dados | | Base32 | 32 chars | ~60% | Contextos legíveis por humanos e insensíveis a maiúsculas | | Base16 (Hex) | 16 chars | 100% | Depuração, dumps de memória, códigos de cor | | Ascii85 | 85 chars | ~25% | Adobe PostScript, streams de PDF |

O Base64 oferece um trade-off equilibrado entre eficiência de espaço e ampla compatibilidade, tornando-o a codificação binário-para-texto mais popular na web.

Experimente a Codificação Base64 Online

Pronto para codificar seus próprios dados? Use nosso codificador e decodificador Base64 online gratuito para converter texto ou arquivos instantaneamente no seu navegador. Não é necessária instalação nem cadastro.