Encodeur et décodeur Base58
Entrée
Base58 est un encodage binaire vers texte conçu pour éviter plusieurs caractères faciles à confondre. L’alphabet Bitcoin omet 0 O I l ainsi que + /, tandis que d’autres systèmes ordonnent différemment les mêmes 58 symboles. Les anciennes adresses Bitcoin en Base58Check et les chaînes IPFS CIDv0 en sont des exemples connus. Cet outil entièrement exécuté dans le navigateur convertit du texte UTF-8 ou des octets hexadécimaux exacts avec l’alphabet Bitcoin, Ripple ou Flickr, et refuse tout caractère absent de l’alphabet choisi.
Comment encoder et décoder Base58
-
1
Entrez des octets ou une chaîne Base58
La direction d'encodage accepte le texte hexadécimal ou brut ; la direction de décodage accepte Base58.
-
2
Choisissez l'alphabet si nécessaire
Par défaut, c'est le Base58 de Bitcoin ; des variantes Ripple et Flickr sont disponibles pour la compatibilité.
-
3
Exécutez la conversion
Base58 ne se divise pas en groupes de 5 ou 6 bits ; il est traité comme un seul entier big-endian, divisé par 58 de manière répétée.
-
4
Copiez le résultat
Les chaînes encodées conservent les octets nuls en tête sous forme de caractères `1` (le glyphe zéro dans l'alphabet de Bitcoin).
L’alphabet Base58 de Bitcoin
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
Remarquez ce qui manque : 0, O, I, l. Le premier caractère de l’alphabet est 1, qui représente l’entier 0.
Comment cela fonctionne réellement
Contrairement à Base64 qui divise les bits en groupes fixes, Base58 traite l’ensemble de la chaîne d’octets comme un seul entier big-endian N et l’exprime en base 58 :
result = []
while N > 0:
result.prepend(alphabet[N mod 58])
N = N / 58
for each leading zero byte in input:
result.prepend(alphabet[0]) # c'est-à-dire '1'
C’est pourquoi l’encodage Base58 n’est pas trivial à diffuser, vous avez besoin du nombre entier avant de pouvoir émettre un caractère.
Base58 vs Base58Check
La charge Base58Check typique d’une ancienne adresse P2PKH compte 25 octets : 1 octet de version, 20 octets de hachage et 4 octets de somme de contrôle. La somme correspond aux 4 premiers octets du double SHA-256 de la version et du hachage. L’encodage Base58 de cette charge complète produit la chaîne d’adresse connue.
Cet outil convertit uniquement le Base58 simple. Utilisez un validateur Base58Check dédié pour vérifier la version et la somme de contrôle d’une adresse.
Variantes d’alphabet
| Variante | Où c’est utilisé | Différences par rapport à Bitcoin |
|---|---|---|
| Bitcoin | Adresses BTC, CIDv0 IPFS | Référence |
| Ripple | Adresses XRP | Positions échangées |
| Flickr | URLs de photos courtes | Minuscules avant majuscules |
Pourquoi ne pas simplement utiliser Base64 ?
Base64 n’a pas de changement de longueur entre le binaire et le texte encodé (4 caractères par 3 octets), ce qui est efficace. Base58 a un léger surcoût variable mais pas de caractères ambigus, ce qui est ce que vous voulez lorsque quelqu’un doit copier une adresse à la main ou la lire au téléphone.
Questions fréquentes
Pas universellement. Base58 est meilleur lorsque les humains manipulent la chaîne ; Base64 est meilleur lorsque les machines la transportent. Base64 encode 6 bits par caractère contre environ 5,86 pour Base58, donc Base64 est légèrement plus compact.
Base58 encode un grand entier, donc la longueur varie d’un caractère ou deux selon les bits de poids fort. Les adresses P2PKH typiques font 34 caractères mais 33 est possible.
L’outil peut décoder la chaîne en octets bruts ; choisissez la sortie hexadécimale pour afficher sans perte tous les octets. Il ne vérifie ni la version ni la somme de contrôle. Un décodage réussi ne prouve donc pas que l’adresse est valide ; utilisez un validateur Base58Check pour cela.
Oui. Chaque octet nul au début de l’entrée devient un caractère 1 dans la sortie, ce qui explique pourquoi les adresses Bitcoin commencent par 1.
Outils similaires
Encodeur de chiffre A1Z26
Encodez du texte en utilisant le chiffre A1Z26 (A=1, B=2, ... Z=26) ou décodez une séquence de nombres en lettres, avec un séparateur personnalisable.
Encodeur et décodeur Base85
Encodez et décodez Base85 dans la variante Adobe Ascii85, celle utilisée dans les fichiers PostScript et PDF. Plus compact que Base64 pour les données binaires.
Encodeur de fichiers Base64
Encodez n'importe quel fichier (PDF, ZIP, image, exécutable) en texte Base64 pour l'intégration dans JSON, email, YAML ou URI de données. Fonctionne localement, sans téléchargement.
Générateur bcrypt
Générez un hachage bcrypt à partir d'un mot de passe en clair. Facteur de coût ajustable de 4 à 13, compatible avec Laravel, Django, Node et PHP.
Encodeur de César
Cryptez et décryptez du texte en utilisant le chiffre de César. Tout décalage de 1 à 25, prend en charge ROT13 comme un cas spécial, préserve la ponctuation et la casse.
Encodeur et décodeur Base32
Encodez et décodez des chaînes Base32 en utilisant l'alphabet RFC 4648. Utile pour les secrets TOTP, les jetons insensibles à la casse et les identifiants saisis par des humains.