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

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

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

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

  1. टेक्स्ट को Base62 में बदलने के लिए “एनकोड करें” चुनें, या Base62 को वापस टेक्स्ट में बदलने के लिए “डिकोड करें” चुनें।
  2. “वर्णमाला” में वह क्रम चुनें जो आपके सिस्टम से मेल खाता हो: 0-9 A-Z a-z (डिफ़ॉल्ट) या 0-9 a-z A-Z।
  3. अपना इनपुट टाइप या पेस्ट करें, या कोई छोटी फ़ाइल खोलें (लगभग 20 KB तक)।
  4. परिणाम कॉपी करें या उसे फ़ाइल के रूप में डाउनलोड करें।

Base62 क्या है?

Base62 दस अंकों, 26 बड़े अक्षरों और 26 छोटे अक्षरों का उपयोग करता है। केवल अक्षरों और अंकों से बनी यह सबसे बड़ी वर्णमाला है, इसलिए परिणाम को URL, फ़ाइल नामों, डेटाबेस कुंजियों या कोड के आइडेंटिफ़ायर में किसी एस्केपिंग की ज़रूरत नहीं होती। हर अक्षर में लगभग 5.95 बिट होते हैं, जिससे आउटपुट इनपुट के आकार का लगभग 1.34 गुना होता है, यानी लगभग Base64 जितना ही कॉम्पैक्ट, लेकिन +, /, =, - या _ के बिना।

62 दो की घात नहीं है, इसलिए यह टूल Base58 और Base36 की तरह पूरे इनपुट को एक बड़ी संख्या मानता है और उसे आधार 62 में बदलता है। हर शुरुआती शून्य बाइट को शुरुआत में एक 0 के रूप में लिखा जाता है, ताकि एनकोड करके वापस डिकोड करने पर भी वह बना रहे। इनपुट लगभग 20 KB तक सीमित है, क्योंकि बड़े डेटा पर यह गणना धीमी हो जाती है।

Base62 का कोई एक मानक नहीं है

Base64 के विपरीत, Base62 का कोई RFC नहीं है, और इसके इम्प्लीमेंटेशन कुछ ऐसी बातों में अलग होते हैं जिनसे उनका आउटपुट आपस में संगत नहीं रहता:

  • वर्णमाला का क्रम। यह टूल 0-9A-Za-z (डिफ़ॉल्ट) और 0-9a-zA-Z देता है। कुछ दूसरी लाइब्रेरी अक्षरों को अंकों से पहले रखती हैं।
  • शुरुआती शून्य। कुछ इम्प्लीमेंटेशन इस टूल की तरह हर शुरुआती शून्य बाइट के लिए एक 0 रखते हैं, कुछ उन्हें हटा देते हैं, और निश्चित लंबाई वाले फ़ॉर्मैट परिणाम को एक तय चौड़ाई तक पैड करते हैं।
  • क्या एनकोड किया जाता है। कई Base62 फ़ंक्शन बाइट के क्रम के बजाय किसी पूर्णांक, जैसे डेटाबेस ID, को एनकोड करते हैं। कुछ अन्य डेटा को निश्चित आकार के ब्लॉक में बाँटते हैं।

अगर किसी दूसरे सिस्टम की स्ट्रिंग यहाँ डिकोड होकर बेतुका डेटा देती है, तो दूसरी वर्णमाला वाला विकल्प आज़माएँ। अगर फिर भी काम न बने, तो वह सिस्टम शायद कोई अलग विधि इस्तेमाल करता है।

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

URL शॉर्टनर अपने-आप बढ़ने वाली ID को एक छोटे कोड में बदलते हैं: सात Base62 अक्षरों से 3.5 लाख करोड़ (3.5 ट्रिलियन) से ज़्यादा मान दर्शाए जा सकते हैं। KSUID जैसी क्रम से लगाई जा सकने वाली ID 27 अक्षरों के निश्चित Base62 रूप का उपयोग करती हैं, और कई सेवाएँ API कुंजियों और टोकन के लिए Base62 इस्तेमाल करती हैं, क्योंकि डबल क्लिक से पूरी स्ट्रिंग चुन ली जाती है और उसे कहीं भी पेस्ट किया जा सकता है। किसी एक पूर्णांक को बदलने के लिए नंबर बेस कन्वर्टर का उपयोग करें, या कोड की कुछ पंक्तियाँ लिखें:

// JavaScript: पूर्णांक (BigInt) से Base62
const A = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
function toBase62(n) {
  let s = '';
  do { s = A[Number(n % 62n)] + s; n /= 62n; } while (n > 0n);
  return s;
}
toBase62(123456789n);   // '8M0kX'

तकनीकी विवरण

वर्णमाला0-9 A-Z a-z
आउटपुट का आकारलगभग 134% (बड़ी संख्या का रूपांतरण)
पैडिंगकोई नहीं
मानककोई औपचारिक मानक नहीं
केस-संवेदीहाँ

उदाहरण

इनपुट (UTF-8)आउटपुट
Hello, World!1wJfrzvdbtXUOlUjUf
Base64.isNWxjrFq4r3rv
你好19PqtKE1t

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

क्या Base62 URL-सुरक्षित है?
हाँ। यह केवल A-Z, a-z और 0-9 का उपयोग करता है, जिन्हें URL में कभी एस्केप करने की ज़रूरत नहीं होती। Base64URL भी URL-सुरक्षित है, लेकिन उसमें - और _ अक्षर भी शामिल हैं।
मेरी Base62 स्ट्रिंग डिकोड होकर ग़लत टेक्स्ट क्यों देती है?

Base62 इम्प्लीमेंटेशन वर्णमाला के क्रम और विधि में अलग होते हैं। 0-9A-Za-z और 0-9a-zA-Z वर्णमालाओं के बीच बदलकर देखें। अगर दोनों में से कोई काम न करे, तो स्ट्रिंग शायद किसी पूर्णांक से या किसी दूसरे एल्गोरिदम से बनाई गई है।

क्या Base62 केस-संवेदी है?

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

Base62 इस्तेमाल करें या Base58?
Base58 में 0, O, I और l नहीं होते, ताकि हाथ से कॉपी करते समय लोग उन्हें आपस में न उलझाएँ। Base62 सभी अक्षर और अंक रखता है और थोड़ा छोटा होता है। जिन स्ट्रिंग को लोग टाइप करते हैं, उनके लिए Base58 चुनें, और जिन्हें मशीनें संभालती हैं, उनके लिए Base62।