1001Ferramentas
Utilitários

Base58 Bitcoin Encode

Codifica e decodifica bytes em Base58 no alfabeto do Bitcoin (sem 0, O, I, l).

Base58 e por que ele tira quatro caracteres do alfabeto

Base58 nasceu no Bitcoin com um objetivo bem específico: gerar textos que uma pessoa consiga ler em voz alta, anotar num papel e digitar de novo sem errar. Para isso, o alfabeto de 58 caracteres tira exatamente os quatro que se confundem entre si — o zero, a letra O maiúscula, a letra I maiúscula e o l minúsculo. Também ficam de fora o + e a / do base64, que atrapalham em URL e em duplo clique.

Aqui você digita um texto e recebe a codificação em base58 com o alfabeto do Bitcoin. A conta trata a entrada como um número inteiro grande, na ordem em que os bytes aparecem, e divide sucessivamente por 58. Bytes zero no início não sobrevivem a essa conversão numérica, então eles são representados à parte, cada um virando um caractere "1" no começo do resultado — a mesma regra que faz um endereço Bitcoin legado começar por 1.

Uma diferença importante: isto é base58 puro, não Base58Check. Endereços de carteira e chaves WIF usam a variante com verificação, que acrescenta um byte de versão na frente e quatro bytes de checksum no fim, calculados com SHA-256 duplo, antes de codificar. Sem esses bytes, o resultado é uma codificação válida, mas não é um endereço, e nenhuma carteira vai aceitá-lo.

Perguntas frequentes

Base58 comprime o dado?
Não, ele expande — só bem menos que hexadecimal. Cada byte cabe em cerca de 1,37 caracteres de base58, contra 2 do hex e 1,33 do base64. A vantagem não é tamanho, é o alfabeto sem caracteres ambíguos e sem símbolos que quebram em URL.
Por que a saída não começa com o mesmo caractere quando mudo só o primeiro byte?
Porque a conversão trata a entrada inteira como um número, não byte a byte. Mudar qualquer byte muda o número inteiro, e a divisão sucessiva por 58 redistribui todos os dígitos. É o mesmo efeito de converter um número decimal grande para outra base.
Dá para decodificar de volta aqui?
Esta página só codifica. A operação inversa existe e é direta — reconstruir o número a partir dos dígitos e recuperar os bytes — mas na prática quem precisa decodificar geralmente está lidando com Base58Check e precisa também validar o checksum, que é outra ferramenta.

Ferramentas Relacionadas