araç köşesi

Encodeur et décodeur Base58 (alphabet Bitcoin)

Encodez un texte ou des octets hexadécimaux en Base58, décodez du Base58 et vérifiez la somme de contrôle Base58Check

Vos données restent chez vous. La conversion se fait dans le navigateur ; rien n'est envoyé à un serveur.

Comment ça marche

Collez à gauche le texte à encoder ou la chaîne Base58 à décoder, puis choisissez Encoder ou Décoder dans le réglage Sens. Le mot « hello » devient Cn8eVZg : cinq octets, sept caractères. Si vous travaillez sur des données binaires comme une clé, une empreinte ou une adresse, réglez Format des données sur Octets hexadécimaux. Encoder 00 00 01 donne 112, car chaque octet nul en tête s'écrit comme un 1 à part. Pour contrôler une ancienne adresse Bitcoin ou une clé privée au format WIF, mettez Base58Check sur Oui et choisissez Décoder : l'outil sépare les 4 derniers octets, calcule le double SHA-256 du reste et affiche VALIDE ou NON VALIDE sur la ligne de résultat. Une adresse avec un seul caractère mal recopié échoue à ce contrôle. Si la chaîne contient 0, O, I ou l, l'outil vous dit que ce caractère n'appartient pas à l'alphabet Base58 et à quelle position il se trouve. Tout se passe dans votre navigateur : aucune adresse ni clé n'est envoyée à un serveur.

Cet outil est aussi connu sous le nom de encoder base58.

Qu'est-ce que Base58 ?

Base58 lit une suite d'octets comme un seul grand entier et l'écrit en base 58. Son alphabet se compose de chiffres et de lettres, sans 0, O, I ni l, et sans ponctuation. Contrairement à Base64, qui travaille par groupes de bits, il s'agit d'un changement de base numérique : les octets nuls en tête disparaîtraient du nombre, ils sont donc écrits chacun sous la forme d'un 1 supplémentaire. Les adresses Bitcoin, les identifiants IPFS et les adresses Solana utilisent cet encodage.

Qu'est-ce que Base58Check ?

Base58Check ajoute une détection d'erreur à Base58. Un octet de version est placé devant les données, et les 4 premiers octets du double hachage SHA-256 des données sont ajoutés à la fin ; le tout est ensuite écrit en Base58. Le décodeur recalcule le hachage et le compare aux 4 derniers octets. Les anciennes adresses Bitcoin (qui commencent par 1 ou 3) et les clés privées au format WIF sont en Base58Check.

Quelle est la différence entre Base58 et Base58Check ?

Base58 n'est qu'une façon d'écrire des octets : il utilise des caractères sans ambiguïté mais ne remarque pas un caractère mal recopié, une chaîne abîmée se décode simplement en un autre nombre. Base58Check s'écrit de la même manière et ajoute une somme de contrôle de 4 octets à la fin ; au décodage, elle est recalculée et une seule erreur de caractère est repérée. Les chaînes où une faute peut coûter de l'argent, comme les adresses Bitcoin et les clés WIF, utilisent Base58Check ; les identifiants IPFS sont en Base58 simple.

Ce que prouve une somme de contrôle Base58Check, et ce qu'elle ne prouve pas

Base58Check ajoute 4 octets tirés du SHA-256 du SHA-256 des données. Si l'adresse est mal recopiée ou tronquée, ces 4 octets ne correspondent plus ; la probabilité qu'une adresse fausse passe par hasard est d'environ 1 sur 4,3 milliards. Un résultat VALIDE indique donc presque à coup sûr que la chaîne ne contient pas de faute de frappe.

Le contrôle ne dit pas à qui appartient l'adresse ni à quel réseau elle sert. Le premier octet décodé est un octet de version (00 pour une adresse Bitcoin du réseau principal, d'où le 1 initial), et un autre réseau qui suit la même structure passe aussi le contrôle. Avant d'envoyer de l'argent, comparez l'adresse dans votre propre portefeuille avec celle que vous montre le destinataire. Les adresses qui commencent par bc1 sont en Bech32 et non en Base58 ; cet outil ne les décode pas.

Texte ou octets hexadécimaux : quel format choisir ?

Base58 sert surtout pour des données binaires : adresses Bitcoin, clés privées, identifiants de contenu IPFS (CIDv0, qui commencent par Qm) et adresses de comptes Solana. Les décoder ne donne pas de texte lisible, choisissez donc Octets hexadécimaux. Si Texte est choisi et que les octets ne forment pas de l'UTF-8 valide, l'outil passe de lui-même à l'hexadécimal et le signale.

Pour transformer un court texte en identifiant compact et sans ambiguïté, choisissez Texte (UTF-8) ; les lettres accentuées prennent deux octets en UTF-8 et allongent un peu le résultat. Base58 traite toute l'entrée comme un seul nombre et ralentit sur les longs contenus ; au-delà de quelques kilo-octets, préférez Base64.

Questions fréquentes

Comment décoder une chaîne Base58 ?

Collez la chaîne dans le panneau de gauche et choisissez Décoder. Pour une adresse ou une clé, réglez Format des données sur Octets hexadécimaux afin de voir les octets un par un. Pour une chaîne Base58Check, la ligne de résultat indique aussi si le contrôle est valide.

Pourquoi Base58 n'utilise-t-il pas 0, O, I et l ?

Dans beaucoup de polices, le zéro ressemble au O majuscule et le I majuscule au l minuscule. Les adresses Bitcoin devaient pouvoir être lues et recopiées à la main, ces quatre caractères ont donc été retirés. Il n'y a pas non plus de + ni de / : un double-clic sélectionne toute l'adresse.

Comment vérifier qu'une adresse Bitcoin est valide ?

Collez l'adresse, choisissez Décoder, Octets hexadécimaux et Base58Check sur Oui. Si la ligne de résultat affiche VALIDE ✓, l'adresse ne contient pas de faute de frappe. Cela vaut pour les anciennes adresses commençant par 1 ou 3 ; celles qui commencent par bc1 utilisent un autre format.

Quelle est la différence entre Base58 et Base64 ?

Base64 découpe les données en groupes de 6 bits, il est rapide et utilise + / et =. Base58 convertit toute l'entrée en un nombre en base 58 ; il n'utilise aucun symbole et écarte les caractères qui se ressemblent, mais il est plus lent. Base64 convient aux longues données et aux fichiers, Base58 aux identifiants courts destinés à être lus.