उपयोग कैसे करें
- Base58 स्ट्रिंग को इनपुट बॉक्स में पेस्ट करें। स्पेस और लाइन ब्रेक अनदेखे कर दिए जाते हैं।
- आउटपुट में डिकोड किए गए बाइट हेक्साडेसिमल रूप में पढ़ें।
- हेक्स कॉपी करें, या हेक्स को वापस Base58 में बदलने के लिए “इनपुट और आउटपुट की अदला-बदली करें” दबाएँ।
Base58 हेक्स में कैसे बदलता है
Base58 पूरी स्ट्रिंग को 58 अक्षरों वाली Bitcoin वर्णमाला में लिखी एक बड़ी संख्या के रूप में पढ़ता है। इस वर्णमाला में 0, O, I और l नहीं होते। हेक्स में बदलने पर वही संख्या आधार 16 में लिखी जाती है, हर बाइट के लिए दो हेक्स अंक, इसलिए न कुछ जुड़ता है और न कुछ खोता है।
डेटा की शुरुआत में आने वाले शून्य बाइट का कोई संख्यात्मक मान नहीं होता, इसलिए Base58 हर एक को शुरुआती 1 के रूप में दर्ज करता है, जो उसकी वर्णमाला का पहला अक्षर है। डिकोडर हर शुरुआती 1 को वापस 00 बाइट में बदल देता है। उदाहरण के लिए, 115Q डिकोड होकर 0000ff बनता है, और Solana System Program का एड्रेस, जो लगातार बत्तीस 1 अक्षरों से बना है, डिकोड होकर 32 शून्य बाइट बनता है। रूपांतरण आपके ब्राउज़र में स्थानीय रूप से होता है।
Bitcoin, Solana और IPFS के उदाहरण
नीचे हेक्स में भागों को दिखाने के लिए स्पेस जोड़े गए हैं:
Bitcoin एड्रेस (P2PKH, जेनेसिस ब्लॉक)
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
00 62e907b15cbf27d5425399ebf6f0fb50ebb88f18 c29b7d93
वर्ज़न | hash160 (20 बाइट) | चेकसम (4 बाइट)
Solana सार्वजनिक कुंजी (SPL Token प्रोग्राम)
TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
06ddf6e1d765a193d9cbe146ceeb79ac1cb485ed5f5b37913a8cf5857eff00a9
32 बाइट, कोई वर्ज़न बाइट नहीं, कोई चेकसम नहीं
IPFS CIDv0
QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG
12 20 9d6c2be50f706953479ab9df2ce3edca90b68053c00b3004b7f0accbe1e8eedf
sha2-256 | लंबाई 32 | डाइजेस्ट
लेगेसी Bitcoin एड्रेस 1 से शुरू होते हैं, क्योंकि उनका वर्ज़न बाइट 00 होता है। P2SH एड्रेस 3 से शुरू होते हैं और डिकोड होकर वर्ज़न 05 देते हैं।
Base58Check चेकसम बाइट में ही रहते हैं
Bitcoin एड्रेस और WIF प्राइवेट कुंजियाँ Base58Check का उपयोग करती हैं: पेलोड के डबल SHA-256 से लिए गए चार चेकसम बाइट एनकोड करने से पहले अंत में जोड़ दिए जाते हैं। यह पेज सादा Base58 इस्तेमाल करता है, इसलिए चेकसम भी बाकी डेटा की तरह डिकोड होता है और आख़िरी 8 हेक्स अंकों के रूप में दिखता है। लेगेसी एड्रेस का hash160 शुरुआती 00 और चेकसम के बीच के 40 हेक्स अंक हैं।
यह पक्का करने के लिए कि कोई एड्रेस सही-सलामत है और चेकसम के बिना पेलोड पाने के लिए, उसे Base58Check पेज पर डिकोड करें। Solana कुंजियों और IPFS हैश में कोई चेकसम नहीं होता, इसलिए उनके लिए सादा Base58 ही सही विकल्प है।
कोड में Base58 से हेक्स
# Python (pip install base58)
import base58
base58.b58decode('115Q').hex() # '0000ff'
// JavaScript (npm install bs58)
import bs58 from 'bs58';
Buffer.from(bs58.decode('115Q')).toString('hex'); // '0000ff'
अक्सर पूछे जाने वाले प्रश्न
Bitcoin एड्रेस 20 के बजाय 25 बाइट में क्यों डिकोड होता है?
लेगेसी एड्रेस में 1 बाइट का वर्ज़न, सार्वजनिक कुंजी का 20 बाइट का hash160 और 4 बाइट का चेकसम होता है। सादा Base58 तीनों लौटाता है, इसलिए आपको 50 हेक्स अंक मिलते हैं। hash160 पहले बाइट और आख़िरी चार बाइट के बीच का पूरा हिस्सा है।
हर शुरुआती 1 क्यों 00 बन जाता है?
Base58 में अक्षर 1 का मान शून्य होता है। अगर डेटा को सादी संख्या माना जाए तो शुरुआती शून्य बाइट गायब हो जाएँगे, इसलिए हर एक को 1 के रूप में लिखा जाता है और डिकोड करने पर वह वापस 00 बाइट बन जाता है।
मुझे अमान्य अक्षर की त्रुटि क्यों मिलती है?
Solana सार्वजनिक कुंजी कितनी लंबी होती है?
ठीक 32 बाइट, यानी 64 हेक्स अंक। Base58 में यह आमतौर पर 43 या 44 अक्षरों की होती है। शून्य बाइट से शुरू होने वाली कुंजियाँ इससे छोटी हो सकती हैं, जैसा System Program के एड्रेस से पता चलता है।