Encodeur et décodeur Base58
« Hello World » devient JxF12TrwUP45BMd en Base58, avec l'alphabet Bitcoin de 58 caractères sans zéro, O majuscule, I majuscule ni l minuscule, pour des codes lisibles sur papier comme à l'écran. Le décodage fonctionne aussi. 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
- JxF12TrwUP45BMd
- Entrée
- Hello World
- Sortie Base58
- JxF12TrwUP45BMd
- Nom de l'alphabet
- bitcoin
Un encodeur Base58 transforme un texte UTF-8 ordinaire en une chaîne compacte n'utilisant que cinquante-huit caractères sans ambiguïté, et un décodeur Base58 inverse cette correspondance pour restituer le texte d'origine. Cet outil utilise l'alphabet Bitcoin : chiffres et lettres sans le zéro, le O majuscule, le I majuscule ni le L minuscule, les quatre glyphes que l'on confond le plus souvent en lisant des notes manuscrites, des impressions de QR ou des adresses de portefeuille. Les développeurs vérifient des chaînes semblables à des adresses, les enseignants démontrent des bases alternatives, et les scripts ont besoin d'allers-retours déterministes sans installer de bibliothèque cryptographique.
Qu'est-ce que le Base58 Bitcoin et pourquoi ces quatre caractères manquent
Base58 est un encodage binaire-vers-texte qui fait correspondre une séquence d'octets quelconque à un alphabet de cinquante-huit symboles. Contrairement à Base64, il écarte les caractères difficiles à distinguer à l'écrit comme à l'oral : le chiffre zéro, la lettre O majuscule, la lettre I majuscule et la lettre L minuscule.
Le projet Bitcoin a popularisé un ordre concret des symboles restants — un à neuf, puis A–Z sans I ni O, puis a–z sans l — et c'est cet ordre qu'utilisent les portefeuilles, de nombreux explorateurs de blockchain et cette capacité. L'encodage parcourt les octets d'entrée comme un entier gros-boutiste en base deux cent cinquante-six, divise à répétition par cinquante-huit et associe chaque reste à l'alphabet ; les octets nuls initiaux deviennent des uns initiaux dans la sortie, selon la même convention que les adresses Bitcoin.
Le décodage inverse la correspondance : 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 uns initiaux. Comme l'alphabet n'a pas de caractère de remplissage, la longueur seule n'implique pas une taille de bloc fixe comme avec Base64 ; les allers-retours fonctionnent tant que les deux parties s'accordent sur l'alphabet et la convention des zéros initiaux.
Lorsqu'un caractère hors alphabet apparaît — zéro, O, I, l, ponctuation ou espace — le décodeur doit échouer bruyamment. Une substitution silencieuse inventerait une charge différente, ce qui est pire qu'une erreur franche pour les portefeuilles, les sommes de contrôle et les tests automatisés. Cette landing vise les personnes qui cherchent un encodeur Base58, un décodeur Base58 ou un convertisseur d'alphabet Bitcoin en ligne ; ce n'est ni Base64, ni Base32, ni un validateur complet d'adresses Bitcoin avec octets de version et sommes de contrôle.
Conseils pratiques, limites et différence avec Base64
Préférez encode lorsque vous partez de texte lisible ou de courtes charges binaires sous forme de texte à coller sans glyphes ambigus ; préférez decode lorsque vous détenez déjà une chaîne Base58 issue d'un portefeuille, d'une étiquette QR ou d'un fichier de référence. Les contrôles d'aller-retour sont le test de fumée le plus rapide : encodez une phrase connue comme Hello World, confirmez le résultat classique JxF12TrwUP45BMd, puis décodez cette chaîne et confirmez que vous retrouvez la phrase d'origine octet pour octet.
Gardez les charges sous la limite de caractères publiée ; les chaînes extrêmement longues s'étendent en grands entiers et sont mieux découpées ou traitées hors ligne. Cet outil n'est pas un analyseur d'adresses Bitcoin : il ne retire pas de préfixe de version, ne recalcule pas de somme de contrôle double-SHA256 et ne classe pas mainnet contre testnet. Ce n'est pas non plus Base64 ou Base64URL — ces alphabets incluent plus, barre oblique et remplissage égal, et conservent le zéro et le O majuscule.
Préférez Base58 lorsque la sécurité de transcription humaine compte plus que la densité ; préférez Base64 lorsque vous voulez un maximum de bits par caractère et un transport purement machine. En cours, montrez la même phrase encodée en Base58 et en Base64 côte à côte pour que les apprenants voient pourquoi l'alphabet Bitcoin a une autre allure et pourquoi les erreurs de copier-coller diminuent une fois les quatre glyphes ambigus éliminés.
Cas d’usage
Allers-retours de portefeuille et de références en test
Générez des chaînes Base58 connues à partir de textes de référence et vérifiez que le décodage restitue les mêmes octets UTF-8 en CI sans dépendance cryptographique.
Codes courts sûrs pour l'impression et les QR
Encodez de courtes étiquettes pour que les codes imprimés évitent la confusion 0/O/I/l lorsque le personnel les saisit depuis du papier ou des photos de téléphone.
Enseigner les bases alternatives et l'alphabet Bitcoin
En classe et en atelier, encodez Hello World, examinez l'alphabet, puis forcez des caractères invalides pour montrer la validation stricte.
Questions fréquentes
Quel alphabet cet encodeur Base58 utilise-t-il ?
L'alphabet Bitcoin : 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz. Il exclut 0, O, I et l.
Base58 est-il identique à Base64 ?
Non. Base64 utilise soixante-quatre symboles dont +, / et le remplissage =, et conserve 0 et O. Base58 compte moins de glyphes ambigus et est courant dans les chaînes de style Bitcoin.
Cet outil valide-t-il des adresses Bitcoin complètes ?
Non. Il encode et décode uniquement du texte UTF-8 brut selon l'alphabet Base58 Bitcoin. Il ne vérifie ni les octets de version ni les sommes de contrôle double-SHA256.
L'encodeur Base58 est-il gratuit ?
L'outil du navigateur est gratuit et s'exécute localement.
Pourquoi ma chaîne Base58 est-elle refusée au décodage ?
Parce qu'elle contient un caractère absent de l'alphabet Bitcoin : zéro, O ou I majuscule, l minuscule, ponctuation ou espace. Le décodeur s'arrête avec un message clair au lieu de la transformer discrètement en un autre texte.
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 \
-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)Exemple de requête
{
"text": "Hello World"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.base58",
"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, ou decode pour récupérer l'UTF-8 depuis une charge Base58 ; les caractères hors alphabet renvoient une erreur invalid_input claire au lieu d'une corruption silencieuse. Le parcours est une arithmétique pure et déterministe sur des octets UTF-8 — sans réseau, sans graine aléatoire, sans dépendance à l'horloge — donc 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 selon l'alphabet Bitcoin. Le mode decode traite text comme une charge Base58 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 facultatif valant encode ou decode. La longueur d'entrée est plafonnée à cent mille caractères afin qu'une requête unique ne puisse épuiser la mémoire du Worker par une expansion pathologique de grands entiers. En cas de succès en encode, la réponse comprend mode, input, result et base58 avec la même chaîne encodée, alphabet avec la constante complète de cinquante-huit caractères, alphabet_name fixé à bitcoin, 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 en decode, la réponse comprend 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 textuel, entrée trop longue, mode inconnu, caractère Base58 invalide ou octets décodés qui ne sont pas de l'UTF-8 valide — renvoie invalid_input et n'est jamais facturée. Le tarif est un forfait de $0.002 par requête réussie avec l'unité item et un prix unitaire marginal nul.
Conseils pratiques, limites et différence avec Base64
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 échouées qui renvoient invalid_input ne consomment pas de solde prépayé, ce qui garde les scripts exploratoires peu coûteux lorsque vous testez des caractères hors alphabet.
Questions techniques
Que se passe-t-il si je décode une chaîne contenant 0, O, I ou l ?
L'API renvoie invalid_input, nomme le caractère fautif et son index, et rappelle que le Base58 Bitcoin exclut ces quatre glyphes. Les tâches échouées ne sont pas facturées.