Base58-zu-Hex-Konverter

Fügen Sie einen Base58-String wie eine Bitcoin-Adresse, einen öffentlichen Solana-Schlüssel oder einen IPFS-Hash ein und erhalten Sie seine Rohbytes in hexadezimaler Schreibweise. Jede führende 1 wird zu einem 00-Byte.

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

Anleitung

  1. Fügen Sie den Base58-String in das Eingabefeld ein. Leerzeichen und Zeilenumbrüche werden ignoriert.
  2. Lesen Sie die dekodierten Bytes in hexadezimaler Schreibweise in der Ausgabe ab.
  3. Kopieren Sie das Hex, oder klicken Sie auf „Eingabe und Ausgabe tauschen“, um Hex wieder in Base58 umzuwandeln.

Wie aus Base58 Hex wird

Base58 liest den gesamten String als eine einzige große Zahl, geschrieben mit dem 58 Zeichen umfassenden Bitcoin-Alphabet, das 0, O, I und l auslässt. Bei der Umwandlung in Hex wird dieselbe Zahl zur Basis 16 geschrieben, zwei Hex-Ziffern pro Byte, sodass nichts hinzukommt oder verloren geht.

Nullbytes am Anfang der Daten haben keinen Zahlenwert, daher hält Base58 jedes davon als führende 1 fest, das erste Zeichen seines Alphabets. Der Decoder macht aus jeder führenden 1 wieder ein 00-Byte. So wird 115Q zu 0000ff dekodiert, und die Adresse des Solana System Program, zweiunddreißig 1-Zeichen hintereinander, ergibt 32 Nullbytes. Die Umwandlung läuft lokal in Ihrem Browser.

Beispiele für Bitcoin, Solana und IPFS

Im folgenden Hex sind Leerzeichen eingefügt, um die einzelnen Bestandteile zu zeigen:

Bitcoin-Adresse (P2PKH, Genesis-Block)
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
00 62e907b15cbf27d5425399ebf6f0fb50ebb88f18 c29b7d93
Version | hash160 (20 Bytes) | Prüfsumme (4 Bytes)

Öffentlicher Solana-Schlüssel (SPL-Token-Programm)
TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
06ddf6e1d765a193d9cbe146ceeb79ac1cb485ed5f5b37913a8cf5857eff00a9
32 Bytes, kein Versionsbyte, keine Prüfsumme

IPFS CIDv0
QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG
12 20 9d6c2be50f706953479ab9df2ce3edca90b68053c00b3004b7f0accbe1e8eedf
sha2-256 | Länge 32 | Digest

Legacy-Bitcoin-Adressen beginnen mit 1, weil ihr Versionsbyte 00 ist. P2SH-Adressen beginnen mit 3 und ergeben dekodiert die Version 05.

Base58Check-Prüfsummen bleiben in den Bytes

Bitcoin-Adressen und private WIF-Schlüssel verwenden Base58Check: Vor dem Kodieren werden vier Prüfsummenbytes angehängt, die aus einem doppelten SHA-256 der Nutzdaten stammen. Diese Seite verwendet einfaches Base58, daher wird die Prüfsumme wie alle anderen Daten dekodiert und erscheint als die letzten 8 Hex-Ziffern. Der hash160 einer Legacy-Adresse besteht aus den 40 Hex-Ziffern zwischen dem führenden 00 und der Prüfsumme.

Um zu bestätigen, dass eine Adresse unversehrt ist, und die Nutzdaten ohne Prüfsumme zu erhalten, dekodieren Sie sie auf der Seite Base58Check. Solana-Schlüssel und IPFS-Hashes enthalten keine Prüfsumme, daher ist einfaches Base58 für sie die richtige Wahl.

Base58 zu Hex im Code

# Python (pip install base58)
import base58
base58.b58decode('115Q').hex()      # '0000ff'

// JavaScript (npm install bs58)
import bs58 from 'bs58';
Buffer.from(bs58.decode('115Q')).toString('hex');   // '0000ff'

Häufig gestellte Fragen

Warum ergibt eine Bitcoin-Adresse dekodiert 25 Bytes statt 20?

Eine Legacy-Adresse enthält ein Versionsbyte, den 20 Byte langen hash160 des öffentlichen Schlüssels und eine 4-Byte-Prüfsumme. Einfaches Base58 liefert alle drei Teile, daher erhalten Sie 50 Hex-Ziffern. Der hash160 ist alles zwischen dem ersten Byte und den letzten vier.

Warum wird jede führende 1 zu 00?

In Base58 steht das Zeichen 1 für den Wert null. Führende Nullbytes würden verschwinden, wenn man die Daten als gewöhnliche Zahl behandelte. Daher wird jedes von ihnen als 1 geschrieben und beim Dekodieren wieder zu einem 00-Byte.

Warum erhalte ich einen Fehler wegen eines ungültigen Zeichens?
Das Bitcoin-Alphabet enthält kein 0, O, I oder l, daher ist ein String mit diesen Zeichen kein Base58. Bitcoin-Adressen, die mit bc1 beginnen, verwenden Bech32, eine andere Kodierung. Ripple-Adressen (XRP) verwenden ein eigenes Base58-Alphabet; dekodieren Sie sie auf der Seite Base58, nachdem Sie unter „Alphabet“ die Option „Ripple“ gewählt haben.
Wie lang ist ein öffentlicher Solana-Schlüssel?

Genau 32 Bytes bzw. 64 Hex-Ziffern. In Base58 sind das meist 43 oder 44 Zeichen. Schlüssel, die mit Nullbytes beginnen, können kürzer sein, wie die Adresse des System Program zeigt.