Mode d’emploi
- Collez les octets hexadécimaux dans la zone de saisie. Les espaces, les deux-points et le préfixe 0x sont acceptés.
- Lisez le résultat Base58 dans la sortie.
- Copiez-le, ou cliquez sur « Inverser entrée et sortie » pour redécoder du Base58 en hexadécimal.
Comment l’hexadécimal devient du Base58
Les chiffres hexadécimaux sont d’abord convertis en octets, à raison de deux chiffres par octet : l’entrée doit donc comporter un nombre pair de chiffres. Les octets sont ensuite lus comme un seul nombre gros-boutiste (big-endian) et réécrits en base 58 avec l’alphabet Bitcoin. Chaque octet 00 de tête est écrit sous la forme d’un 1 : c’est pourquoi 0000ff devient 115Q, alors que ff seul devient 5Q.
Base58 a besoin d’environ 1,37 caractère par octet : 64 chiffres hexadécimaux (32 octets) se réduisent donc à 43 ou 44 caractères. L’alphabet ne contient ni 0, ni O, ni I, ni l, ni +, ni / : le résultat se lit facilement à voix haute, se sélectionne d’un double-clic et s’insère sans problème dans une URL. Tout est calculé dans votre navigateur.
Construire des identifiants Solana et IPFS
- Solana : une adresse est la clé publique Ed25519 de 32 octets écrite en Base58, sans préfixe ni somme de contrôle. Collez la clé hexadécimale de 64 chiffres pour obtenir l’adresse.
- IPFS CIDv0 : un CIDv0 est un multihash sha2-256 écrit en Base58. Placez
1220devant le condensat de 64 chiffres et vous obtenez une chaîne de 46 caractères qui commence parQm. Le condensat doit être celui qu’IPFS a calculé pour le bloc encodé, qui n’est pas le même que le SHA-256 du fichier d’origine.
1220 9d6c2be50f706953479ab9df2ce3edca90b68053c00b3004b7f0accbe1e8eedf
QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG
Les adresses Bitcoin exigent une somme de contrôle
Un hash160 seul n’est pas une adresse. Une ancienne adresse Bitcoin est l’encodage Base58Check de l’octet de version 00 suivi du hash160 de 20 octets, ce qui ajoute une somme de contrôle double SHA-256 de 4 octets avant l’encodage. Encoder 00 et le hash160 en Base58 simple donne une chaîne plus courte, sans somme de contrôle, que les portefeuilles rejettent.
Utilisez plutôt la page Base58Check : réglez l’entrée sur Hexa, saisissez 00 suivi du hash160, et la somme de contrôle est ajoutée automatiquement. Si votre hexadécimal se termine déjà par la bonne somme de contrôle, cette page produit la même adresse.
0062e907b15cbf27d5425399ebf6f0fb50ebb88f18 (Base58Check)
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
Hexa en Base58 dans le code
# Python (pip install base58)
import base58
base58.b58encode(bytes.fromhex('0000ff')) # b'115Q'
// JavaScript (npm install bs58)
import bs58 from 'bs58';
bs58.encode(Buffer.from('0000ff', 'hex')); // '115Q'
Questions fréquentes
Comment transformer un hash160 en adresse Bitcoin ?
Pourquoi le résultat commence-t-il par plusieurs caractères 1 ?
Votre hexadécimal commence par autant d’octets 00. Base58 les conserve sous forme de 1 de tête afin qu’ils soient restaurés lors du décodage de la chaîne.
Pourquoi mon entrée hexadécimale est-elle refusée ?
L’hexadécimal exige un nombre pair de chiffres et uniquement les caractères 0-9 et a-f, en majuscules ou en minuscules. Les espaces, les deux-points et le préfixe 0x sont supprimés automatiquement ; toute autre anomalie, comme une lettre g égarée ou un chiffre manquant, provoque une erreur.