Comment décoder du Base58
- Collez la chaîne dans Entrée · Base58. Les espaces et les sauts de ligne sont ignorés.
- Lisez les octets dans Sortie · Hex. Sous la sortie, vous pouvez changer la Casse, ajouter un Séparateur comme une espace ou
:, ou couper le dump en 16 ou 32 Octets par ligne. - Si la chaîne n’est pas du Base58 de type Bitcoin, réglez l’Alphabet sous l’entrée sur Flickr ou Ripple.
- Pour d’autres vues, changez Vers : Texte si les données étaient une chaîne, Base64 pour une API ou un fichier de configuration. Base58 en Base64 est une page préréglée pour cette conversion.
- Copier la sortie, Télécharger l’hex, ou Enregistrer les octets pour récupérer les octets décodés sous forme de fichier.
En quoi se décodent les chaînes Base58 courantes
| Base58 | Octets (hex) | Ce que c’est |
|---|---|---|
11111111111111111111111111111111 | 32 × 00 | System Program de Solana (clé de 32 octets nuls) |
TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA | 06ddf6e1d765…7eff00a9 (32 octets) | ID du programme SPL Token de Solana |
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa | 00 62e907b1…ebb88f18 c29b7d93 | Adresse du bloc genesis de Bitcoin : version, hachage, somme de contrôle |
QmQudp5N7EzTxrBk3yESEKyEroMYNd7R22G2KWffwNZyzq | 1220 262a86b6…e0882d8a | CIDv0 IPFS : en-tête multihash SHA-256, empreinte de 32 octets |
9Ajdvzr | 48656c6c6f | Le texte Hello |
Lire les octets révèle la structure. Un résultat de 25 octets qui commence par 00 ou 05 est une adresse Bitcoin dont la somme de contrôle est encore attachée, un résultat de 34 octets qui commence par 1220 est un CIDv0, et 32 octets sans structure visible sont très probablement une clé publique.
Les 1 de tête sont des octets nuls
En Base58, chaque 1 de tête se décode en un octet 00, et le reste de la chaîne se décode comme un seul nombre. Ce décodeur conserve ces octets : l’adresse genesis ci-dessus renvoie donc 25 octets, pas 24. Un décodeur qui ne convertit que le nombre les perd, et le premier signe est généralement une clé à qui il manque un octet ou une somme de contrôle qui ne correspond jamais.
La règle vaut aussi dans l’autre sens : 1111 donne quatre octets nuls, tandis que 2 donne l’octet unique 01.
Quand le décodage échoue
- Caractère
"0","O","I"ou"l"inattendu. Ces quatre caractères ne font pas partie de l’alphabet Base58, qui les exclut parce qu’ils ressemblent à d’autres. L’erreur indique la position ; il s’agit généralement d’une erreur de recopie. +,/ou=inattendu. La chaîne est du Base64. Utilisez le décodeur Base64.- L’entrée commence par
bc1. C’est une adresse SegWit Bech32, un autre encodage avec sa propre somme de contrôle et son propre alphabet. Elle échoue ici ou se décode en octets sans signification. - L’hex est correct mais trop long de 4 octets. Vous avez décodé une valeur Base58Check comme du Base58 simple. Les 4 derniers octets sont la somme de contrôle ; retirez-les ou utilisez Base58Check.
- Entrée de plus de 64 Ko. Base58 traite toute l’entrée comme un seul nombre : l’outil s’arrête donc à 64 Ko pour rester réactif. Les vraies valeurs Base58 font quelques dizaines de caractères.
Décoder du Base58 en hex en JavaScript
BigInt rend la conversion courte. Ceci fonctionne dans les navigateurs et dans Node.js :
const ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
function base58ToHex(s) {
let n = 0n;
for (const ch of s) {
const v = ALPHABET.indexOf(ch);
if (v < 0) throw new Error(`not Base58: ${ch}`);
n = n * 58n + BigInt(v);
}
let hex = n === 0n ? "" : n.toString(16);
if (hex.length % 2) hex = "0" + hex;
const zeros = s.length - s.replace(/^1+/, "").length;
return "00".repeat(zeros) + hex;
}
base58ToHex("1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa");
// '0062e907b15cbf27d5425399ebf6f0fb50ebb88f18c29b7d93'
Pour d’autres manipulations d’octets en JavaScript, voir la page JavaScript.
FAQ
Comment décoder une adresse Solana ?
Collez-la ici : la sortie hex est la clé publique Ed25519 de 32 octets. L’adresse du System Program 11111111111111111111111111111111 se décode en 32 octets nuls, ce qui montre vite la règle des zéros de tête en action.
Pourquoi mon adresse Bitcoin se décode-t-elle en 25 octets ?
Une adresse legacy est du Base58Check : 1 octet de version, un hachage de clé publique de 20 octets et une somme de contrôle de 4 octets. Le décodage Base58 simple renvoie les 25 octets. Le décodeur Base58Check vérifie la somme de contrôle et la retire pour vous.
Pourquoi le décodeur rejette-t-il ma chaîne ?
Base58 n’a ni 0, ni O, ni I, ni l : l’un d’eux signale généralement une faute de frappe ou un autre encodage. Une chaîne avec +, / ou = est du Base64, et 0x… de l’hex.
Comment convertir du Base58 en hex en JavaScript ?
Construisez un BigInt chiffre par chiffre, affichez-le avec toString(16), puis ajoutez 00 pour chaque 1 de tête. L’extrait de cette page montre la fonction complète.