Codificador e decodificador Base58 Ripple
“Hello World” vira JxErpTiA7PhnBMd em Base58 Ripple, o alfabeto do XRP Ledger que começa com r, p, s, h, n e deixa de fora 0, O, I e l, então suas sequências seguem a mesma ordem dos endereços XRP clássicos. 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
- JxErpTiA7PhnBMd
- Entrada
- Hello World
- Base58 (Ripple)
- JxErpTiA7PhnBMd
- Nome do alfabeto
- ripple
Um codificador Base58 Ripple transforma texto UTF-8 comum em uma cadeia compacta que usa o alfabeto de cinquenta e oito caracteres popularizado pelo XRP Ledger para endereços clássicos, e um decodificador Base58 Ripple inverte esse mapeamento para que voce recupere o texto original. O alfabeto mantém dígitos e letras, mas remove o zero, o O maiúsculo, o I maiúsculo e o L minúsculo — os quatro glifos que as pessoas mais confundem — e, ainda assim, ordena esses símbolos de forma totalmente diferente do Base58 do Bitcoin e do Flickr, de modo que os mesmos bytes geram outra cadeia.
O que é o Base58 Ripple e como difere do Base58 do Bitcoin
Base58 é uma família de codificações de binário para texto que mapeiam uma sequência arbitraria de bytes em um alfabeto de cinquenta e oito símbolos. O XRP Ledger popularizou uma ordenação concreta dos símbolos restantes após remover o zero, o O maiúsculo, o I maiúsculo e o L minúsculo: a cadeia começa com r, p, s, h, n e continua por uma tabela fixa de cinquenta e oito caracteres que não é a ordem do Bitcoin nem a do Flickr.
Por isso, endereços clássicos XRP parecem diferentes dos endereços Bitcoin mesmo quando ambos evitam os mesmos quatro glifos ambíguos. A codificação percorre os bytes de entrada como um inteiro big-endian na base duzentos e cinquenta e seis, divide repetidamente por cinquenta e oito e mapeia cada resto para o alfabeto Ripple; bytes zero iniciais tornam-se caracteres r iniciais na saída, porque r é o dígito zero deste alfabeto, e não o um do Bitcoin.
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 de r iniciais. Como o alfabeto não tem caractere de preenchimento, o comprimento sozinho não implica um tamanho de bloco fixo como no Base64; as idas e voltas ainda funcionam desde que ambos os lados concordem no alfabeto Ripple e na convenção de zeros iniciais.
Quando aparece um caractere fora do alfabeto — zero, O, I, l, pontuação ou espaços —, o decodificador deve falhar de forma clara. Esta landing atende quem busca um codificador Base58 Ripple, um decodificador Base58 XRP ou um conversor do alfabeto Ripple online; não é Base64, não é apenas o Base58 do Bitcoin e não é um validador completo de endereços XRP com prefixos de tipo de conta e checksums.
Casos de uso
Códigos curtos legíveis com a ordem do alfabeto XRP
Codifique rótulos curtos no alfabeto Ripple para que códigos impressos evitem a confusão 0/O/I/l e sigam a ordenação de caracteres no estilo XRP.
Ensino dos alfabetos Base58 Ripple versus Bitcoin
Em sala de aula codifica-se Hello World nos dois alfabetos, comparam-se as strings e depois forçam-se caracteres inválidos para mostrar a validação estrita.
Perguntas frequentes
Qual alfabeto este codificador Base58 Ripple usa?
O alfabeto Ripple/XRP: rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz. Exclui 0, O, I e l, com ordem de caracteres diferente do Base58 do Bitcoin.
Como o Base58 Ripple difere do Base58 do Bitcoin?
Ambos removem 0, O, I e l, mas os cinquenta e oito caracteres restantes são ordenados de forma diferente. Os mesmos bytes, portanto, codificam strings distintas, e zeros iniciais mapeiam para r no Ripple em vez de 1 no Bitcoin.
Isto valida endereços XRP completos?
Não. Apenas codifica e decodifica texto UTF-8 bruto sob o alfabeto Base58 Ripple. Não verifica prefixos de tipo de conta nem checksums de endereço.
O codificador Base58 Ripple é gratuito?
A ferramenta do navegador é gratuita e roda localmente.
Por que algumas sequências Base58 Ripple começam com a letra r?
Porque o r é o dígito zero do alfabeto do Ripple. Bytes zerados no início dos seus dados viram letras r no começo, onde o Bitcoin escreveria uns, e na decodificação voltam a ser bytes zerados.
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-ripple \
-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-ripple", {
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-ripple",
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-ripple", 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-ripple", 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_ripple",
"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 Ripple, ou decode para recuperar UTF-8 a partir de uma carga Base58 Ripple; caracteres fora do alfabeto devolvem um erro invalid_input claro em vez de corrupção silenciosa. O caminho é aritmética determinística pura sobre bytes UTF-8 — sem rede, sem sementes aleatórias e sem dependência do relógio —, de forma que o executor gratuito do navegador e a API pré-paga devolvem 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 tornam-se uma string Base58 sob o alfabeto Ripple. O modo decode trata text como uma carga Base58 Ripple e devolve a string UTF-8 recuperada. Envie um corpo JSON com um campo de string obrigatório text (aliases input, value e data) e um mode opcional que seja encode ou decode. O comprimento de entrada é limitado a cem mil caracteres para que um único pedido não esgote a memória do Worker em expansões patológicas de inteiros grandes. Em sucesso de encode, a resposta inclui mode, input, result e base58 com a mesma string codificada, alphabet com a constante completa de cinquenta e oito caracteres Ripple, alphabet_name com o valor ripple, input_bytes como contagem de bytes UTF-8, output_length como contagem de caracteres codificados e uma mensagem curta em inglês. Em sucesso de decode, a resposta inclui mode, input, result e text com a string UTF-8 decodificada, os mesmos campos de alfabeto, input_length, output_bytes e uma mensagem correspondente. Validação falhada — text ausente, text que não é string, entrada grande demais, mode desconhecido, caractere Base58 inválido ou bytes decodificados que não são UTF-8 válido — devolve invalid_input e nunca é cobrada. O preço é uma tarifa fixa de US$ 0,002 por solicitação bem-sucedida com unidade item e preço unitário marginal zero.
Dicas práticas, limites e diferenças em relação ao Bitcoin e ao Flickr Base58
Mantenha as cargas abaixo do limite de caracteres publicado; strings extremamente longas expandem como inteiros grandes e é melhor dividi-las ou tratá-las offline. Ao ensinar, codifique a mesma frase sob os alfabetos Ripple, Bitcoin e Flickr lado a lado para que os alunos vejam por que as strings diferem embora os três removam os mesmos quatro glifos ambíguos. Inclua deliberadamente um caractere proibido — o dígito zero, o O maiúsculo, o I maiúsculo ou o L minúsculo — em um pedido de decode para afirmar que o cliente trata invalid_input e a mensagem de erro que nomeia o índice e os glifos excluídos. Tarefas falhas que devolvem invalid_input não consomem saldo pré-pago, o que mantém baratos os scripts exploratórios quando voce testa caracteres fora do alfabeto.
Casos de integração
Idas e voltas de fixtures no estilo XRP em testes
Gere strings Base58 Ripple conhecidas a partir de texto de fixture e afirme em CI que o decode recupera os mesmos bytes UTF-8 sem dependência criptográfica.
Perguntas técnicas
O que acontece se eu decodificar uma string com 0, O, I ou l?
A API devolve invalid_input, nomeia o caractere inválido e o índice, e lembra que o Base58 Ripple exclui esses quatro glifos. Tarefas falhas não são cobradas.