tools / base58
base58/
Convertissez du texte ou de l'hex vers et depuis Base58 avec l'alphabet Bitcoin. Chaque octet 00 initial devient un 1 initial.
Entrée
Base58
Questions fréquentes
Pourquoi le Base58 exclut-il 0, O, I et l, et que faire si le décodage signale un caractère absent de l'alphabet ?
Le Base58 supprime le chiffre 0, le O majuscule, le I majuscule et le l minuscule, car on les confond facilement à la lecture ou à la copie à la main. Il reste 58 caractères : 1 à 9, A à Z sans I ni O, et a à z sans l. Quand le décodage rencontre un caractère hors de l'alphabet, l'outil indique de quel caractère il s'agit et où il se trouve. Vérifiez qu'il ne s'est pas glissé de guillemets, de ponctuation ou de caractères invisibles à la copie ; les espaces et les sauts de ligne sont ignorés automatiquement. Si la chaîne contient vraiment des 0, O, I ou l, ce n'est probablement pas du Base58 mais du Base64, de l'hex ou un autre encodage.
Le décodage Base58 indique que le résultat n'est pas du texte UTF-8 valide. Que faire ?
Les octets décodés ne sont pas du texte UTF-8. Les clés privées, les hachages de clé publique et les adresses sont des données binaires à l'origine. Passez le format de sortie en hex pour voir les octets bruts. Le texte est toujours traité en UTF-8 : des octets écrits en GBK ou dans un autre encodage ne peuvent pas être affichés comme du texte ici, utilisez un outil qui prend en charge cet encodage.
Que signifie le 1 en début de résultat Base58, et pourquoi un 00 initial en hex devient-il un 1 ?
Le Base58 traite toute la suite d'octets comme un grand entier dont il change la base, si bien que les octets 00 initiaux disparaîtraient, car ils n'ajoutent rien à la valeur. Par convention, chaque octet 00 initial s'écrit donc sous la forme d'un 1 initial (le premier caractère de l'alphabet). Par exemple, l'hex 0000010203 donne 11Ldp, et les deux 1 initiaux représentent les deux octets 00. Au décodage, chaque 1 initial redevient un octet 00 ; une entrée composée uniquement d'octets 00 se résume à une série de 1.
Peut-on décoder des adresses Bitcoin ici ? Et la somme de contrôle Base58Check ?
On obtient les octets, mais rien n'est vérifié. Les adresses Bitcoin utilisent le Base58Check : un octet de version, les données et une somme de contrôle de 4 octets, assemblés puis encodés en Base58. Cet outil ne fait que du Base58 simple : le décodage donne tous les octets bruts sans vérifier ni retirer la somme de contrôle, et l'encodage n'en ajoute pas. Par exemple, 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa se décode (avec la sortie en hex) en 25 octets : 1 octet de version 00, un hachage de 20 octets et, à la fin, une somme de contrôle de 4 octets.
Quelle différence entre Base58 et Base64 ?
Le Base64 utilise 64 caractères (dont + et /, avec un = de padding à la fin) et convertit 3 octets à la fois, il est donc rapide et la longueur de sortie est prévisible. Le Base58 supprime les caractères qui se ressemblent ainsi que +, / et =, si bien qu'un double-clic sélectionne toute la chaîne et que la copie à la main est moins sujette aux erreurs. En contrepartie, il divise un grand entier, donc il ralentit quand l'entrée grandit. C'est pourquoi on l'utilise surtout pour de courtes données comme les adresses et les clés, de quelques dizaines d'octets. Les deux sorties ne sont pas interchangeables.
Pourquoi mon résultat diffère-t-il de celui d'un autre site ou d'une bibliothèque ?
Vérifiez trois points. L'alphabet : cet outil utilise l'alphabet Bitcoin, celui de Flickr place les minuscules en premier et celui de Ripple suit encore un autre ordre, les résultats diffèrent donc. L'entrée : le texte est encodé en UTF-8 exactement comme saisi, donc un saut de ligne ou un espace en trop à la fin change le résultat. Le format d'entrée : pour encoder des octets en hex, choisissez hex, sinon 0a1b est traité comme un texte de quatre caractères. Une entrée hex peut utiliser comme séparateurs des espaces, des deux-points, des virgules ou des préfixes 0x, et doit comporter un nombre pair de chiffres.
Y a-t-il une limite de longueur pour l'entrée Base58 ?
Oui. L'encodage accepte jusqu'à 32768 octets et le décodage jusqu'à 45000 caractères ; au-delà, l'outil vous demande de découper l'entrée. La quantité de calcul du Base58 croît avec le carré de la longueur, la limite évite donc de figer la page. Avec quelques KB ou moins, le résultat est pratiquement instantané.
Ce que je saisis est-il envoyé quelque part ?
Non. L'encodage et le décodage se font dans votre navigateur et rien n'est envoyé à un serveur.