उपयोग कैसे करें
- Base58Check स्ट्रिंग बनाने के लिए “एनकोड करें” चुनें, या किसी स्ट्रिंग को सत्यापित करके उसके बाइट वापस पाने के लिए “डिकोड करें” चुनें।
- एनकोड करने के लिए इनपुट को “हेक्स” पर करें और पहले वर्ज़न बाइट, फिर पेलोड दर्ज करें, जैसे 00 और उसके बाद 20 बाइट का HASH160।
- “Base58Check चेकसम” विकल्प चालू रहने दें। एनकोड करते समय चेकसम जोड़ा जाता है और डिकोड करते समय उसकी जाँच होती है।
- डिकोड करने के लिए स्ट्रिंग पेस्ट करें और आउटपुट को “हेक्स” पर करें। आपको चेकसम के बिना वर्ज़न बाइट और पेलोड मिलते हैं।
Base58Check कैसे काम करता है
- शुरुआत एक वर्ज़न बाइट से होती है, जो बताता है कि डेटा किस प्रकार का है, और उसके बाद पेलोड आता है, जैसे 20 बाइट का सार्वजनिक कुंजी हैश।
- इन बाइट का SHA-256 हैश निकालें, उस परिणाम का फिर से SHA-256 हैश निकालें, और उसके पहले 4 बाइट को चेकसम के रूप में रखें।
- चेकसम को अंत में जोड़ें और पूरे डेटा को Base58 से एनकोड करें। हर शुरुआती
0x00बाइट एक1बन जाता है।
यह टूल ठीक उन्हीं बाइट पर चेकसम निकालता है जो आप दर्ज करते हैं। यह अपनी ओर से वर्ज़न बाइट नहीं जोड़ता, इसलिए उसे अपने इनपुट की शुरुआत में शामिल करें। डिकोड करते समय यह आख़िरी 4 बाइट को छोड़कर बाकी सब पर चेकसम दोबारा निकालता है। अगर दोनों मेल खाते हैं, तो आपको वर्ज़न बाइट और पेलोड मिलते हैं; अगर नहीं, तो चेकसम की त्रुटि दिखती है। कोई रैंडम टाइपिंग ग़लती लगभग चार अरब प्रयासों में केवल एक बार ही पकड़ से बच पाती है।
आम वर्ज़न बाइट
| वर्ज़न बाइट | डेटा | एनकोड की गई स्ट्रिंग की शुरुआत |
|---|---|---|
0x00 | Bitcoin P2PKH एड्रेस (20 बाइट का HASH160) | 1 |
0x05 | Bitcoin P2SH एड्रेस (20 बाइट का स्क्रिप्ट हैश) | 3 |
0x6F | Bitcoin टेस्टनेट P2PKH एड्रेस | m या n |
0x80 | WIF प्राइवेट कुंजी (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.is | 6XgW4KVJr8DBmZEAeJ |
你好 | DrMzxHL43oWHbW |
अक्सर पूछे जाने वाले प्रश्न
डिकोड करते समय चेकसम की त्रुटि क्यों आती है?
क्या टूल अपने-आप वर्ज़न बाइट जोड़ता है?
00।क्या WIF प्राइवेट कुंजी डिकोड की जा सकती है?
80, 32 बाइट की कुंजी और, कंप्रेस्ड कुंजियों के मामले में, अंत में 01 मिलेगा। डिकोडिंग आपके ब्राउज़र में ही होती है, फिर भी असली प्राइवेट कुंजियों को सावधानी से संभालें।क्या bc1 एड्रेस डिकोड किए जा सकते हैं?
नहीं। नेटिव SegWit और Taproot एड्रेस Bech32 या Bech32m का उपयोग करते हैं, जो अपने अलग चेकसम वाली एक अलग एनकोडिंग है। Bitcoin में Base58Check का उपयोग केवल उन लेगेसी एड्रेस के लिए होता है जो 1 या 3 से शुरू होते हैं (टेस्टनेट पर m, n या 2)।