Hex-zu-Base58-Konverter

Fügen Sie hexadezimale Bytes ein und erhalten Sie den Base58-String, den Bitcoin, Solana und IPFS verwenden. Jedes führende 00-Byte wird zu einer führenden 1, alle anderen Bytes bleiben exakt erhalten.

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

Anleitung

  1. Fügen Sie die Hex-Bytes in das Eingabefeld ein. Leerzeichen, Doppelpunkte und ein 0x-Präfix werden akzeptiert.
  2. Lesen Sie das Base58-Ergebnis in der Ausgabe ab.
  3. Kopieren Sie es, oder klicken Sie auf „Eingabe und Ausgabe tauschen“, um Base58 wieder in Hex zu dekodieren.

Wie aus Hex Base58 wird

Die Hex-Ziffern werden zunächst in Bytes umgewandelt, zwei Ziffern pro Byte, daher muss die Eingabe eine gerade Anzahl von Ziffern haben. Anschließend werden die Bytes als eine einzige Big-Endian-Zahl gelesen und mit dem Bitcoin-Alphabet zur Basis 58 neu geschrieben. Jedes führende 00-Byte wird als 1 geschrieben. Deshalb wird 0000ff zu 115Q, während ff allein zu 5Q wird.

Base58 benötigt etwa 1,37 Zeichen pro Byte, sodass 64 Hex-Ziffern (32 Bytes) auf 43 oder 44 Zeichen schrumpfen. Das Alphabet enthält kein 0, O, I, l, + oder /, daher lässt sich das Ergebnis gut vorlesen, per Doppelklick markieren und in URLs verwenden. Alles wird in Ihrem Browser berechnet.

Solana- und IPFS-Kennungen erzeugen

  • Solana: Eine Adresse ist der 32 Byte lange öffentliche Ed25519-Schlüssel in Base58, ohne Präfix und ohne Prüfsumme. Fügen Sie den 64-stelligen Hex-Schlüssel ein, um die Adresse zu erhalten.
  • IPFS CIDv0: Eine CIDv0 ist ein sha2-256-Multihash in Base58. Stellen Sie dem 64-stelligen Digest 1220 voran, und Sie erhalten einen 46 Zeichen langen String, der mit Qm beginnt. Der Digest muss derjenige sein, den IPFS für den kodierten Block berechnet hat; er stimmt nicht mit dem SHA-256 der Originaldatei überein.
1220 9d6c2be50f706953479ab9df2ce3edca90b68053c00b3004b7f0accbe1e8eedf
QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG

Bitcoin-Adressen benötigen eine Prüfsumme

Ein hash160 allein ist noch keine Adresse. Eine Legacy-Bitcoin-Adresse ist die Base58Check-Kodierung des Versionsbytes 00, gefolgt vom 20 Byte langen hash160. Base58Check hängt dabei vor dem Kodieren eine 4-Byte-Prüfsumme aus doppeltem SHA-256 an. Wenn Sie 00 und den hash160 mit einfachem Base58 kodieren, erhalten Sie einen kürzeren String ohne Prüfsumme, den Wallets ablehnen.

Verwenden Sie stattdessen die Seite Base58Check: Stellen Sie die Eingabe auf Hex um, geben Sie 00 gefolgt vom hash160 ein, und die Prüfsumme wird automatisch hinzugefügt. Wenn Ihr Hex bereits mit der korrekten Prüfsumme endet, erzeugt diese Seite dieselbe Adresse.

0062e907b15cbf27d5425399ebf6f0fb50ebb88f18    (Base58Check)
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa

Hex zu Base58 im Code

# Python (pip install base58)
import base58
base58.b58encode(bytes.fromhex('0000ff'))     # b'115Q'

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

Häufig gestellte Fragen

Wie mache ich aus einem hash160 eine Bitcoin-Adresse?
Stellen Sie das Versionsbyte 00 voran und kodieren Sie mit Base58Check, nicht mit einfachem Base58. Die Seite Base58Check erledigt das, wenn Sie die Bytes als Hex eingeben.
Warum beginnt das Ergebnis mit mehreren 1-Zeichen?

Ihr Hex beginnt mit ebenso vielen 00-Bytes. Base58 bewahrt sie als führende Einsen, damit sie beim Dekodieren des Strings wiederhergestellt werden.

Warum wird meine Hex-Eingabe abgelehnt?

Hex benötigt eine gerade Anzahl von Ziffern und darf nur die Zeichen 0-9 und a-f enthalten, in Groß- oder Kleinschreibung. Leerzeichen, Doppelpunkte und ein 0x-Präfix werden automatisch entfernt; alles andere, etwa ein verirrter Buchstabe g oder eine fehlende Ziffer, führt zu einem Fehler.

Welches Base58-Alphabet verwendet diese Seite?
Das Bitcoin-Alphabet, das auch Solana, IPFS und die meisten anderen Projekte verwenden. Für das Flickr- oder Ripple-Alphabet wechseln Sie zur Seite Base58, wählen dort das Alphabet und geben Ihre Eingabe als Hex-Bytes ein.