Codificador e decodificador Base58
“Hello World” vira JxF12TrwUP45BMd em Base58, com o alfabeto do Bitcoin de 58 caracteres sem zero, O maiúsculo, I maiúsculo nem l minúsculo, para que os códigos fiquem legíveis no papel e na tela. Também decodifica. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Texto
- Hello World
- Modo de cálculo
- Encode
- Resultado
- JxF12TrwUP45BMd
- Entrada
- Hello World
- Resultado em Base58
- JxF12TrwUP45BMd
- Nome do alfabeto
- bitcoin
Um codificador Base58 transforma texto UTF-8 comum em uma cadeia compacta que usa apenas cinquenta e oito caracteres inequívocos, e um decodificador Base58 reverte esse mapeamento para que você recupere o texto original. Esta ferramenta usa o alfabeto Bitcoin: dígitos e letras sem o zero, o O maiúsculo, o I maiúsculo e o L minúsculo, os quatro glifos que as pessoas mais confundem ao ler anotações manuscritas, impressões de QR ou endereços de carteira. Desenvolvedores verificam cadeias semelhantes a endereços, professores demonstram bases alternativas, e scripts precisam de idas e voltas determinísticas sem instalar uma biblioteca de criptografia.
O que é o Base58 do Bitcoin e por que esses quatro caracteres estão ausentes
Base58 é uma codificação de binário para texto que mapeia uma sequência arbitrária de bytes em um alfabeto de cinquenta e oito símbolos. Diferente do Base64, ele descarta caracteres difíceis de distinguir na impressão e na fala: o dígito zero, a letra O maiúscula, a letra I maiúscula e a letra L minúscula.
O projeto Bitcoin popularizou uma ordenação concreta dos símbolos restantes — de um a nove, depois A–Z sem I e O, depois a–z sem l — e é essa ordenação que carteiras, muitos exploradores de blockchain e esta capacidade usam. A codificação percorre os bytes de entrada como um inteiro big-endian em base duzentos e cinquenta e seis, divide repetidamente por cinquenta e oito e mapeia cada resto para o alfabeto; bytes zero à esquerda viram uns à esquerda na saída, a mesma convenção que os endereços Bitcoin seguem.
A decodificação inverte o mapeamento: cada caractere vira um dígito de zero a cinquenta e sete, o inteiro grande é reconstruído e o array de bytes é recuperado com a mesma regra do um à esquerda. Como o alfabeto não tem caractere de preenchimento, o comprimento por si só não implica um tamanho fixo de bloco como no Base64; as idas e voltas ainda funcionam desde que ambos os lados concordem com o alfabeto e a convenção de zeros à esquerda.
Quando aparece um caractere fora do alfabeto — zero, O, I, l, pontuação ou espaço em branco —, o decodificador deve falhar ruidosamente. Uma substituição silenciosa inventaria uma carga diferente e é pior que um erro duro para carteiras, checksums e testes automatizados. Esta landing atende quem busca um codificador Base58, decodificador Base58 ou conversor do alfabeto Bitcoin online; não é Base64, não é Base32 e não é um validador completo de endereços Bitcoin com bytes de versão e checksums.
Dicas práticas, limites e como isto difere do Base64
Verificações de ida e volta são o teste de fumaça mais rápido: codifique uma frase conhecida como Hello World, confirme o resultado clássico JxF12TrwUP45BMd, depois decodifique essa cadeia e confirme que recupera a frase original byte a byte. Mantenha as cargas abaixo do limite de caracteres publicado; cadeias extremamente longas se expandem como inteiros grandes e é melhor dividi-las ou tratá-las offline. Esta ferramenta não é um analisador de endereços Bitcoin: ela não remove um prefixo de versão, não recalcula um checksum SHA256 duplo nem classifica mainnet versus testnet.
Também não é Base64 nem Base64URL — esses alfabetos incluem sinal de mais, barra e preenchimento de sinal de igual, e mantêm o zero e o O maiúsculo. Prefira Base58 quando a segurança na transcrição humana importa mais que a densidade; prefira Base64 quando você precisa do máximo de bits por caractere e transporte apenas entre máquinas.
Ao ensinar, mostre a mesma frase codificada em Base58 e Base64 lado a lado, para que os alunos vejam por que o alfabeto Bitcoin parece diferente e por que os erros de copiar e colar diminuem quando os quatro glifos ambíguos desaparecem.
Casos de uso
Códigos curtos seguros para impressão e QR
Codifique rótulos curtos para que códigos impressos evitem a confusão 0/O/I/l quando a equipe os digita a partir de papel ou de câmeras de celular.
Ensino de bases alternativas e do alfabeto Bitcoin
Salas de aula e oficinas codificam Hello World, inspecionam o alfabeto e depois forçam caracteres inválidos para mostrar a validação estrita.
Perguntas frequentes
Qual alfabeto este codificador Base58 usa?
O alfabeto Bitcoin: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz. Ele exclui 0, O, I e l.
Base58 é o mesmo que Base64?
Não. O Base64 usa sessenta e quatro símbolos, incluindo +, / e o preenchimento =, e mantém 0 e O. O Base58 elimina glifos ambíguos e é comum em cadeias no estilo Bitcoin.
Esta ferramenta valida endereços Bitcoin completos?
Não. Ela apenas codifica e decodifica texto UTF-8 bruto sob o alfabeto Base58 do Bitcoin. Não verifica bytes de versão nem checksums SHA256 duplo.
O codificador Base58 é gratuito?
A ferramenta no navegador é gratuita e roda localmente.
Por que minha sequência Base58 é recusada ao decodificar?
Porque ela tem um caractere fora do alfabeto do Bitcoin, como zero, O ou I maiúsculos, l minúsculo, pontuação ou espaço. O decodificador para com uma mensagem clara em vez de transformá-la em outro texto sem avisar.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/enc/base58 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello World"}'const res = await fetch("https://api.kit.forhosting.com/enc/base58", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello World"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/base58",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello World"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/base58", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello World"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello World"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/base58", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"text": "Hello World"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.base58",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_chars | 100000 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Escolha encode para converter texto simples em Base58, ou decode para recuperar UTF-8 de uma carga Base58; caracteres fora do alfabeto retornam um erro invalid_input claro em vez de corrupção silenciosa. O caminho é aritmética pura e determinística sobre bytes UTF-8 — sem rede, sem sementes aleatórias, sem dependência de relógio —, portanto o executor gratuito no navegador e a API pré-paga retornam o mesmo JSON sempre.
Como chamar a API e o que a resposta contém
O modo padrão é encode: os bytes UTF-8 de text viram uma cadeia Base58 sob o alfabeto Bitcoin. O modo decode trata text como uma carga Base58 e devolve a cadeia UTF-8 recuperada. Envie um corpo JSON com um campo de cadeia obrigatório text (aliases input, value e data) e um mode opcional que pode ser encode ou decode. O comprimento da entrada é limitado a cem mil caracteres, para que uma única requisição não esgote a memória do Worker em expansões patológicas de inteiros grandes. Em caso de sucesso no encode, a resposta inclui mode, input, result e base58 com a mesma cadeia codificada, alphabet com a constante completa de cinquenta e oito caracteres, alphabet_name definido como bitcoin, input_bytes como a contagem de bytes UTF-8, output_length como a contagem de caracteres codificados e uma mensagem curta em inglês. Em caso de sucesso no decode, a resposta inclui mode, input, result e text com a cadeia UTF-8 decodificada, os mesmos campos de alfabeto, input_length, output_bytes e uma mensagem correspondente. Falhas de validação — text ausente, text que não é cadeia, entrada acima do limite, mode desconhecido, caractere Base58 inválido ou bytes decodificados que não são UTF-8 válido — retornam invalid_input e nunca são cobradas. O preço é uma taxa fixa de US$ 0,002 por requisição bem-sucedida com unidade item e preço unitário marginal zero.
Dicas práticas, limites e como isto difere do Base64
Inclua deliberadamente um caractere proibido — dígito zero, O maiúsculo, I maiúsculo ou L minúsculo — em uma requisição de decode para garantir que seu cliente trata o invalid_input e a mensagem de erro que indica o índice e os glifos excluídos. Tarefas que falham com invalid_input não consomem saldo pré-pago, o que mantém scripts exploratórios baratos quando você testa caracteres inválidos do alfabeto.
Casos de integração
Idas e voltas de carteiras e fixtures em testes
Gere cadeias Base58 conhecidas a partir de textos de fixture e garanta que o decode recupera os mesmos bytes UTF-8 na CI sem dependência de criptografia.
Perguntas técnicas
O que acontece se eu decodificar uma cadeia com 0, O, I ou l?
A API retorna invalid_input, indica o caractere inválido e seu índice, e lembra que o Base58 do Bitcoin exclui esses quatro glifos. Tarefas com falha não são cobradas.