उपयोग कैसे करें
- हेक्स बाइट को इनपुट बॉक्स में पेस्ट करें। स्पेस, कोलन और 0x प्रीफ़िक्स स्वीकार किए जाते हैं।
- आउटपुट में Base58 परिणाम पढ़ें।
- उसे कॉपी करें, या Base58 को वापस हेक्स में डिकोड करने के लिए “इनपुट और आउटपुट की अदला-बदली करें” दबाएँ।
हेक्स Base58 में कैसे बदलता है
पहले हेक्स अंकों को बाइट में बदला जाता है, हर बाइट के लिए दो अंक, इसलिए इनपुट में अंकों की संख्या सम होनी चाहिए। फिर बाइट को एक बिग-एंडियन संख्या के रूप में पढ़कर Bitcoin वर्णमाला के साथ आधार 58 में दोबारा लिखा जाता है। हर शुरुआती 00 बाइट को 1 के रूप में लिखा जाता है, इसीलिए 0000ff बनता है 115Q, जबकि अकेला ff बनता है 5Q।
Base58 को प्रति बाइट लगभग 1.37 अक्षर चाहिए, इसलिए 64 हेक्स अंक (32 बाइट) घटकर 43 या 44 अक्षर रह जाते हैं। इसकी वर्णमाला में 0, O, I, l, + या / नहीं होते, इसलिए परिणाम को बोलकर पढ़ना आसान है, उसे डबल क्लिक से चुना जा सकता है और वह URL में फ़िट हो जाता है। सारी गणना आपके ब्राउज़र में होती है।
Solana और IPFS आइडेंटिफ़ायर बनाना
- Solana: एड्रेस 32 बाइट की Ed25519 सार्वजनिक कुंजी का Base58 रूप है, बिना किसी प्रीफ़िक्स और बिना चेकसम के। एड्रेस पाने के लिए 64 अंकों की हेक्स कुंजी पेस्ट करें।
- IPFS CIDv0: CIDv0 किसी sha2-256 मल्टीहैश का Base58 रूप है। 64 अंकों के डाइजेस्ट के आगे
1220लगाएँ, तो आपको 46 अक्षरों की स्ट्रिंग मिलती है जोQmसे शुरू होती है। डाइजेस्ट वही होना चाहिए जो IPFS ने एनकोड किए गए ब्लॉक के लिए निकाला है, और यह मूल फ़ाइल के SHA-256 जैसा नहीं होता।
1220 9d6c2be50f706953479ab9df2ce3edca90b68053c00b3004b7f0accbe1e8eedf
QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG
Bitcoin एड्रेस के लिए चेकसम ज़रूरी है
अकेला hash160 कोई एड्रेस नहीं है। लेगेसी Bitcoin एड्रेस, वर्ज़न बाइट 00 और उसके बाद 20 बाइट के hash160 का Base58Check रूप है, जो एनकोड करने से पहले 4 बाइट का डबल SHA-256 चेकसम जोड़ता है। 00 और hash160 को सादे Base58 से एनकोड करने पर चेकसम के बिना एक छोटी स्ट्रिंग मिलती है, और वॉलेट उसे अस्वीकार कर देते हैं।
इसके बजाय Base58Check पेज का उपयोग करें: “इनपुट प्रकार” को “हेक्स” पर करें, 00 और उसके बाद hash160 दर्ज करें, और चेकसम अपने आप जुड़ जाएगा। अगर आपके हेक्स के अंत में पहले से सही चेकसम है, तो यह पेज भी वही एड्रेस बनाता है।
0062e907b15cbf27d5425399ebf6f0fb50ebb88f18 (Base58Check)
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
कोड में हेक्स से Base58
# 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'
अक्सर पूछे जाने वाले प्रश्न
hash160 को Bitcoin एड्रेस में कैसे बदलें?
परिणाम कई 1 अक्षरों से क्यों शुरू होता है?
आपका हेक्स उतने ही 00 बाइट से शुरू होता है। Base58 उन्हें शुरुआती 1 के रूप में बचाए रखता है, ताकि स्ट्रिंग डिकोड करने पर वे वापस मिल जाएँ।
मेरा हेक्स इनपुट अस्वीकार क्यों हो जाता है?
हेक्स में अंकों की संख्या सम होनी चाहिए और केवल 0-9 और a-f अक्षर होने चाहिए, बड़े या छोटे किसी भी रूप में। स्पेस, कोलन और 0x प्रीफ़िक्स अपने आप हटा दिए जाते हैं; इसके अलावा कुछ भी, जैसे ग़लती से आया g अक्षर या छूटा हुआ अंक, त्रुटि माना जाता है।