ForHosting KIT · Outils pour développeurs

Encodeur Base58Check

Des données d'adresse Bitcoin de 21 octets deviennent 16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM, 33 caractères qui portent une somme de contrôle double SHA-256 de quatre octets : un caractère mal recopié échoue à la vérification au lieu de donner de faux octets. Gratuit dans votre navigateur.

  • Gratuit
  • Fonctionne dans votre navigateur
  • Sans inscription
  • Vos données restent sur votre appareil
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt
Si vous saisissez
Mode de calcul
Encode
Format de sortie
Hex
Vous obtenez
Résultat
16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM
Base58Check
16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM
Somme de contrôle (hex)
d61967f6
Nom de l'alphabet
bitcoin

Base58Check est le format binaire vers texte de Bitcoin qui enveloppe une charge utile d’une somme de contrôle de quatre octets dérivée d’un double SHA-256, puis encode toute la séquence avec l’alphabet Base58 Bitcoin. Contrairement au Base58 simple, un seul caractère modifié fait presque toujours échouer la vérification de la somme au lieu de décoder en silence des octets erronés — critique pour les adresses de portefeuille, les clés privées WIF et toute chaîne copiée à la main.

Ce que Base58Check ajoute par rapport à Base58

Le Base58 simple projette des octets sur cinquante-huit caractères non ambigus en traitant la charge comme un entier big-endian et en divisant de façon répétée par cinquante-huit, avec l’alphabet Bitcoin qui exclut le zéro, le O majuscule, le I majuscule et le L minuscule. Cet encodage est lisible pour l’humain mais n’offre aucune protection d’intégrité : un glyphe mal saisi devient une autre chaîne valide qui décode en octets différents. Base58Check comble ce manque.

Avant d’encoder, l’encodeur calcule le SHA-256 de la charge, puis le SHA-256 de ce condensé, et ajoute les quatre premiers octets du hachage externe comme somme de contrôle. Le tampon combiné — charge d’origine plus ces quatre octets — est ensuite encodé en Base58 exactement comme le Base58 brut, y compris la convention zéros initiaux vers uns initiaux.

Au décodage, le processus s’inverse : le décodage Base58 produit des octets ; les quatre derniers sont la somme revendiquée ; le double SHA-256 de la charge restante doit égaler ces quatre octets, sinon l’opération échoue. Quatre octets de somme donnent en pratique une chance sur environ quatre milliards qu’une faute d’un caractère passe inaperçue, c’est pourquoi les adresses P2PKH Bitcoin, de nombreuses clés étendues et les outils associés standardisent cette construction.

Cette page cible les recherches d’un encodeur Base58Check, d’un décodeur Base58Check ou d’un convertisseur de somme Bitcoin en ligne ; ce n’est pas du Base58 simple sans somme, ni du Base64, ni un classifieur complet de types d’adresse interprétant les octets de version sur chaque réseau.

Conseils pratiques, vecteurs classiques et différences avec le Base58 simple

Préférez encode lorsque vous disposez d’un hachage préfixé de version ou d’une autre charge binaire en hex et avez besoin d’une chaîne sûre à coller avec intégrité ; préférez decode lorsque vous tenez déjà une chaîne de type adresse Base58Check et devez récupérer la charge seulement si la somme est intacte. Gardez les requêtes sous la limite de caractères publiée ; les charges extrêmement longues s’étendent en grands entiers et se traitent mieux hors ligne.

Utilisez le Base58 simple frère lorsque vous n’avez besoin que d’une conversion d’alphabet sans sommes ; utilisez cette capacité Base58Check lorsque l’intégrité compte. En enseignement, montrez la même charge encodée avec et sans somme pour que les apprenants voient pourquoi les chaînes style Bitcoin sont plus longues et pourquoi une faute d’un caractère échoue presque toujours de façon fermée plutôt que d’ouvrir le mauvais portefeuille.

Intégrité du copier-coller pour les outils d’exploitation

Encodez des étiquettes binaires versionnées pour que le personnel colle des chaînes qui échouent de façon fermée en cas de faute plutôt que de décoder en silence des octets erronés.

Quelle est la différence entre Base58 et Base58Check ?

Base58 se contente de projeter des octets sur l’alphabet Bitcoin. Base58Check ajoute d’abord quatre octets du double SHA-256 de la charge, puis encode en Base58 la charge plus la somme pour que le decode vérifie l’intégrité.

