05 Was ist die Base58-Kodierung?

Base58 – Wikipedia

Base58 beschreibt ein Verfahren aus dem Computerbereich zur Kodierung von positiven ganzen Zahlen.

Das Alphabet von Base58 ergibt sich aus dem der Base62-Kodierung durch Weglassen der Zeichen

  • 0 (Null),
  • O (großes o),
  • I (großes i),
  • l (kleines L),
  • + (Plus),
  • / (Schrägstrich).

Das resultierende Alphabet der Länge 58 lautet 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz

Es besteht somit nur aus verwechslungsfreien alpha-numerischen Zeichen.

Verwendung findet die Base58-Kodierung typischerweise dort, wo lange Integer-Zahlen in kürzere Zeichenketten umgewandelt werden sollen und eine verwechslungsfreie Erkennung der Adresse sichergestellt sein soll, zum Beispiel bei Flickr-Kurz-URLs oder bei Bitcoin-Adressen.

Der Vorteil von Base58 im Vergleich zu Base62 und Base64 ist, dass eine Verwechslung zwischen ähnlich aussehenden Zeichen (0, O, o; 1, I, l) unabhängig vom verwendeten Schrift-Font ausgeschlossen ist. Außerdem ist wie bei Base62 (und im Gegensatz zu Base64) durch Verwendung von ausschließlich alpha-numerischen Zeichen (ohne + und /) sichergestellt, dass bei Doppelklick die gesamte Base58-Zeichenkette markiert wird und dass bei Verwendung z. B. in E-Mails kein unerwünschter Zeilenumbruch entsteht.

Der Nachteil ist eine etwas längere Zeichenfolge als bei einer Base62- oder Base64-Kodierung. Außerdem können zwei Zahlen, die in binärer Darstellung gleich viele Bits enthalten, in Base58-Darstellung unterschiedlich lang sein, weil 58 keine Zweierpotenz ist.