UTILS.
100% ब्राउज़र में
🔢

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

इंटीजर या बाइट स्ट्रिंग्स को सघन URL-सुरक्षित Base62 (0-9A-Za-z) में और वापस बदलें, BigInt सपोर्ट और GMP वर्णमाला वेरिएंट के साथ, सब कुछ ब्राउज़र में।

— आउटपुट यहाँ दिखेगा —

इस टूल के बारे में

Base62 टूल संख्याओं और बाइट स्ट्रिंग्स को सघन 62-सिंबल वर्णमाला 0-9A-Za-z में एन्कोड करता है और वापस डिकोड करता है। Base62 छोटे IDs, URL slugs, और छोटे किए गए लिंक्स के लिए लोकप्रिय है क्योंकि यह +, / या = वर्णों के बिना URL-सुरक्षित रहता है जो Base64 उपयोग करता है। सभी कन्वर्ज़न आपके ब्राउज़र में स्थानीय रूप से JavaScript BigInt के साथ चलता है, इसलिए मनमाने रूप से बड़े मान सटीक होते हैं और कुछ भी अपलोड नहीं होता।

इंटीजर मोड इनपुट को मनमानी-परिशुद्धता वाले इंटीजर (दशमलव, या 0x-प्रीफ़िक्स्ड hex) के रूप में मानता है: एन्कोडिंग बार-बार 62 से विभाजित करती है और alphabet[remainder] को आगे जोड़ती है, और डिकोडिंग Σ alphabet.indexOf(ch)·62^position की गणना करती है। बाइट मोड इनपुट बाइट्स (UTF-8 टेक्स्ट या hex) को एक big-endian bignum के रूप में मानता है और वही base-62 कन्वर्ज़न लागू करता है, लेकिन यह Bitcoin-Base58 शैली में leading शून्य बाइट्स को भी संरक्षित करता है: प्रत्येक leading 0x00 बाइट एक leading '0' वर्ण बन जाता है ताकि round-trips हानि रहित हों।

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

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

इंटीजर और बाइट्स मोड में क्या अंतर है?
इंटीजर मोड एक एकल मनमानी-परिशुद्धता वाली संख्या (दशमलव या 0x-hex) को Base62 स्ट्रिंग में और वापस दशमलव इंटीजर में बदलता है। बाइट्स मोड बाइट्स के अनुक्रम (UTF-8 टेक्स्ट या hex से) को big-endian bignum के रूप में बदलता है, और leading शून्य बाइट्स को leading वर्णमाला-शून्य वर्णों के रूप में संरक्षित करता है ताकि बाइनरी डेटा ठीक-ठीक round-trip करे।
दो वर्णमालाएँ क्यों हैं?
स्टैंडर्ड वर्णमाला 0-9A-Za-z है (लोअरकेस से पहले अपरकेस)। GMP-आधारित लाइब्रेरियाँ 0-9a-zA-Z का उपयोग करती हैं (अपरकेस से पहले लोअरकेस)। समान मान प्रत्येक के अंतर्गत अलग तरह से एन्कोड होता है, इसलिए टॉगल आपको उस क्रम के साथ अंतरप्रचालन करने देता है जो आपके अन्य टूल्स अपेक्षा करते हैं।
यह कितनी बड़ी संख्या संभाल सकता है?
किसी भी आकार की। टूल JavaScript BigInt का उपयोग करता है, इसलिए कोई 2^53 परिशुद्धता सीमा नहीं है — आप मनमानी लंबाई के इंटीजर और बाइट स्ट्रिंग्स को ठीक-ठीक एन्कोड और डिकोड कर सकते हैं, जो हैश, UUIDs, और लंबे आइडेंटिफ़ायर के लिए आवश्यक है।
बाइट्स मोड में leading शून्य कैसे संभाले जाते हैं?
प्रत्येक leading 0x00 बाइट एक leading वर्णमाला-शून्य वर्ण (Base58 के leading '1' की तरह) के रूप में एन्कोड होता है। डिकोड पर, प्रत्येक leading वर्णमाला-शून्य वर्ण एक 0x00 बाइट को पुनर्स्थापित करता है, इसलिए एन्कोड फिर डिकोड करने पर ठीक मूल बाइट अनुक्रम लौटता है।

और टूल