Slik bruker du verktøyet
- Lim inn Base58-strengen i inndatafeltet. Mellomrom og linjeskift ignoreres.
- Les av de dekodede bytene som heksadesimale tall i utdatafeltet.
- Kopier hex-verdien, eller trykk på Bytt om inndata og utdata for å gjøre hex om til Base58 igjen.
Slik blir Base58 til hex
Base58 leser hele strengen som ett stort tall skrevet med Bitcoin-alfabetet på 58 tegn, som utelater 0, O, I og l. Ved konvertering til hex skrives det samme tallet med grunntall 16, to hex-sifre per byte, så ingenting legges til eller går tapt.
Nullbyte i begynnelsen av dataene har ingen tallverdi, så Base58 registrerer hver av dem som en innledende 1, det første tegnet i alfabetet. Dekoderen gjør hver innledende 1 om til en 00-byte igjen. For eksempel dekodes 115Q til 0000ff, og adressen til Solanas System Program, trettito 1-tegn på rad, dekodes til 32 nullbyte. Konverteringen kjører lokalt i nettleseren din.
Eksempler fra Bitcoin, Solana og IPFS
Det er lagt inn mellomrom i hex-verdiene nedenfor for å vise de ulike delene:
Bitcoin-adresse (P2PKH, genesisblokken)
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
00 62e907b15cbf27d5425399ebf6f0fb50ebb88f18 c29b7d93
versjon | hash160 (20 byte) | kontrollsum (4 byte)
Offentlig Solana-nøkkel (programmet SPL Token)
TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
06ddf6e1d765a193d9cbe146ceeb79ac1cb485ed5f5b37913a8cf5857eff00a9
32 byte, ingen versjonsbyte, ingen kontrollsum
IPFS CIDv0
QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG
12 20 9d6c2be50f706953479ab9df2ce3edca90b68053c00b3004b7f0accbe1e8eedf
sha2-256 | lengde 32 | hashverdi
Eldre Bitcoin-adresser (legacy) begynner med 1 fordi versjonsbyten deres er 00. P2SH-adresser begynner med 3 og dekodes til versjon 05.
Base58Check-kontrollsummen blir værende i bytene
Bitcoin-adresser og private WIF-nøkler bruker Base58Check: fire kontrollsumbyte, hentet fra en dobbel SHA-256 av nyttelasten, legges til før kodingen. Denne siden bruker ren Base58, så kontrollsummen dekodes som alle andre data og vises som de siste 8 hex-sifrene. Hash160-verdien i en eldre adresse er de 40 hex-sifrene mellom den innledende 00 og kontrollsummen.
For å bekrefte at en adresse er intakt og få nyttelasten uten kontrollsum dekoder du den på siden Base58Check. Solana-nøkler og IPFS-hasher har ingen kontrollsum, så ren Base58 er det riktige valget for dem.
Base58 til hex i kode
# Python (installer med pip install base58)
import base58
base58.b58decode('115Q').hex() # '0000ff'
// JavaScript (installer med npm install bs58)
import bs58 from 'bs58';
Buffer.from(bs58.decode('115Q')).toString('hex'); // '0000ff'
Ofte stilte spørsmål
Hvorfor dekodes en Bitcoin-adresse til 25 byte i stedet for 20?
En eldre adresse inneholder en versjonsbyte, hash160-verdien av den offentlige nøkkelen på 20 byte og en kontrollsum på 4 byte. Ren Base58 returnerer alle tre, så du får 50 hex-sifre. Hash160-verdien er alt mellom den første byten og de fire siste.
Hvorfor blir hver innledende 1 til 00?
I Base58 står tegnet 1 for verdien null. Innledende nullbyte ville forsvunnet hvis dataene ble behandlet som et vanlig tall, så hver av dem skrives som en 1 og dekodes tilbake til en 00-byte.
Hvorfor får jeg en feilmelding om ugyldig tegn?
Hvor lang er en offentlig Solana-nøkkel?
Nøyaktig 32 byte, eller 64 hex-sifre. I Base58 blir det vanligvis 43 eller 44 tegn. Nøkler som begynner med nullbyte, kan være kortere, slik adressen til System Program viser.