Base58-Encoder und -Decoder

Wandeln Sie Text, Hex-Bytes oder kleine Dateien in Base58 um und zurück. Wählen Sie das Bitcoin-, Flickr- oder Ripple-Alphabet und fügen Sie bei Bedarf eine Base58Check-Prüfsumme hinzu oder prüfen Sie sie.

Läuft vollständig in Ihrem Browser. Es wird nichts hochgeladen.

Anleitung

  1. Wählen Sie „Kodieren“, um Text oder Bytes in Base58 umzuwandeln, oder „Dekodieren“, um einen Base58-String wieder in Daten umzuwandeln.
  2. Wählen Sie unter „Alphabet“ die passende Variante. „Bitcoin“ ist voreingestellt und wird auch von IPFS und Solana verwendet.
  3. Geben Sie Ihre Eingabe ein oder fügen Sie sie ein. Stellen Sie die Eingabe auf Hex um, wenn Sie Rohbytes wie einen Hashwert oder einen öffentlichen Schlüssel haben.
  4. Aktivieren Sie die „Base58Check-Prüfsumme“ nur, wenn der String eine 4-Byte-Prüfsumme enthält. Kopieren Sie das Ergebnis anschließend oder laden Sie es herunter.

Was ist Base58?

Base58 ist eine Binär-zu-Text-Kodierung, die für Bitcoin entwickelt wurde. Ihr Alphabet besteht aus den 62 Ziffern und lateinischen Buchstaben, abzüglich vier leicht verwechselbarer Zeichen: 0 (Null), O (großes O), I (großes i) und l (kleines L). Außerdem fehlen +, / und =, sodass sich ein Base58-String per Doppelklick markieren und ohne Maskierung in eine URL einfügen lässt.

Anders als Base64 zerlegt Base58 die Eingabe nicht in Bitgruppen. Die gesamte Eingabe wird als eine einzige große Zahl behandelt und zur Basis 58 geschrieben. Es gibt daher keine Auffüllung, und die Änderung eines einzelnen Bytes kann viele Ausgabezeichen verändern. Führende Nullbytes haben keinen Zahlenwert; damit sie erhalten bleiben, wird jedes von ihnen als erstes Zeichen des Alphabets geschrieben (1 im Bitcoin-Alphabet). Die Ausgabe ist etwa 1,37-mal so groß wie die Eingabe.

Wo Base58 verwendet wird

  • Bitcoin. Legacy-Adressen und private WIF-Schlüssel sind Base58Check: Base58 mit einem Versionsbyte und einer Prüfsumme.
  • IPFS. Ein Content Identifier der Version 0 (CIDv0) ist die Base58-Form eines SHA-256-Multihashes. Deshalb sind diese CIDs 46 Zeichen lang und beginnen mit Qm.
  • Solana. Öffentliche Schlüssel, Kontoadressen und Transaktionssignaturen werden in einfachem Base58 ohne Prüfsumme geschrieben. Ein 32-Byte-Schlüssel ergibt meist 43 oder 44 Zeichen.
  • Flickr und XRP Ledger. Flickr-Kurzlinks verwenden das Flickr-Alphabet und XRP-Adressen das Ripple-Alphabet, weshalb sie mit r beginnen.

Um zwischen Base58 und Rohbytes umzuwandeln, verwenden Sie Base58 zu Hex und Hex zu Base58. Für Kennungen, die lediglich alphanumerisch sein müssen, lohnt sich ein Vergleich mit Base62.

Base58-Alphabete

AlphabetZeichen in Reihenfolge
Bitcoin123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
Flickr123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ
Ripplerpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz

Alle drei verwenden dieselben 58 Zeichen in unterschiedlicher Reihenfolge. Ein mit einem Alphabet kodierter String ergibt mit einem anderen Alphabet daher andere Bytes oder lässt sich gar nicht dekodieren.

Base58 im Code

# Python (pip install base58)
import base58
base58.b58encode(b'hello')      # b'Cn8eVZg'
base58.b58decode('Cn8eVZg')     # b'hello'

// JavaScript (npm install bs58)
import bs58 from 'bs58';
bs58.encode(new TextEncoder().encode('hello'));

Spezifikation

Alphabet1-9 A-Z a-z ohne 0 O I l
AusgabegrößeEtwa 137 % (Großzahl-Umrechnung)
AuffüllungKeine (führende Nullbytes werden zu 1)
StandardBitcoin Base58
Groß-/Kleinschreibung relevantJa

Beispiele

Eingabe (UTF-8)Ausgabe
Hello, World!72k1xXWG59fYdzSNoA
Base64.isr1Nm3AS7ZcnN
你好2xuZUfBKa

Häufig gestellte Fragen

Warum werden führende Nullbytes zu 1?
Base58 wandelt die Eingabe in eine einzige Zahl um, und führende Nullbytes ändern deren Wert nicht. Damit sie erhalten bleiben, wird jedes führende Nullbyte als erstes Zeichen des Alphabets geschrieben, im Bitcoin-Alphabet also als 1. Deshalb ergeben 32 Nullbytes eine Folge von 32 Einsen.
Unterscheidet Base58 zwischen Groß- und Kleinschreibung?

Ja. Groß- und Kleinbuchstaben sind unterschiedliche Ziffern. Ändert sich die Schreibweise auch nur eines Zeichens, ergeben sich andere dekodierte Bytes oder der String wird ungültig.

Was ist der Unterschied zwischen Base58 und Base58Check?
Base58Check hängt vor dem Kodieren eine 4-Byte-Prüfsumme an (den Anfang eines doppelten SHA-256-Hashwerts), sodass sich Tippfehler erkennen lassen. Aktivieren Sie hier die Option „Base58Check-Prüfsumme“ oder lesen Sie die Details auf der Seite Base58Check.
Warum ist die Eingabe auf etwa 20 KB begrenzt?
Da die gesamte Eingabe eine einzige große Zahl ist, wächst der Rechenaufwand mit dem Quadrat ihrer Länge. Base58 ist für Schlüssel, Hashwerte und Adressen gedacht, nicht für Dateien. Für große Datenmengen verwenden Sie Base64 oder Base85.