Que se passe-t-il si la somme de contrôle ne correspond pas ?

Les tâches en échec ne sont pas facturées.

Quel alphabet utilise cet outil Base58Check ?

L’alphabet Bitcoin : 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz. Il exclut 0, O, I et l.

La charge doit-elle être en hex ou en texte brut ?

Le format par défaut est hex (chiffres hexadécimaux de longueur paire), aligné sur les outils Bitcoin. Réglez format sur utf8 uniquement lorsque la charge est un vrai texte UTF-8.

Quelle est la probabilité qu'une faute de frappe échappe à Base58Check ?

Elle est très faible. Les quatre octets de contrôle laissent environ une chance sur quatre milliards qu'un seul caractère erroné passe inaperçu : un caractère modifié échoue presque toujours à la vérification au lieu de se décoder en octets erronés.

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.

POSThttps://api.kit.forhosting.com/enc/base58-check

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é.

curl -X POST https://api.kit.forhosting.com/enc/base58-check \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"00010966776006953D5567439E5E39F86A0D273BEE"}'
{
  "text": "00010966776006953D5567439E5E39F86A0D273BEE"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.base58_check",
  "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.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Cet encodeur Base58Check accepte une charge en hex ou UTF-8 et renvoie une chaîne Base58Check ; le décodeur inverse le mappage, recalcule SHA256(SHA256(payload)) et signale une erreur invalid_input claire lorsque la somme stockée ne correspond pas. Le chemin est une arithmétique purement déterministe — sans réseau, sans graines aléatoires, sans horloge — de sorte que l’exécuteur gratuit du navigateur et l’API prépayée renvoient toujours le même JSON.

Comment appeler l’API et ce que contient la réponse

Avec format utf8, text est encodé en octets UTF-8 avant le calcul de la somme. Le mode decode traite text comme une chaîne Base58Check sous l’alphabet Bitcoin, vérifie la somme double SHA-256 et renvoie la charge en hex minuscule si format est hex, ou en chaîne UTF-8 si format est utf8 (les charges binaires non UTF-8 valides doivent utiliser hex). Envoyez un corps JSON avec un champ chaîne obligatoire text (alias input, value, data et payload), un mode optionnel encode ou decode (par défaut encode) et un format optionnel hex ou utf8 (par défaut hex). Les espaces dans l’hex sont retirés ; longueur impaire ou chiffres non hex renvoient invalid_input. En cas d’encode réussi, la réponse inclut mode, format, input, result et base58check avec la même chaîne encodée, payload_hex, checksum_hex, la constante alphabet et alphabet_name bitcoin, payload_bytes, output_length et un court message en anglais. En cas de decode réussi, vous obtenez aussi checksum_valid à true, input_length et un message confirmant la vérification. Une validation échouée — text manquant, hex incorrect, mode ou format inconnu, caractères Base58 invalides, charges trop courtes pour une somme, ou somme incorrecte — 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.

Conseils pratiques, vecteurs classiques et différences avec le Base58 simple

Les tests de fumée aller-retour sont directs : encodez la charge hex connue 00010966776006953D5567439E5E39F86A0D273BEE, confirmez le résultat 16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM, décodez cette chaîne et confirmez payload_hex et checksum_hex d61967f6. Inversez volontairement le dernier caractère d’une chaîne valide et vérifiez que votre client gère invalid_input avec un message nommant les sommes de quatre octets reçue et attendue. Les tâches en échec qui renvoient invalid_input ne consomment pas le solde prépayé, ce qui rend les scripts exploratoires peu coûteux lors de tests de mauvaises sommes.

Tests de fixtures de portefeuille et d’adresses

Construisez des fixtures CI à partir de charges hex connues, affirmez que l’encode Base58Check correspond aux chaînes golden et rejetez les adresses altérées via une somme incorrecte.

Enseignement des sommes de contrôle double SHA-256

En classe, encodez un vecteur Bitcoin classique, inspectez checksum_hex, puis modifiez un caractère pour démontrer invalid_input.

L’encodeur Base58Check est-il gratuit ?

L’outil navigateur est gratuit et s’exécute localement. Les appels API utilisent le solde prépayé KIT à $0.002 par requête réussie ; les échecs invalid_input ne sont jamais facturés.

Consulter la documentation complète du KIT →