Zum Inhalt springen
uencoder

Base58

Base58 ist eine menschenorientierte Binär-zu-Text-Kodierung mit 58 Zeichen (ohne die leicht verwechselbaren 0, O, I, l, + und / aus Base64), vor allem bekannt für Kryptowährungsadressen.

Zweck

Sie vermeidet Übertragungsfehler durch verwechselbare Zeichen (0/O, I/l) und hält die Ausgabe per Doppelklick selektierbar (ohne Zeichen, die das Terminal auftrennen würde).

Mechanismus

Der Eingangs-Bytestrom wird als ein einziger großer Integer behandelt, wiederholt modulo 58 reduziert, um jeden Zeichenindex abzuleiten (wie eine Basiskonversion); führende Null-Bytes werden auf führende 1en abgebildet. Da die Abbildung nicht bitausgerichtet ist, ist die kodierte Länge nicht fix und die Dekodierung erfordert Big-Integer-Arithmetik.

Anwendungsfälle

  • Kodierung von Bitcoin-/Litecoin-Adressen
  • Multibase-Darstellung von IPFS-CIDs
  • Monero-Adressen
  • Erzeugung von Kurzlinks und Einladungscodes

Beispiele

  • Eingabe
    Hello World
    Output
    JxF12TrwUP45BMd

    The Bitcoin Base58 alphabet

Häufige Fehler

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

Verwandte Begriffe

Verwandte Tools

References