Så använder du verktyget
- Klistra in hexbytena i indatafältet. Mellanslag, kolon och prefixet 0x accepteras.
- Läs av Base58-resultatet i utdatan.
- Kopiera det, eller klicka på Byt plats på indata och utdata för att avkoda Base58 tillbaka till hex.
Så blir hex till Base58
Hexsiffrorna görs först om till byte, två siffror per byte, så indatan måste ha ett jämnt antal siffror. Bytena läses sedan som ett enda tal i big-endian-ordning och skrivs om i bas 58 med Bitcoin-alfabetet. Varje inledande 00-byte skrivs som en 1, och därför blir 0000ff till 115Q medan ff ensamt blir 5Q.
Base58 behöver cirka 1,37 tecken per byte, så 64 hexsiffror (32 byte) krymper till 43 eller 44 tecken. Alfabetet saknar 0, O, I, l, + och /, så resultatet är lätt att läsa upp, kan markeras med ett dubbelklick och passar i URL:er. Allt beräknas i din webbläsare.
Skapa identifierare för Solana och IPFS
- Solana: en adress är den publika Ed25519-nyckeln på 32 byte i Base58, utan prefix och utan kontrollsumma. Klistra in nyckeln som 64 hexsiffror för att få adressen.
- IPFS CIDv0: en CIDv0 är en sha2-256-multihash i Base58. Sätt
1220framför den 64 siffror långa hashsumman så får du en sträng på 46 tecken som börjar medQm. Hashsumman måste vara den som IPFS beräknade för det kodade blocket, vilket inte är samma sak som originalfilens SHA-256.
1220 9d6c2be50f706953479ab9df2ce3edca90b68053c00b3004b7f0accbe1e8eedf
QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG
Bitcoin-adresser behöver en kontrollsumma
En hash160 är ingen adress i sig. En äldre Bitcoin-adress är Base58Check av versionsbyten 00 följd av hash160 på 20 byte, och Base58Check lägger till en kontrollsumma på 4 byte från en dubbel SHA-256 före kodningen. Om du kodar 00 och hash160 med vanlig Base58 får du en kortare sträng utan kontrollsumma, och plånböcker avvisar den.
Använd i stället sidan Base58Check: välj Hex under Indata som, skriv 00 följt av hash160, så läggs kontrollsumman till åt dig. Om ditt hexvärde redan slutar med rätt kontrollsumma ger den här sidan samma adress.
0062e907b15cbf27d5425399ebf6f0fb50ebb88f18 (Base58Check)
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
Hex till Base58 i programkod
# Python (installera med pip install base58)
import base58
base58.b58encode(bytes.fromhex('0000ff')) # ger b'115Q'
// JavaScript (installera med npm install bs58)
import bs58 from 'bs58';
bs58.encode(Buffer.from('0000ff', 'hex')); // ger '115Q'
Vanliga frågor
Hur gör jag om en hash160 till en Bitcoin-adress?
Varför börjar resultatet med flera 1-tecken?
Ditt hexvärde börjar med lika många 00-byte. Base58 behåller dem som inledande ettor så att de återställs när strängen avkodas.
Varför avvisas min hexindata?
Hex kräver ett jämnt antal siffror och bara tecknen 0-9 och a-f, med versaler eller gemener. Mellanslag, kolon och prefixet 0x tas bort automatiskt; allt annat, till exempel ett felaktigt g eller en saknad siffra, ger ett fel.