Skip to main content

Base64 e Base62 | Conceito

  • Base64 e Base62 | Conceito

🧠 1. O que são codificações Base

Base64 e Base62 são sistemas de codificação textual que convertem dados binários (bytes, arquivos, imagens, senhas, etc.) em caracteres legíveis (letras, números e alguns símbolos).

warning

Aqui os caracteres representa os bytes e não os valores dos bytes

Essa conversão é útil porque muitos sistemas — como e-mails, URLs, bancos de dados e APIs — não aceitam dados binários diretamente, apenas texto.


🔢 2. Base64

🧩 Definição

A Base64 é uma codificação que usa 64 caracteres diferentes para representar dados binários. Ela converte blocos de 3 bytes (24 bits) em 4 caracteres ASCII (6 bits cada).

Conjunto de caracteres usado:

A–Z a–z 0–9 + /

O caractere = é usado para preenchimento (padding) quando o total de bytes não é múltiplo de 3.


⚙️ Funcionamento

  1. Divide os dados em blocos de 3 bytes (24 bits);
  2. Divide esses 24 bits em 4 grupos de 6 bits;
  3. Cada grupo de 6 bits é convertido em um caractere do alfabeto Base64.

Exemplo prático:

Texto: "Oi"
Bytes: [79, 105]
Codificado: "T2k="

💡 Usos Comuns da Base64

ContextoDescriçãoExemplo
E-mails (MIME)Envio de anexos em formato textoArquivos .jpg, .pdf em e-mails
APIs REST / JSONTransmitir imagens, PDFs ou binários como texto"arquivo": "iVBOR..."
Autenticação HTTPCodificar credenciais “usuário:senhaAuthorization: Basic YWRtaW46c2VuaGE=
HTML / CSSIncorporar imagens diretamente no código<img src="data:image/png;base64,...">
Armazenamento em bancoGravar dados binários onde só texto é aceitoBase de dados SQLite, MongoDB, etc.

📉 Desvantagens da Base64

  • Aumenta o tamanho dos dados em cerca de 33%.
  • Inclui caracteres especiais (+, /, =), que podem precisar de escape em URLs.

🔠 3. Base62

🧩 Definição

A Base62 é uma codificação semelhante à Base64, mas usa somente letras e números — ou seja, 62 caracteres.

Conjunto de caracteres usado:

A–Z a–z 0–9

Essa limitação evita símbolos como +, / e =, tornando-a mais segura para URLs e identificadores.


⚙️ Funcionamento

A Base62 geralmente converte números inteiros em uma forma mais compacta e legível, usando apenas os 62 caracteres possíveis.

Exemplo:

Número: 999999
Base62: 4C91

Isso é muito usado para gerar IDs curtos a partir de números longos.


💡 Usos Comuns da Base62

ContextoDescriçãoExemplo
Encurtadores de URLConverter um ID numérico em um código curtohttps://meusite.com/u/4fA2Bz
IDs únicosCriar identificadores curtos e legíveis1LY7VK
Códigos de convite / referênciaGeração de chaves simples, sem símbolos especiaisCUPOM: A8bD2q
URLs segurasEvita caracteres que precisem ser codificadosIdeal para sistemas web

📈 Vantagens da Base62

  • Compatível com URLs e nomes de arquivo (sem símbolos especiais).
  • Representa números de forma compacta.
  • Fácil de usar em sistemas com restrição de caracteres.

📉 Desvantagens da Base62

  • Menos compacta e padronizada que Base64.
  • Pode exigir implementações específicas, já que não há uma norma oficial universal (ao contrário da Base64, padronizada no RFC 4648).

⚖️ 4. Comparativo entre Base64 e Base62

CaracterísticaBase64Base62
Alfabeto64 caracteres (A–Z, a–z, 0–9, +, /)62 caracteres (A–Z, a–z, 0–9)
Usa símbolos especiaisSim (+, /, =)Não
Compatível com URLNão (sem codificação extra)Sim
Tamanho do textoMenorUm pouco maior
Padrão oficialSim (RFC 4648)Não
Uso típicoDados binários (imagens, arquivos, APIs)URLs curtas, IDs, cupons, tokens
Segurança / legibilidadeBoaExcelente para humanos e URLs

🧰 5. Exemplos de uso em código

🐍 Exemplo em Python

import base64

# Base64
texto = "Olá Mundo"
b64 = base64.b64encode(texto.encode()).decode()
print("Base64:", b64)

# Base62 (usando um pacote externo, ex: base62)
import base62
num = 123456789
b62 = base62.encode(num)
print("Base62:", b62)

Saída:

Base64: T2zDoSBNdW5kbw==
Base62: 8M0kX

💻 Exemplo em JavaScript

// Base64
const texto = "Oi Mundo";
const b64 = btoa(texto);
console.log("Base64:", b64);

// Base62 (precisa de lib externa, exemplo com base-x)
import { baseX } from 'base-x';
const BASE62 = baseX('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');
console.log("Base62:", BASE62.encode(Buffer.from('12345')));

🧾 6. Quando usar cada uma

SituaçãoCodificação recomendada
Envio de arquivos via APIBase64
Armazenar imagens em HTMLBase64
Geração de links curtos (URL Shortener)Base62
Criação de códigos de conviteBase62
Transmitir dados binários segurosBase64
Evitar caracteres especiais (em URLs)Base62

🧩 7. Conclusão

  • Base64 → Ideal para transmitir ou armazenar dados binários de forma segura e padronizada.
  • Base62 → Ideal para representar números ou gerar identificadores curtos sem usar símbolos especiais.

Ambos tornam os dados transportáveis, seguros e compatíveis com texto, mas são escolhidos conforme o contexto:

  • Base64 → Padronização e interoperabilidade
  • Base62 → Legibilidade e compatibilidade com URLs