Codificador e Decodificador Base58
Entrada
Base58 é uma codificação de dados binários em texto criada para evitar alguns caracteres fáceis de confundir. O alfabeto Bitcoin não usa 0 O I l nem + /; outros sistemas organizam os mesmos 58 símbolos em outra ordem. Endereços Bitcoin antigos em Base58Check e strings IPFS CIDv0 são exemplos conhecidos. Esta ferramenta funciona somente no navegador, converte texto UTF-8 ou bytes hexadecimais exatos com o alfabeto Bitcoin, Ripple ou Flickr e rejeita caracteres que não pertencem ao alfabeto escolhido.
Como codificar e decodificar Base58
-
1
Insira bytes ou uma string Base58
A direção de codificação aceita texto hex ou bruto; a direção de decodificação aceita Base58.
-
2
Escolha o alfabeto se necessário
O padrão é o Base58 do Bitcoin; variantes Ripple e Flickr disponíveis para compatibilidade.
-
3
Execute a conversão
Base58 não se divide em grupos de 5 ou 6 bits; é tratado como um único inteiro big-endian, dividido por 58 repetidamente.
-
4
Copie o resultado
Strings codificadas preservam bytes zero à frente como caracteres `1` à frente (o glifo zero no alfabeto do Bitcoin).
O alfabeto Base58 do Bitcoin
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
Observe o que está faltando: 0, O, I, l. O primeiro caractere no alfabeto é 1, que representa o inteiro 0.
Como funciona na prática
Diferente do Base64 que divide bits em grupos fixos, o Base58 trata toda a string de bytes como um único inteiro big-endian N e o expressa na base 58:
result = []
while N > 0:
result.prepend(alphabet[N mod 58])
N = N / 58
for each leading zero byte in input:
result.prepend(alphabet[0]) # ou seja, '1'
É por isso que a codificação Base58 não é trivial para transmitir, você precisa do número inteiro completo antes de poder emitir qualquer caractere.
Base58 vs Base58Check
A carga Base58Check típica de um endereço P2PKH antigo tem 25 bytes: 1 byte de versão, 20 bytes de hash e 4 bytes de soma de verificação. A soma corresponde aos primeiros 4 bytes do SHA-256 duplo da versão e do hash. A codificação Base58 dessa carga completa produz a string de endereço conhecida.
Esta ferramenta converte apenas Base58 simples. Use um validador Base58Check específico quando precisar verificar a versão e a soma de um endereço.
Variantes do alfabeto
| Variante | Onde é usado | Diferenças em relação ao Bitcoin |
|---|---|---|
| Bitcoin | Endereços BTC, IPFS CIDv0 | Base padrão |
| Ripple | Endereços XRP | Posições trocadas |
| Flickr | URLs curtas de fotos | Minúsculas antes de maiúsculas |
Por que não usar apenas Base64?
Base64 não tem mudança de comprimento entre texto binário e codificado (4 caracteres por 3 bytes), o que é eficiente. Base58 tem uma sobrecarga ligeiramente variável, mas sem caracteres ambíguos, que é o que você quer quando alguém precisa copiar um endereço à mão ou lê-lo ao telefone.
Perguntas frequentes
Não universalmente. Base58 é melhor quando humanos lidam com a string; Base64 é melhor quando máquinas a transportam. Base64 codifica 6 bits por caractere contra ~5,86 do Base58, então Base64 é ligeiramente mais compacto.
Base58 codifica um grande inteiro, então o comprimento varia por um caractere ou dois dependendo dos bits de ordem superior. Endereços P2PKH típicos têm 34 caracteres, mas 33 é possível.
A ferramenta pode decodificar a string em bytes brutos; escolha a saída hexadecimal para exibir qualquer byte sem perda. Ela não verifica a versão nem a soma de verificação, portanto a decodificação não prova que o endereço é válido. Para isso, use um validador Base58Check.
Sim. Cada byte zero no início da entrada se torna um caractere 1 na saída, que é como os endereços Bitcoin que começam com 1 funcionam.
Ferramentas relacionadas
Codificador de Cifra A1Z26
Codifique texto usando a cifra A1Z26 (A=1, B=2, ... Z=26) ou decodifique uma sequência de números de volta para letras, com separador personalizável.
Gerador de bcrypt
Gere um hash bcrypt a partir de uma senha em texto simples. Fator de custo ajustável de 4 a 14, compatível com Laravel, Django, Node e PHP.
Gerador de Hash bcrypt
Gere hashes bcrypt ou verifique uma senha em texto simples contra um hash bcrypt existente. Gere e verifique lado a lado em uma única ferramenta.
Codificador e Decodificador Base32
Codifique e decodifique strings Base32 usando o alfabeto RFC 4648. Útil para segredos TOTP, tokens sem distinção de maiúsculas e identificadores digitados por humanos.
Criptografar / Descriptografar AES
Criptografe e descriptografe texto de baixo risco com cifras AES do OpenSSL. A senha é resumida com SHA-256 e a saída Base64 contém IV mais texto cifrado.
Codificador e Decodificador Base85
Codifique e decodifique Base85 nas variantes Adobe Ascii85 (PostScript/PDF) ou Z85 (ZeroMQ). Mais compacto que Base64 para dados binários.