सभी लेख

Base32: यह Base64 से कैसे अलग है और कब ज़्यादा सुविधाजनक है

Base32 का पूरा मकसद यह है कि जब किसी इंसान को कोड पढ़कर सुनाना हो, फ़ोन पर बताना हो या हाथ से टाइप करना हो, तो Base64 के 64 अक्षरों वाले जटिल सेट की तुलना में सिर्फ़ 32 अक्षरों वाला सेट कहीं कम गलतियों की गुंजाइश छोड़ता है।

दो-चरणीय सत्यापन सेटअप में Base32 सामने आता है

जब Google Authenticator या किसी और ऐप में QR कोड स्कैन नहीं हो पाता, तो ऐप एक "सेटअप की" दिखाता है जिसे हाथ से टाइप किया जा सकता है — यह Base32 होता है, Base64 नहीं। भारत में बैंकिंग ऐप्स और UPI से जुड़े 2FA सेटअप में यह स्थिति अक्सर आती है, खासकर जब कैमरा परमिशन या स्कैनर की समस्या हो।

बोलकर बताने के लिए बना अल्फ़ाबेट

Base32, 0, 1, 8, 9 और अक्षर O, I, L को पूरी तरह हटा देता है — ये वही चीज़ें हैं जो फ़ोन कॉल पर या धुंधली स्क्रीन पर सबसे ज़्यादा गड़बड़ पैदा करती हैं। हिंदी बोलने वालों के लिए अंग्रेज़ी अक्षर "O" और अंक शून्य को फ़ोन पर अलग बताना अक्सर मुश्किल होता है — Base32 इस उलझन को अल्फ़ाबेट से ही हटा देता है।

यह कहाँ-कहाँ दिखता है

  • Tor नेटवर्क के .onion पते — 56 अक्षरों वाला हिस्सा असल में Ed25519 पब्लिक की का Base32 एन्कोडिंग है।
  • DNS लेबल और सबडोमेन, जो प्रोटोकॉल के हिसाब से केस-असंवेदनशील होते हैं।
  • रसीद या इनवॉइस पर छपे रेफ़रल कोड, जिन्हें ग्राहक को हाथ से टाइप करके वेबसाइट पर डालना पड़ता है।

पठनीयता की कीमत — लंबाई

कम अक्षरों वाला सेट होने से हर बाइट को दर्शाने में ज़्यादा अक्षर लगते हैं — नतीजा Base64 से करीब 60% लंबा होता है। 20 बाइट की गुप्त कुंजी के लिए यह फ़र्क़ मामूली है, लेकिन कई मेगाबाइट की फ़ाइल के लिए Base32 का इस्तेमाल व्यावहारिक नहीं।

Base32 और Base32hex — एक-दूसरे की जगह इस्तेमाल नहीं हो सकते

RFC 4648 में Base32hex भी परिभाषित है, जो A–Z2–7 की जगह 0–9A–V अल्फ़ाबेट इस्तेमाल करता है ताकि एन्कोड की गई स्ट्रिंग का सॉर्ट क्रम मूल बाइट्स के क्रम जैसा ही रहे — यह कुछ डेटाबेस के लिए ज़रूरी होता है। एक वेरिएंट से एन्कोड की गई स्ट्रिंग दूसरे वेरिएंट से सही तरीके से डिकोड नहीं होती, इसलिए डिकोड करने से पहले यह जांच लेना बेहतर है कि असल में कौन-सा वेरिएंट इस्तेमाल हुआ था।

टूल आज़माएँ