Base58Check एनकोडर और डिकोडर

4 बाइट का डबल SHA-256 चेकसम जोड़कर Base58 में एनकोड करें, या किसी Base58Check स्ट्रिंग को डिकोड करें, उसका चेकसम जाँचें और वर्ज़न बाइट व पेलोड पढ़ें।

पूरी तरह आपके ब्राउज़र में चलता है। कुछ भी अपलोड नहीं होता।

उपयोग कैसे करें

  1. Base58Check स्ट्रिंग बनाने के लिए “एनकोड करें” चुनें, या किसी स्ट्रिंग को सत्यापित करके उसके बाइट वापस पाने के लिए “डिकोड करें” चुनें।
  2. एनकोड करने के लिए इनपुट को “हेक्स” पर करें और पहले वर्ज़न बाइट, फिर पेलोड दर्ज करें, जैसे 00 और उसके बाद 20 बाइट का HASH160।
  3. “Base58Check चेकसम” विकल्प चालू रहने दें। एनकोड करते समय चेकसम जोड़ा जाता है और डिकोड करते समय उसकी जाँच होती है।
  4. डिकोड करने के लिए स्ट्रिंग पेस्ट करें और आउटपुट को “हेक्स” पर करें। आपको चेकसम के बिना वर्ज़न बाइट और पेलोड मिलते हैं।

Base58Check कैसे काम करता है

  1. शुरुआत एक वर्ज़न बाइट से होती है, जो बताता है कि डेटा किस प्रकार का है, और उसके बाद पेलोड आता है, जैसे 20 बाइट का सार्वजनिक कुंजी हैश।
  2. इन बाइट का SHA-256 हैश निकालें, उस परिणाम का फिर से SHA-256 हैश निकालें, और उसके पहले 4 बाइट को चेकसम के रूप में रखें।
  3. चेकसम को अंत में जोड़ें और पूरे डेटा को Base58 से एनकोड करें। हर शुरुआती 0x00 बाइट एक 1 बन जाता है।

यह टूल ठीक उन्हीं बाइट पर चेकसम निकालता है जो आप दर्ज करते हैं। यह अपनी ओर से वर्ज़न बाइट नहीं जोड़ता, इसलिए उसे अपने इनपुट की शुरुआत में शामिल करें। डिकोड करते समय यह आख़िरी 4 बाइट को छोड़कर बाकी सब पर चेकसम दोबारा निकालता है। अगर दोनों मेल खाते हैं, तो आपको वर्ज़न बाइट और पेलोड मिलते हैं; अगर नहीं, तो चेकसम की त्रुटि दिखती है। कोई रैंडम टाइपिंग ग़लती लगभग चार अरब प्रयासों में केवल एक बार ही पकड़ से बच पाती है।

आम वर्ज़न बाइट

वर्ज़न बाइटडेटाएनकोड की गई स्ट्रिंग की शुरुआत
0x00Bitcoin P2PKH एड्रेस (20 बाइट का HASH160)1
0x05Bitcoin P2SH एड्रेस (20 बाइट का स्क्रिप्ट हैश)3
0x6FBitcoin टेस्टनेट P2PKH एड्रेसm या n
0x80WIF प्राइवेट कुंजी (32 बाइट, कंप्रेस्ड कुंजी के लिए साथ में 0x01)5, या कंप्रेस्ड होने पर K / L

bc1 से शुरू होने वाले SegWit और Taproot एड्रेस Base58Check नहीं, बल्कि Bech32 का उपयोग करते हैं, इसलिए उन्हें यहाँ डिकोड नहीं किया जा सकता। XRP Ledger एड्रेस यही चेकसम Ripple वर्णमाला के साथ इस्तेमाल करते हैं: “वर्णमाला” विकल्प में Ripple चुनें।

उदाहरण: HASH160 से एड्रेस तक

Bitcoin के जेनेसिस ब्लॉक से जुड़ा प्रसिद्ध एड्रेस वर्ज़न बाइट 00 और उसके बाद 20 बाइट के HASH160 से बना है। “Base58Check चेकसम” चालू रखकर इसे हेक्स इनपुट के रूप में दर्ज करने पर जाना-पहचाना एड्रेस मिलता है:

Input (Hex)  00 62e907b15cbf27d5425399ebf6f0fb50ebb88f18
Output       1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa

कोड में, Python का base58 पैकेज b58encode_check() और b58decode_check() देता है, और npm पैकेज bs58check में encode() और decode() उपलब्ध हैं।

तकनीकी विवरण

वर्णमाला1-9 A-Z a-z (0 O I l के बिना)
आउटपुट का आकारलगभग 137%, साथ में 4 बाइट का चेकसम
पैडिंगकोई नहीं
मानकBitcoin Base58Check
केस-संवेदीहाँ

उदाहरण

इनपुट (UTF-8)आउटपुट
Hello, World!gTazoqFvnegwaKM8v1B33sR
Base64.is6XgW4KVJr8DBmZEAeJ
你好DrMzxHL43oWHbW

अक्सर पूछे जाने वाले प्रश्न

डिकोड करते समय चेकसम की त्रुटि क्यों आती है?
या तो कोई अक्षर ग़लत टाइप हुआ है, या ग़लत वर्णमाला चुनी गई है, या स्ट्रिंग बिना चेकसम वाला सादा Base58 है। Solana एड्रेस और IPFS CID जैसी सादी Base58 स्ट्रिंग को Base58 पेज पर डिकोड करना चाहिए।
क्या टूल अपने-आप वर्ज़न बाइट जोड़ता है?
नहीं। चेकसम आपके दर्ज किए गए बाइट पर ही निकाला जाता है, इसलिए वर्ज़न बाइट आपके इनपुट का हिस्सा होना चाहिए। इनपुट को “हेक्स” पर करें और सबसे पहले उसे टाइप करें, जैसे Bitcoin एड्रेस के लिए 00।
क्या WIF प्राइवेट कुंजी डिकोड की जा सकती है?
हाँ। इसे “डिकोड करें” टैब में पेस्ट करें और हेक्स आउटपुट चुनें। आपको 80, 32 बाइट की कुंजी और, कंप्रेस्ड कुंजियों के मामले में, अंत में 01 मिलेगा। डिकोडिंग आपके ब्राउज़र में ही होती है, फिर भी असली प्राइवेट कुंजियों को सावधानी से संभालें।
क्या bc1 एड्रेस डिकोड किए जा सकते हैं?

नहीं। नेटिव SegWit और Taproot एड्रेस Bech32 या Bech32m का उपयोग करते हैं, जो अपने अलग चेकसम वाली एक अलग एनकोडिंग है। Bitcoin में Base58Check का उपयोग केवल उन लेगेसी एड्रेस के लिए होता है जो 1 या 3 से शुरू होते हैं (टेस्टनेट पर m, n या 2)।