Encodeur et décodeur Base58 Ripple
« Hello World » devient JxErpTiA7PhnBMd en Base58 Ripple, l'alphabet du XRP Ledger qui commence par r, p, s, h, n et écarte 0, O, I et l : vos chaînes suivent le même ordre de caractères que les adresses XRP classiques. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Texte
- Hello World
- Mode de calcul
- Encode
- Résultat
- JxErpTiA7PhnBMd
- Entrée
- Hello World
- Base58 (Ripple)
- JxErpTiA7PhnBMd
- Nom de l'alphabet
- ripple
Un encodeur Base58 Ripple transforme un texte UTF-8 ordinaire en une chaîne compacte qui utilise l'alphabet de cinquante-huit caractères popularisé par le XRP Ledger pour les adresses classiques, et un décodeur Base58 Ripple inverse ce mappage afin que vous récupériez le texte d'origine. L'alphabet conserve chiffres et lettres mais écarte le zéro, le O majuscule, le I majuscule et le L minuscule — les quatre glyphes que les humains confondent le plus — tout en ordonnant ces symboles de façon totalement différente du Base58 Bitcoin et du Base58 Flickr, de sorte que les mêmes octets produisent une autre chaîne.
Ce qu'est le Base58 Ripple et en quoi il diffère du Base58 Bitcoin
Base58 est une famille d'encodages binaire-vers-texte qui projettent une séquence d'octets arbitraire sur un alphabet de cinquante-huit symboles. Le XRP Ledger a popularisé un ordre concret des symboles restants après l'exclusion du zéro, du O majuscule, du I majuscule et du L minuscule : la chaîne commence par r, p, s, h, n et se poursuit par une table fixe de cinquante-huit caractères qui n'est ni l'ordre Bitcoin ni l'ordre Flickr.
Les adresses XRP classiques paraissent donc différentes des adresses Bitcoin même lorsque les deux évitent les quatre mêmes glyphes ambigus. L'encodage parcourt les octets d'entrée comme un entier big-endian en base deux cent cinquante-six, divise de façon répétée par cinquante-huit et mappe chaque reste sur l'alphabet Ripple ; les octets zéro en tête deviennent des caractères r en tête de sortie, car r est le chiffre zéro de cet alphabet plutôt que le un de Bitcoin.
Le décodage inverse le mappage : chaque caractère devient un chiffre de zéro à cinquante-sept, le grand entier est reconstruit et le tableau d'octets est récupéré avec la même règle des r en tête. Comme l'alphabet n'a pas de caractère de remplissage, la longueur seule n'implique pas une taille de bloc fixe comme Base64 ; les allers-retours fonctionnent tant que les deux côtés s'accordent sur l'alphabet Ripple et la convention des zéros de tête.
Lorsqu'un caractère hors alphabet apparaît — zéro, O, I, l, ponctuation ou espaces —, le décodeur doit échouer de façon explicite. Cette page s'adresse à ceux qui recherchent un encodeur Base58 Ripple, un décodeur Base58 XRP ou un convertisseur d'alphabet Ripple en ligne ; ce n'est pas du Base64, pas uniquement le Base58 Bitcoin, et pas un validateur complet d'adresses XRP avec préfixes de type de compte et sommes de contrôle.
Cas d’usage
Codes courts lisibles avec l'ordre de l'alphabet XRP
Encodez de courtes étiquettes sous l'alphabet Ripple pour que les codes imprimés évitent la confusion 0/O/I/l et suivent l'ordre des caractères au style XRP.
Enseigner les alphabets Base58 Ripple versus Bitcoin
En classe, encodez Hello World sous les deux alphabets, comparez les chaînes, puis forcez des caractères invalides pour montrer la validation stricte.
Questions fréquentes
Quel alphabet utilise cet encodeur Base58 Ripple ?
L'alphabet Ripple/XRP : rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz. Il exclut 0, O, I et l, avec un ordre de caractères différent du Base58 Bitcoin.
En quoi le Base58 Ripple diffère-t-il du Base58 Bitcoin ?
Les deux écartent 0, O, I et l, mais les cinquante-huit caractères restants sont ordonnés différemment. Les mêmes octets s'encodent donc en chaînes distinctes, et les zéros de tête se mappent en r sous Ripple au lieu de 1 sous Bitcoin.
Que se passe-t-il si je décode une chaîne contenant 0, O, I ou l ?
Les tâches en échec ne sont pas facturées.
Cela valide-t-il des adresses XRP complètes ?
Non. Il n'encode et ne décode que du texte UTF-8 brut sous l'alphabet Base58 Ripple. Il ne vérifie ni les préfixes de type de compte ni les sommes de contrôle d'adresse.
L'encodeur Base58 Ripple est-il gratuit ?
L'outil navigateur est gratuit et s'exécute en local.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
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)Exemple de requête
{
"text": "Hello World"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.base58_ripple",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_chars | 100000 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Choisissez encode pour convertir du texte brut en Base58 Ripple, ou decode pour retrouver l'UTF-8 à partir d'une charge utile Base58 Ripple ; les caractères hors alphabet renvoient une erreur invalid_input claire au lieu d'une corruption silencieuse. Le chemin est une arithmétique purement déterministe sur des octets UTF-8 — sans réseau, sans graines aléatoires, sans dépendance à l'horloge — de sorte que l'exécuteur gratuit du navigateur et l'API prépayée renvoient le même JSON à chaque fois.
Comment appeler l'API et ce que contient la réponse
Le mode par défaut est encode : les octets UTF-8 de text deviennent une chaîne Base58 sous l'alphabet Ripple. Le mode decode traite text comme une charge utile Base58 Ripple et renvoie la chaîne UTF-8 récupérée. Envoyez un corps JSON avec un champ chaîne obligatoire text (alias input, value et data) et un mode optionnel valant encode ou decode. La longueur d'entrée est plafonnée à cent mille caractères afin qu'une seule requête ne puisse épuiser la mémoire du Worker sur une expansion pathologique de grands entiers. En cas de succès pour encode, la réponse inclut mode, input, result et base58 avec la même chaîne encodée, alphabet avec la constante complète de cinquante-huit caractères Ripple, alphabet_name égal à ripple, input_bytes comme nombre d'octets UTF-8, output_length comme nombre de caractères encodés, et un court message en anglais. En cas de succès pour decode, la réponse inclut mode, input, result et text avec la chaîne UTF-8 décodée, les mêmes champs d'alphabet, input_length, output_bytes et un message correspondant. Une validation échouée — text manquant, text non chaîne, entrée trop grande, mode inconnu, caractère Base58 invalide, ou octets décodés non UTF-8 valides — renvoie invalid_input et n'est jamais facturée. Le tarif est un forfait de $0.002 par requête réussie avec unité item et prix unitaire marginal nul.
Conseils pratiques, limites et différences avec Bitcoin et Flickr Base58
Gardez les charges sous la limite de caractères publiée ; les chaînes extrêmement longues s'étendent comme de grands entiers et se traitent mieux en les scindant ou hors ligne. En enseignement, encodez la même phrase sous les alphabets Ripple, Bitcoin et Flickr côte à côte afin que les apprenants voient pourquoi les chaînes diffèrent alors que les trois écartent les quatre mêmes glyphes ambigus. Incluez délibérément un caractère interdit — chiffre zéro, O majuscule, I majuscule ou L minuscule — dans une requête de décodage pour vérifier que votre client gère invalid_input et le message d'erreur qui nomme l'index et les glyphes exclus. Les tâches en échec qui renvoient invalid_input ne consomment pas le solde prépayé, ce qui maintient les scripts d'exploration peu coûteux lorsque vous testez des caractères hors alphabet.
Cas d'intégration
Allers-retours de fixtures style XRP dans les tests
Générez des chaînes Base58 Ripple connues à partir d'un texte de fixture et affirmez en CI que le décodage récupère les mêmes octets UTF-8 sans dépendance cryptographique.