Anleitung
- Fügen Sie die Hex-Bytes in das Eingabefeld ein. Leerzeichen, Doppelpunkte und ein 0x-Präfix werden akzeptiert.
- Lesen Sie das Base58-Ergebnis in der Ausgabe ab.
- 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
1220voran, und Sie erhalten einen 46 Zeichen langen String, der mitQmbeginnt. 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?
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.