Zo gebruik je het
- Plak de hex-bytes in het invoerveld. Spaties, dubbele punten en het voorvoegsel 0x worden geaccepteerd.
- Lees het Base58-resultaat af in de uitvoer.
- Kopieer het, of klik op Invoer en uitvoer omwisselen om Base58 weer naar hex te decoderen.
Hoe hex Base58 wordt
De hexcijfers worden eerst omgezet in bytes, twee cijfers per byte, dus de invoer moet een even aantal cijfers hebben. Daarna worden de bytes gelezen als één big-endian getal en opnieuw geschreven in grondtal 58 met het Bitcoin-alfabet. Elke voorloop-00-byte wordt geschreven als een 1; daarom wordt 0000ff 115Q, terwijl ff op zichzelf 5Q wordt.
Base58 heeft ongeveer 1,37 tekens per byte nodig, dus 64 hexcijfers (32 bytes) slinken tot 43 of 44 tekens. Het alfabet bevat geen 0, O, I, l, + of /, zodat het resultaat makkelijk voor te lezen is, met een dubbelklik te selecteren is en in URL's past. Alles wordt in je browser berekend.
Solana- en IPFS-ID's opbouwen
- Solana: een adres is de publieke Ed25519-sleutel van 32 bytes in Base58, zonder voorvoegsel en zonder controlesom. Plak de hexsleutel van 64 cijfers om het adres te krijgen.
- IPFS CIDv0: een CIDv0 is een sha2-256-multihash in Base58. Zet
1220vóór de digest van 64 cijfers en je krijgt een string van 46 tekens die metQmbegint. Het moet wel de digest zijn die IPFS voor het gecodeerde blok heeft berekend, en die is niet hetzelfde als de SHA-256 van het originele bestand.
1220 9d6c2be50f706953479ab9df2ce3edca90b68053c00b3004b7f0accbe1e8eedf
QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG
Bitcoin-adressen hebben een controlesom nodig
Een hash160 op zichzelf is geen adres. Een legacy Bitcoin-adres is de Base58Check-codering van de versiebyte 00 gevolgd door de hash160 van 20 bytes, waarbij vóór het coderen een controlesom van 4 bytes uit een dubbele SHA-256 wordt toegevoegd. Codeer je 00 en de hash160 met gewone Base58, dan krijg je een kortere string zonder controlesom, en die wordt door wallets geweigerd.
Gebruik in plaats daarvan de pagina Base58Check: zet Invoer als op Hex, voer 00 gevolgd door de hash160 in, en de controlesom wordt automatisch toegevoegd. Eindigt je hex al op de juiste controlesom, dan levert deze pagina hetzelfde adres op.
0062e907b15cbf27d5425399ebf6f0fb50ebb88f18 (Base58Check)
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
Hex naar Base58 in code
# Python (pip install base58)
import base58
base58.b58encode(bytes.fromhex('0000ff')) # b'115Q'
// JavaScript (installeren met npm install bs58)
import bs58 from 'bs58';
bs58.encode(Buffer.from('0000ff', 'hex')); // '115Q'
Veelgestelde vragen
Hoe maak ik van een hash160 een Bitcoin-adres?
Waarom begint het resultaat met meerdere 1-tekens?
Je hex begint met hetzelfde aantal 00-bytes. Base58 bewaart die als enen aan het begin, zodat ze terugkomen wanneer de string wordt gedecodeerd.
Waarom wordt mijn hex-invoer geweigerd?
Hex vereist een even aantal cijfers en alleen de tekens 0-9 en a-f, in hoofdletters of kleine letters. Spaties, dubbele punten en het voorvoegsel 0x worden automatisch verwijderd; al het andere, zoals een verdwaalde letter g of een ontbrekend cijfer, geeft een fout.