Saltar para o conteúdo
BCBinary Code Translator
Menu

Codificação de bytes com alfabeto Bitcoin

Codificador/descodificador de Base58

Converta texto UTF-8 com o alfabeto Base58 do Bitcoin, preserve cada byte zero inicial como 1 e rejeite 0, O, I, l e outros símbolos inválidos.

A aritmética de inteiros grandes e a conversão UTF-8 são executadas apenas no navegador.

Direção da conversão
0 carateres
0 carateres

A conversão ocorre localmente neste navegador. A entrada não é enviada.

Ainda não há resultado.

O que Base58 Bitcoin faz

Base58 representa bytes com cinquenta e oito símbolos alfanuméricos e remove 0, O, I e l para reduzir a confusão visual. Também evita pontuação incómoda em identificadores copiados por pessoas.

Ao contrário de Base32 e Base64, não usa grupos de bits fixos. Os bytes são tratados como um inteiro grande e divididos repetidamente por 58. Como os zeros à esquerda desapareceriam nesse processo, cada byte zero inicial passa a ser representado pelo símbolo 1.

O texto é convertido para UTF-8 antes da codificação. Na descodificação, os bytes precisam formar UTF-8 válido para esta interface exibi-los como texto.

Como usar Base58

  1. Escolha Codificar para texto ou Descodificar para uma cadeia Base58.
  2. Cole o valor exatamente; não há preenchimento, espaços nem equivalência entre maiúsculas e minúsculas.
  3. Corrija qualquer caráter ilegal indicado pela ferramenta.
  4. Use o vetor Hello World e o exemplo Unicode para comparar implementações.
  5. Para cargas binárias, use as funções de bytes em código em vez de forçar uma representação textual.

Exemplos Base58 com alfabeto Bitcoin

Os casos mostram texto, Unicode, zeros iniciais e carateres excluídos. Base58 não usa preenchimento.

Entrada Saída Direção da conversão Nota
Hello World JxF12TrwUP45BMd Codificar Vetor de texto conhecido. Valor conhecido no alfabeto Bitcoin, sem preenchimento.
JxF12TrwUP45BMd Hello World Descodificar Descodificar o vetor. Os símbolos recuperam bytes e depois passam pela validação UTF-8.
Base58 a4E9kYnK Codificar Texto ASCII curto. Maiúsculas e minúsculas têm valores diferentes.
你好 2xuZUfBKa Codificar Unicode em UTF-8. Dois carateres chineses tornam-se seis bytes.
1112  Descodificar Bytes zero iniciais. Cada 1 inicial restaura um byte zero; NUL pode ser invisível.
Codificar Valor vazio. Uma sequência de bytes vazia possui representação Base58 vazia; carateres ilegais são cobertos por validação estrita e testes.

Alfabeto e zeros iniciais

A ferramenta não adiciona versão nem soma de verificação. O descodificador aceita apenas o alfabeto Bitcoin exato.

Os carateres 1 no início são dados: cada um acrescenta um byte zero antes do inteiro descodificado.

  • 0, O, I e l são inválidos.
  • Maiúsculas e minúsculas são significativas.
  • Não existe preenchimento =.
  • Cada zero inicial transforma-se num 1.
  • A interface de texto exige UTF-8 válido.

Como Base58 preserva bytes

O codificador conta zeros iniciais, constrói um BigInt em base 256 e extrai restos de divisões por 58. Depois antepõe a quantidade correspondente de 1.

O descodificador multiplica o acumulador por 58, soma cada dígito, decompõe o inteiro em bytes base 256 e restaura os zeros iniciais.

BigInt mantém a aritmética exata, mas Base58 puro não deteta erros. Base58Check adiciona estrutura e checksum que esta ferramenta não inventa.

Usos comuns de Base58

Base58 é usado em identificadores binários destinados a pessoas. Não fornece segurança.

Uso Descrição
Identificadores de criptomoedas Bitcoin normalmente usa Base58Check sobre este alfabeto.
Identificadores de conteúdo Alguns sistemas distribuídos representam hashes em Base58.
Códigos fáceis de partilhar O alfabeto reduz confusões visuais, mas um checksum ainda é útil.
IDs públicos Compacta bytes aleatórios sem pontuação reservada.
Testes de bibliotecas Zeros iniciais expõem implementações incorretas.

Erros importantes de Base58

Alterar maiúsculas ou minúsculas, ou perder um 1 inicial, muda o valor, mesmo quando a cadeia restante continua sintaticamente válida.

Uma cadeia Base58 válida não garante que seja um endereço, uma chave ou um conteúdo válido para determinado protocolo.

  • Não substitua carateres parecidos.
  • Remova quebras de linha apenas se o formato de origem permitir.
  • Eliminar um 1 remove um byte zero.
  • Trocar maiúsculas muda o número.
  • Base58Check requer validação específica.

Base58 comparado a Base58Check e Base64

Base58 puro é apenas uma representação de bytes. Base58Check acrescenta prefixo, checksum e regras de protocolo.

Base64 é mais compacto e rápido em blocos de bits, mas inclui pontuação. Base32 tem alfabeto menor e preenchimento definido pela RFC 4648.

Formato Descrição
Base58Check Acrescenta checksum e estrutura; não é equivalente a Base58 bruto.
Base64 É mais curto, porém usa +, / e possivelmente =.
Base32 Usa um alfabeto fixo de 32 símbolos e regras de preenchimento.

Perguntas frequentes sobre Base58

Qual alfabeto é usado?

O alfabeto Bitcoin: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz.

Porque é que 0, O, I e l são proibidos?

Esses símbolos foram removidos para reduzir erros de leitura e introdução.

Como zeros iniciais são preservados?

Cada byte 0x00 inicial passa a ser representado pelo símbolo 1.

Isto valida endereços Bitcoin?

Não. Endereços normalmente usam Base58Check e regras adicionais.

Porque é que um valor Base58 válido pode falhar ao descodificar?

Os bytes recuperados podem não formar texto UTF-8.

Base58 cifra dados?

Não. Qualquer pessoa pode reverter a codificação.

Ferramentas relacionadas

Ver todas as ferramentas

Preferências de cookies

Gerir as preferências de cookies. Os cookies necessários não podem ser desativados.

Necessários

Obrigatório

Necessários para seleção de idioma, escolhas de privacidade e funcionalidades básicas do site.

Cookies: NEXT_LOCALE

Análises

Cookies opcionais de análise ajudam a entender o tráfego e melhorar o site.

Cookies: _ga, _gid, _gat, _clck, _clsk

Publicidade

Cookies opcionais de publicidade podem ser usados para mostrar anúncios relevantes e medir desempenho.

Cookies: __gads, _gcl_au, IDE