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 certificado SSL
Gere um certificado SSL/TLS autoassinado e uma chave privada RSA totalmente no navegador. Common Name, SANs e validade personalizados, exportados em PEM.
Identificador de Criptografia
Cole um texto cifrado ou hash e o identificador sugere algoritmos ou codificações prováveis: MD5, SHA, bcrypt, AES, RSA, Base64 e mais.
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 CSR
Gere um Pedido de Assinatura de Certificado codificado em PEM e a chave privada RSA correspondente. Especifique o nome comum, os campos da organização e o tamanho da chave (2048, 3072 ou 4096 bits).
Codificador de Cifra de César
Criptografe e descriptografe texto usando a cifra de César. Qualquer deslocamento de 1-25, suporta ROT13 como um caso especial, preserva pontuação e maiúsculas/minúsculas.
Conversor de ETH para USD
Converta Ethereum (ETH) para dólares americanos com uma taxa ETH/USD ao vivo ou com a taxa que você inserir. Veja quanto vale em USD qualquer quantidade de ETH.
Ferramenta disponível em outros idiomas
- Base58 인코더 및 디코더 [KO]
- Base58-kodare och avkodare [SV]
- مشفر ومفكك Base58 [AR]
- Koder i dekoder Base58 [PL]
- Base58-Encoder/Decoder [DE]
- Encodeur et décodeur Base58 [FR]
- ตัวเข้ารหัสและถอดรหัส Base58 [TH]
- Encoder dan Decoder Base58 [ID]
- Base58 encoder en decoder [NL]
- Base58エンコーダー・デコーダー [JA]
- Bộ mã hóa và giải mã Base58 [VI]
- Codificador y Decodificador Base58 [ES]
- Base58 Encoder and Decoder [EN]
- Codificatore e Decodificatore Base58 [IT]
- Base58 编码器和解码器 [ZH]
- Кодировщик и декодировщик Base58 [RU]
- Base58 Kodlayıcı ve Çözücü [TR]