Comment convertir du Base58 en Base64
- Collez la chaîne Base58 dans Entrée · Base58. Les sauts de ligne et les espaces sont ignorés.
- Si elle n’utilise pas l’alphabet Bitcoin, réglez l’Alphabet sous l’entrée sur Flickr ou Ripple.
- Lisez le Base64 dans Sortie · Base64. Sous la sortie, décochez Remplissage (=) pour du Base64 sans remplissage, ou réglez le Retour à la ligne sur 64 ou 76 colonnes.
- Copier la sortie, ou utilisez Base64 → Base58 dans le sélecteur de sens pour l’opération inverse ; la page Base64 en Base58 démarre dans ce sens.
Les compteurs sous l’outil affichent la longueur d’entrée, le nombre d’Octets décodés et la longueur de sortie. Le nombre d’octets est la vérification la plus rapide pour savoir si vous avez collé une clé entière : 32 pour une clé publique Solana, 64 pour une signature ou une paire de clés, 34 pour un CIDv0 IPFS.
Exemples
| Base58 | Base64 | Octets |
|---|---|---|
9Ajdvzr | SGVsbG8= | 5, le texte Hello |
11111111111111111111111111111111 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= | 32 octets nuls |
TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA | Bt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKk= | 32, programme SPL Token de Solana |
QmQudp5N7EzTxrBk3yESEKyEroMYNd7R22G2KWffwNZyzq | EiAmKoa2duWGnt1dGt+P/QHWKcMVS/3q7PyM+g2Q4Igtig== | 34, CIDv0 IPFS |
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa | AGLpB7FcvyfVQlOZ6/bw+1DruI8Ywpt9kw== | 25, adresse Bitcoin avec somme de contrôle |
Tout CIDv0 se convertit en un Base64 qui commence par EiA : c’est l’en-tête multihash 12 20 (SHA-256, 32 octets). Retirez les deux premiers octets et vous obtenez l’empreinte nue, la forme qu’affiche un outil SHA-256.
Pourquoi les données Solana apparaissent dans les deux encodages
Solana affiche les clés publiques, les ID de programmes et les signatures de transactions en Base58 dans les portefeuilles et les explorateurs. Son API JSON-RPC, en revanche, accepte les transactions sérialisées en Base64 ou en Base58, et présente Base58 comme le choix lent et déprécié. Les données de compte reviennent en Base64 si vous demandez cet encodage. La même clé de 32 octets peut donc apparaître en Base58 à un endroit et dans du Base64 à un autre.
La conversion ne change pas les octets, ce qui en fait un moyen sûr de comparer deux valeurs : si une clé Base58 et une clé Base64 donnent ici le même Base64, c’est la même clé.
Base58 en Base64 en Python
La bibliothèque standard a Base64 mais pas Base58 : la première moitié est donc une courte boucle.
import base64
ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
def base58_to_base64(s: str) -> str:
n = 0
for ch in s:
n = n * 58 + ALPHABET.index(ch)
body = n.to_bytes((n.bit_length() + 7) // 8, "big")
zeros = len(s) - len(s.lstrip("1"))
return base64.b64encode(b"\0" * zeros + body).decode()
base58_to_base64("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA")
# 'Bt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKk='
ALPHABET.index lève ValueError sur les caractères hors Base58, comme 0 ou l. D’autres manipulations de Base64 en Python se trouvent sur la page Python.
Problèmes courants
- Il manque un octet. Le convertisseur utilisé auparavant a supprimé un octet nul de tête. Cette page les conserve ; comparez les sorties.
- Erreur sur un
0,O,Ioul. Ces caractères ne font pas partie de Base58. Cherchez une erreur de copie ou d’OCR. - L’entrée commence par
bc1,0xoubafy. Ce sont respectivement du Bech32, de l’hex et du Base32 (CIDv1 IPFS), pas du Base58. Pour un CIDv1, le décodeur Base32 explique comment le lire. - La sortie fait 4 octets de plus que prévu. La chaîne était du Base58Check, et la somme de contrôle est toujours attachée.
FAQ
Comment convertir une clé publique Solana en Base64 ?
Collez l’adresse dans l’entrée. Une clé publique Solana valide se décode en exactement 32 octets : la sortie Base64 fait donc toujours 44 caractères terminés par un =, ou 43 sans remplissage.
Pourquoi le Base64 commence-t-il par A ?
L’entrée Base58 commençait par 1, qui se décode en octet nul. Base64 tire son premier caractère des 6 premiers bits, et six bits à zéro donnent A. C’est pourquoi l’adresse Bitcoin 1A1zP1… devient AGLp….
Comment obtenir du Base64 URL-safe à la place ?
Copiez le résultat dans Base64 en Base64URL, qui remplace + et / par - et _ et retire le remplissage. Décochez Remplissage (=) ici si vous voulez seulement supprimer les =.
La sortie est-elle différente pour les chaînes Base58Check ?
La conversion est la même, mais le Base64 contient alors l’octet de version et la somme de contrôle de 4 octets. Décodez d’abord avec l’outil Base58Check si vous ne voulez que le payload.