Aller au contenu
uencoder

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 World
    Output
    JxF12TrwUP45BMd

    The 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

Termes associés

Outils associés

References