Base58
Base58 est un encodage binaire-vers-texte orienté humain utilisant 58 caractères (en retirant de Base64 les caractères facilement confondus 0, O, I, l, + et /), surtout connu pour les adresses de cryptomonnaies.
Objectif
Elle évite les erreurs de transcription dues aux caractères similaires (0/O, I/l) et garde la sortie sélectionnable par double-clic (aucun caractère que le terminal scinderait).
Mécanisme
Le flux d'octets d'entrée est traité comme un seul grand entier, réduit à plusieurs reprises modulo 58 pour dériver chaque index de caractère (comme une conversion de base) ; les octets nuls initiaux correspondent à des 1 initiaux. Comme la correspondance n'est pas alignée sur les bits, la longueur encodée n'est pas fixe et le décodage exige une arithmétique de grands entiers.
Cas d’usage
- Encodage d'adresses Bitcoin / Litecoin
- Représentation multibase des CID IPFS
- Adresses Monero
- Génération de liens courts et de codes d'invitation
Exemples
- entrée
Hello WorldOutputJxF12TrwUP45BMdThe Bitcoin Base58 alphabet
Erreurs courantes
- Assuming Base58 works on 6-bit groups (it is actually big-integer modulo arithmetic)
- Use a big-integer, byte-by-byte implementation or a mature library