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
Gerador de MD5
Gere um hash MD5 a partir de qualquer texto ou arquivo. Saída de 128 bits em hexadecimal, calculada inteiramente no seu navegador.
Gerador de frase-senha
Gere uma frase-senha memorizável com palavras comuns aleatórias, com número de palavras ajustável, separador, maiúsculas e um número opcional no fim.
Gerador de Hash
Gere hashes MD5, SHA-1, SHA-256, SHA-384, SHA-512 e CRC32 a partir de texto, com um digest pronto para copiar em checksums e comparações.
Gerador de Hash MD5
Calcule checksums MD5 de textos e arquivos para verificação de integridade. Corresponde à saída de md5sum e openssl dgst -md5.
Cifra de número para letra
Converta números em letras e vice-versa usando a cifra A=1, B=2 (A1Z26) para quebra-cabeças, enigmas e pistas de salas de fuga.
Gerador de JWT
Gere JWTs assinados com cabeçalho personalizado, reivindicações de carga útil, assinatura HMAC ou RSA, expiração e restrições de público para testes.
Ferramenta disponível em outros idiomas
- Base58 인코더 및 디코더 [KO]
- Base58-kodare och avkodare [SV]
- Base58 encoder en decoder [NL]
- Koder i dekoder Base58 [PL]
- Base58-Encoder/Decoder [DE]
- ตัวเข้ารหัสและถอดรหัส Base58 [TH]
- Codificador y Decodificador Base58 [ES]
- Encoder dan Decoder Base58 [ID]
- مشفر ومفكك Base58 [AR]
- Encodeur et décodeur Base58 [FR]
- Base58エンコーダー・デコーダー [JA]
- Bộ mã hóa và giải mã Base58 [VI]
- Base58 Encoder and Decoder [EN]
- Codificatore e Decodificatore Base58 [IT]
- Кодировщик и декодировщик Base58 [RU]
- Base58 Kodlayıcı ve Çözücü [TR]
- Base58 编码器和解码器 [ZH]