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

टेक्स्ट, हेक्स बाइट या छोटी फ़ाइलों को Base58 में बदलें और वापस पाएँ। Bitcoin, Flickr या Ripple वर्णमाला चुनें, और चाहें तो Base58Check चेकसम जोड़ें या उसकी जाँच करें।

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

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

  1. टेक्स्ट या बाइट को Base58 में बदलने के लिए “एनकोड करें” चुनें, या Base58 स्ट्रिंग को वापस डेटा में बदलने के लिए “डिकोड करें” चुनें।
  2. “वर्णमाला” चुनें। Bitcoin डिफ़ॉल्ट है, और IPFS व Solana भी इसी का उपयोग करते हैं।
  3. अपना इनपुट टाइप या पेस्ट करें। अगर आपके पास हैश या सार्वजनिक कुंजी जैसे रॉ बाइट हैं, तो इनपुट को “हेक्स” पर कर दें।
  4. “Base58Check चेकसम” तभी चालू करें जब स्ट्रिंग में 4 बाइट का चेकसम हो, फिर परिणाम कॉपी करें या डाउनलोड करें।

Base58 क्या है?

Base58 एक बाइनरी-से-टेक्स्ट एनकोडिंग है, जिसे Bitcoin के लिए बनाया गया था। इसकी वर्णमाला 10 अंकों और 52 लैटिन अक्षरों, यानी कुल 62 अक्षरों से बनी है, जिनमें से वे चार हटा दिए गए हैं जिन्हें आपस में आसानी से ग़लत पढ़ा जा सकता है: 0 (शून्य), O (बड़ा o), I (बड़ा i) और l (छोटा L)। इसमें +, / या = भी नहीं होते, इसलिए Base58 स्ट्रिंग को डबल क्लिक से पूरा चुना जा सकता है और बिना एस्केपिंग के URL में डाला जा सकता है।

Base64 के विपरीत, Base58 इनपुट को बिट समूहों में नहीं काटता। पूरे इनपुट को एक बड़ी संख्या माना जाता है और उसे आधार 58 में लिखा जाता है, इसलिए इसमें पैडिंग नहीं होती और एक बाइट बदलने से आउटपुट के कई अक्षर बदल सकते हैं। शुरुआती शून्य बाइट का कोई संख्यात्मक मान नहीं होता, इसलिए उन्हें बचाए रखने के लिए हर एक को वर्णमाला के पहले अक्षर (Bitcoin वर्णमाला में 1) के रूप में लिखा जाता है। आउटपुट इनपुट के आकार का लगभग 1.37 गुना होता है।

Base58 का उपयोग कहाँ होता है

  • Bitcoin। लेगेसी एड्रेस और WIF प्राइवेट कुंजियाँ Base58Check में होती हैं, यानी वर्ज़न बाइट और चेकसम वाला Base58।
  • IPFS। वर्ज़न 0 कंटेंट आइडेंटिफ़ायर (CIDv0) किसी SHA-256 मल्टीहैश का Base58 रूप है, इसीलिए ये CID 46 अक्षर लंबे होते हैं और Qm से शुरू होते हैं।
  • Solana। सार्वजनिक कुंजियाँ, अकाउंट एड्रेस और ट्रांज़ैक्शन सिग्नेचर बिना चेकसम के सादे Base58 में लिखे जाते हैं। 32 बाइट की कुंजी आमतौर पर 43 या 44 अक्षरों की बनती है।
  • Flickr और XRP Ledger। Flickr के छोटे लिंक Flickr वर्णमाला का उपयोग करते हैं, और XRP एड्रेस Ripple वर्णमाला का, इसीलिए वे r से शुरू होते हैं।

Base58 और रॉ बाइट के बीच बदलने के लिए Base58 से हेक्स और हेक्स से Base58 का उपयोग करें। जिन आइडेंटिफ़ायर में केवल अक्षर और अंक होने चाहिए, उनके लिए Base62 से तुलना करें।

Base58 वर्णमालाएँ

वर्णमालाअक्षर, क्रम से
Bitcoin123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
Flickr123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ
Ripplerpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz

तीनों वर्णमालाएँ वही 58 अक्षर अलग-अलग क्रम में इस्तेमाल करती हैं, इसलिए एक वर्णमाला से एनकोड की गई स्ट्रिंग को दूसरी वर्णमाला से डिकोड करने पर अलग बाइट मिलते हैं, या डिकोडिंग विफल हो जाती है।

कोड में Base58

# Python (pip install base58)
import base58
base58.b58encode(b'hello')      # b'Cn8eVZg'
base58.b58decode('Cn8eVZg')     # b'hello'

// JavaScript (npm install bs58)
import bs58 from 'bs58';
bs58.encode(new TextEncoder().encode('hello'));

तकनीकी विवरण

वर्णमाला1-9 A-Z a-z (0 O I l के बिना)
आउटपुट का आकारलगभग 137% (बड़ी संख्या का रूपांतरण)
पैडिंगकोई नहीं (शुरुआती शून्य बाइट 1 बन जाते हैं)
मानकBitcoin Base58
केस-संवेदीहाँ

उदाहरण

इनपुट (UTF-8)आउटपुट
Hello, World!72k1xXWG59fYdzSNoA
Base64.isr1Nm3AS7ZcnN
你好2xuZUfBKa

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

शुरुआती शून्य बाइट 1 क्यों बन जाते हैं?
Base58 इनपुट को एक ही संख्या में बदल देता है, और शुरुआती शून्य बाइट उस संख्या का मान नहीं बदलते। उन्हें बचाए रखने के लिए हर शुरुआती शून्य बाइट को वर्णमाला के पहले अक्षर के रूप में लिखा जाता है, जो Bitcoin वर्णमाला में 1 है। इसीलिए 32 शून्य बाइट एनकोड होकर लगातार 32 बार 1 बन जाते हैं।
क्या Base58 केस-संवेदी है?

हाँ। बड़े और छोटे अक्षर अलग-अलग अंक हैं, इसलिए किसी एक अक्षर का केस बदलने से डिकोड किए गए बाइट बदल जाते हैं या स्ट्रिंग अमान्य हो जाती है।

Base58 और Base58Check में क्या अंतर है?
Base58Check एनकोड करने से पहले डेटा के अंत में 4 बाइट का चेकसम (डबल SHA-256 हैश की शुरुआत) जोड़ता है, ताकि टाइपिंग की ग़लतियाँ पकड़ी जा सकें। यहाँ “Base58Check चेकसम” विकल्प चालू करें, या विस्तार से जानने के लिए Base58Check पेज देखें।
इनपुट लगभग 20 KB तक ही सीमित क्यों है?
पूरा इनपुट एक बड़ी संख्या होता है, इसलिए गणना का काम उसकी लंबाई के वर्ग के अनुपात में बढ़ता है। Base58 कुंजियों, हैश और एड्रेस के लिए बना है, फ़ाइलों के लिए नहीं। बड़े डेटा के लिए Base64 या Base85 का उपयोग करें।