"tools" em Base58
- Entrada
- tools
- Saída esperada
- E8usLYJ
7 caracteres para 5 bytes, 40% a mais: em entradas curtas o overhead real oscila mais que a média de 37%, porque não há bytes suficientes para a divisão por 58 convergir.
diferença base58 base64 quando usar
Base64 nasceu de um alfabeto simples: pega os 62 caracteres alfanuméricos e soma dois símbolos, + e /, para fechar 64. Base58 faz o caminho oposto: parte dos mesmos 62 caracteres e remove quatro, 0, O, I e l, para chegar a 58. Essa diferença de quatro símbolos parece pequena, mas muda o overhead, a legibilidade e até a velocidade de codificação.
7 caracteres para 5 bytes, 40% a mais: em entradas curtas o overhead real oscila mais que a média de 37%, porque não há bytes suficientes para a divisão por 58 convergir.
8 caracteres para 5 bytes, 60% a mais: o padding "=" arredonda a saída para um múltiplo de 4, e em blocos pequenos esse arredondamento pesa mais que a média assintótica de 33%.
Num bloco maior e múltiplo de 3, o overhead de cada esquema se aproxima do valor teórico: 4/3 para Base64, log 256 sobre log 58 para Base58.
Base58 remove 0 (zero), O (ó maiúsculo), l (ele minúsculo) e I (i maiúsculo) porque eles se confundem nas fontes mais comuns e ao ler em voz alta. Isso reduz o erro de transcrição humana, o que é crítico em endereços de carteira, onde um caractere trocado pode significar perda permanente de fundos.
Na média sim, cerca de 37% contra 33% de overhead, mas não em toda entrada: com poucos bytes, o padding "=" do Base64 pode pesar mais que a divisão por 58 do Base58, como acontece codificando a palavra "tools" (60% contra 40% de overhead). A regra dos 37/33% só é confiável em blocos maiores.
Porque Base64 processa a entrada em grupos fixos de 3 bytes com deslocamento de bits, uma operação linear e simples. Base58 não tem uma potência de 2 como base, então o algoritmo trata a entrada inteira como um número grande e divide repetidamente por 58, um custo que cresce mais rápido conforme a entrada aumenta. Para textos curtos a diferença não é perceptível.
Sim, e é uma vantagem real: Base58 nunca produz +, / ou =, então não precisa de percent-encoding nem de variante "URL-safe" separada, ao contrário do Base64 padrão. Base64 também tem uma versão URL-safe (trocando + e / por - e _), mas Base58 já nasce sem esses caracteres problemáticos.
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyzTudo é calculado no seu navegador, incluindo o SHA-256 do checksum. Nenhuma chave ou endereço sai deste dispositivo.