Konverter Base58 til hex

Lim inn en Base58-streng, for eksempel en Bitcoin-adresse, en offentlig Solana-nøkkel eller en IPFS-hash, og få de rå bytene som heksadesimale tall. Hver innledende 1 blir en 00-byte.

Kjører helt i nettleseren din. Ingenting lastes opp.

Slik bruker du verktøyet

  1. Lim inn Base58-strengen i inndatafeltet. Mellomrom og linjeskift ignoreres.
  2. Les av de dekodede bytene som heksadesimale tall i utdatafeltet.
  3. 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?
Bitcoin-alfabetet har ingen 0, O, I eller l, så en streng som inneholder dem, er ikke Base58. Bitcoin-adresser som begynner med bc1, bruker Bech32, som er en annen koding. Ripple-adresser (XRP) bruker sitt eget Base58-alfabet; dekod dem på siden Base58 med Ripple-alfabetet valgt.
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.