z-base-32 एनकोडर और डिकोडर

टेक्स्ट, हेक्स बाइट या फ़ाइलों को z-base-32 में बदलें और वापस पाएँ। इसकी छोटे अक्षरों वाली वर्णमाला में आसानी से भ्रमित होने वाले अक्षर नहीं हैं, और आउटपुट को पैडिंग की ज़रूरत नहीं होती।

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

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

  1. टेक्स्ट को z-base-32 में बदलने के लिए “एनकोड करें” चुनें, या z-base-32 को वापस टेक्स्ट में बदलने के लिए “डिकोड करें”।
  2. z-base-32 वेरिएंट चुना हुआ रहने दें और ध्यान रखें कि “पैडिंग” बंद हो, क्योंकि यह फ़ॉर्मैट पैडिंग का उपयोग नहीं करता।
  3. अपना इनपुट टाइप या पेस्ट करें, या कोई फ़ाइल खोलें। टाइप करते ही परिणाम अपडेट होता जाता है।
  4. परिणाम कॉपी करें या उसे फ़ाइल के रूप में डाउनलोड करें।

z-base-32 क्या है?

z-base-32 एक Base32 एनकोडिंग है, जिसे Zooko Wilcox-O'Hearn ने इस तरह बनाया कि लोगों के लिए इसे पढ़ना, लिखना और बोलना आसान हो। इसकी कार्यप्रणाली RFC 4648 Base32 जैसी ही है: हर अक्षर में 5 बिट होते हैं और 5 बाइट 8 अक्षर बनते हैं। जो चीज़ इसे अलग बनाती है, वह है इसकी वर्णमाला:

ybndrfg8ejkmcpqxot1uwisza345h769

यह पूरी तरह छोटे अक्षरों में है और इसमें 0, 2, l और v नहीं हैं, जिन्हें o, z, 1 और u से आसानी से भ्रमित किया जा सकता है। अक्षरों का क्रम भी बदला गया है, इसलिए z-base-32 आउटपुट उन्हीं बाइट के मानक Base32 से बिल्कुल अलग दिखता है और RFC 4648 डिकोडर उसे नहीं पढ़ सकता।

इसमें कोई पैडिंग नहीं होती: डेटा की लंबाई स्ट्रिंग की लंबाई से ही पता चल जाती है। जब दोनों पक्ष लंबाई पर सहमत हों, तो स्पेसिफ़िकेशन ऐसी बिट स्ट्रिंग भी एनकोड कर सकता है जो पूरे बाइट नहीं हैं; यह टूल हमेशा पूरे बाइट के साथ काम करता है।

z-base-32 का उपयोग कहाँ होता है

  • OpenPGP Web Key Directory (WKD)। किसी कुंजी को एक तय (well-known) URL पर प्रकाशित करने के लिए ईमेल पते के लोकल हिस्से को छोटे अक्षरों में बदलकर SHA-1 से हैश किया जाता है, और 20 बाइट के हैश को z-base-32 में एनकोड करके 32 अक्षरों का फ़ाइल नाम बनाया जाता है।
  • ZRTP। मैन-इन-द-मिडल हमले का पता लगाने के लिए दो कॉल करने वाले जो छोटी ऑथेंटिकेशन स्ट्रिंग बोलकर पढ़ते हैं, उसे z-base-32 वर्णमाला वाले Base32 के रूप में दिखाया जा सकता है (RFC 6189)।
  • Lightning Network। lnd और Core Lightning जैसे नोड सॉफ़्टवेयर साइन किए गए संदेश z-base-32 स्ट्रिंग के रूप में लौटाते हैं।

इंसानों के लिए अनुकूल दूसरे फ़ॉर्मैट के लिए Crockford Base32 की तुलना करें, जो अंकों को क्रम में रखता है और टाइपिंग की ग़लतियों को माफ़ कर देता है, और Base58 की भी, जो छोटा है लेकिन केस-संवेदी है।

तकनीकी विवरण

वर्णमालाybndrfg8ejkmcpqxot1uwisza345h769
आउटपुट का आकारहर 5 बाइट पर 8 अक्षर (160%)
पैडिंगकोई नहीं
मानकz-base-32 (Zooko Wilcox-O'Hearn)
केस-संवेदीनहीं

उदाहरण

इनपुट (UTF-8)आउटपुट
Hello, World!jb1sa5dxfoofq551pt1nn
Base64.isejozg3jsgozg1ha
你好h164b3pfzw

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

क्या z-base-32 और Base32 एक ही हैं?

नहीं। यह RFC 4648 Base32 जैसा ही 5-बिट समूहन इस्तेमाल करता है, लेकिन इसकी वर्णमाला अलग और बदले हुए क्रम वाली है, और इसमें पैडिंग नहीं होती। z-base-32 स्ट्रिंग को z-base-32 डिकोडर से ही डिकोड करना चाहिए।

क्या z-base-32 केस-संवेदी है?

वर्णमाला छोटे अक्षरों में है और आउटपुट हमेशा छोटे अक्षरों में होता है। यह डिकोडर बड़े अक्षरों वाला इनपुट भी स्वीकार करता है और डिकोड करने से पहले उसे छोटे अक्षरों में बदल देता है।

अगर मेरी स्ट्रिंग के अंत में = चिह्न हों तो क्या होगा?

z-base-32 पैडिंग का उपयोग नहीं करता, लेकिन अगर किसी स्ट्रिंग के अंत में = चिह्न हों, तो डिकोडर उन्हें बस अनदेखा कर देता है।

WKD हैश कैसे पाएँ?
WKD को पते के लोकल हिस्से का, छोटे अक्षरों में बदलने के बाद, SHA-1 हैश चाहिए, जिसे यह टूल नहीं निकालता। हैश कहीं और निकालें, उसे यहाँ हेक्स इनपुट के रूप में पेस्ट करें और एनकोड करें। GnuPG अपने --with-wkd-hash विकल्प से WKD हैश सीधे भी प्रिंट कर सकता है।