Base64 को तुरंत एन्कोड और डिकोड करें
Base64 एक बुनियादी एन्कोडिंग तरीक़ा है जो पूरी कंप्यूटिंग दुनिया में बाइनरी डेटा को सुरक्षित रूप से टेक्स्ट के रूप में दिखाने के लिए इस्तेमाल होता है। चाहे आप APIs के साथ काम कर रहे हों, नेटवर्क रिक्वेस्ट डीबग कर रहे हों, JWT टोकन समझने की कोशिश कर रहे हों, या HTML में इमेज एम्बेड कर रहे हों — Base64 हर जगह दिखता है। यह टूल किसी भी टेक्स्ट को एक क्लिक में Base64 में बदल देता है, और किसी भी Base64 स्ट्रिंग को वापस टेक्स्ट में डिकोड कर देता है।
Base64 है क्या?
Base64 एक बाइनरी-से-टेक्स्ट एन्कोडिंग स्कीम है जो बाइनरी डेटा को दिखाने के लिए सिर्फ़ 64 प्रिंट होने लायक़ ASCII अक्षरों का इस्तेमाल करती है: 26 बड़े अक्षर (A-Z), 26 छोटे अक्षर (a-z), 10 अंक (0-9), और साथ में + और / चिह्न। एक 65वाँ अक्षर, =, पैडिंग के लिए इस्तेमाल होता है।
"Base64" नाम इसी बात से आया है कि यह एन्कोडिंग 64 अलग-अलग अक्षरों का इस्तेमाल करती है। हर Base64 अक्षर डेटा के 6 बिट को दर्शाता है (2^6 = 64)। चूँकि एक बाइट 8 बिट की होती है, इसलिए इनपुट के हर 3 बाइट ठीक 4 Base64 अक्षरों में बदल जाते हैं।
Base64 का वजूद क्यों है
कई पुराने टेक्स्ट-आधारित प्रोटोकॉल और सिस्टम सिर्फ़ ASCII टेक्स्ट संभाल सकते हैं, मनमाने बाइनरी बाइट नहीं। ईमेल (SMTP), URL, HTTP हेडर और XML — ये सब टेक्स्ट को सुरक्षित रूप से संभाल लेते हैं। लेकिन बाइनरी डेटा — जैसे इमेज, ऑडियो फ़ाइल, क्रिप्टोग्राफ़िक की या कंप्रेस्ड डेटा — इन्हें एन्कोड किए बिना इन चैनलों से सुरक्षित रूप से भेजा नहीं जा सकता।
Base64 इसका हल यह निकालता है कि किसी भी बाइनरी डेटा को ऐसे ASCII अक्षरों के एक सबसेट में बदल देता है जिन्हें हर टेक्स्ट सिस्टम आराम से स्टोर और ट्रांसमिट कर सकता है।
आम इस्तेमाल
डेटा URI: इमेज को अलग फ़ाइल रिक्वेस्ट के बिना सीधे HTML या CSS में एम्बेड किया जा सकता है। एक डेटा URI data:image/png;base64, से शुरू होकर उसके बाद Base64-एन्कोडेड इमेज डेटा आता है।
ईमेल अटैचमेंट (MIME): ईमेल अटैचमेंट को MIME प्रोटोकॉल में भेजने के लिए Base64 में एन्कोड किया जाता है।
JSON APIs: बाइनरी डेटा (इमेज, फ़ाइलें, क्रिप्टोग्राफ़िक हस्ताक्षर) जो JSON में भेजा जाता है, उसे Base64 में एन्कोड करना ज़रूरी है क्योंकि JSON सिर्फ़ टेक्स्ट संभालता है।
HTTP बेसिक ऑथेंटिकेशन: Authorization हेडर क्रेडेंशियल को Base64(username:password) के रूप में भेजता है। यह अपने आप में सुरक्षित नहीं है — HTTPS फिर भी ज़रूरी है।
JWT टोकन: JSON वेब टोकन तीन Base64URL-एन्कोडेड हिस्सों (हेडर, पेलोड, हस्ताक्षर) से बनते हैं, जो बिंदुओं से अलग होते हैं।
डेटाबेस स्टोरेज: टेक्स्ट-आधारित स्टोरेज फ़ॉर्मेट (जैसे कुछ NoSQL डेटाबेस या कॉन्फ़िग फ़ाइलें) में स्टोर किए गए बाइनरी ब्लॉब अक्सर Base64 में एन्कोड होते हैं।
Base64 बनाम Base64URL
स्टैंडर्ड Base64 + और / इस्तेमाल करता है, जो URL में ख़ास मतलब रखने वाले अक्षर हैं। Base64URL इन्हें - और _ से बदल देता है ताकि एन्कोड किया गया डेटा URL में इस्तेमाल के लिए सुरक्षित रहे। JWT टोकन Base64URL इस्तेमाल करते हैं। Base64URL में = पैडिंग अक्षर को अक्सर छोड़ भी दिया जाता है।
सुरक्षा से जुड़ा एक नोट
Base64 एन्क्रिप्शन नहीं है। जिसे भी Base64-एन्कोडेड डेटा मिलता है, वह किसी भी Base64 डिकोडर से उसे तुरंत डिकोड कर सकता है। संवेदनशील जानकारी को "छुपाने" के लिए Base64 का इस्तेमाल न करें — उसके लिए असली एन्क्रिप्शन ही इस्तेमाल करें, जो बिना चाबी के पढ़े जाने को रोकने के लिए गणितीय रूप से बनाई गई है, जबकि Base64 सिर्फ़ उसी डेटा को दोबारा पलटने लायक़ ढंग से लिखने का एक तरीक़ा है।
टूल कैसे इस्तेमाल करें
एन्कोड फ़ील्ड में टेक्स्ट पेस्ट करते ही उसका Base64 रूप तुरंत मिल जाता है, या डिकोड फ़ील्ड में कोई Base64 स्ट्रिंग पेस्ट करके मूल टेक्स्ट वापस पाया जा सकता है, दोनों दिशाएँ टाइप करते ही ज़िंदा (live) अपडेट होती हैं। यह किसी JWT के पेलोड को झट से देखने, किसी डेटा URI में असल में क्या है यह जाँचने, या किसी ऐसे वैल्यू को तैयार करने के लिए काम आता है जिसे URL पैरामीटर या JSON फ़ील्ड जैसे टेक्स्ट-ओनली चैनल से सुरक्षित रूप से गुज़रना है।
Base64 एन्कोडिंग चरण-दर-चरण कैसे काम करती है
Base64 बाइनरी डेटा को टेक्स्ट में बदलने के लिए एक सीधी प्रक्रिया अपनाता है। पहले, बाइनरी डेटा को 3-बाइट यानी 24-बिट के गुच्छों में बाँटा जाता है। हर 24-बिट गुच्छे को चार 6-बिट समूहों में तोड़ा जाता है। हर 6-बिट मान, जो 0 से 63 के बीच होता है, Base64 वर्णमाला में खोजा जाता है, जहाँ A=0, B=1, यह क्रम Z=25 तक चलता है, फिर a=26 से z=51, 0=52 से 9=61, +=62 और /=63। अगर इनपुट ठीक 3 बाइट का गुणक न हो, तो आख़िरी समूह पूरा करने के लिए अंत में = पैडिंग अक्षर जोड़े जाते हैं। चूँकि 3 बाइट 4 Base64 अक्षर बन जाते हैं, इसलिए एन्कोडिंग से डेटा का आकार लगभग 33 प्रतिशत बढ़ जाता है — 1 MB की बाइनरी फ़ाइल Base64 में एन्कोड होकर लगभग 1.37 MB का टेक्स्ट बन जाती है।
डेटा URI और इनलाइन इमेज
Base64 के सबसे दिखने वाले इस्तेमालों में से एक है डेटा URI, जो किसी फ़ाइल को अलग फ़ाइल की तरह रेफर करने की बजाय सीधे HTML या CSS में एम्बेड करने देता है, कुछ इस तरह: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...। इससे उस संसाधन के लिए अलग HTTP रिक्वेस्ट की ज़रूरत ख़त्म हो जाती है, जो छोटे आइकॉन और इमेज के लिए परफ़ॉर्मेंस बेहतर कर सकता है। लेकिन Base64 डेटा को उस पेज से अलग कैश नहीं किया जा सकता जिसमें वह एम्बेड है, और लगभग 33 प्रतिशत साइज़ बढ़ने की वजह से बड़ी इमेज के लिए यह तरीक़ा नाकाफ़ी हो जाता है, इसलिए इसे आमतौर पर छोटी फ़ाइलों तक ही सीमित रखा जाता है।
JWT टोकन और Base64URL
JSON वेब टोकन Base64URL नाम के एक वैरिएंट का इस्तेमाल करते हैं, जो + और / अक्षरों को — जिनका URL के अंदर ख़ास मतलब होता है — क्रमशः - और _ से बदल देता है, और आमतौर पर = पैडिंग को पूरी तरह छोड़ देता है। एक JWT बिंदुओं से अलग किए गए तीन हिस्सों जैसा दिखता है — हेडर, पेलोड और हस्ताक्षर — हर एक Base64URL में एन्कोड किया गया डेटा का टुकड़ा, यही वजह है कि JWT को बिना किसी अतिरिक्त एस्केपिंग के सीधे किसी URL या HTTP हेडर में रखा जा सकता है।
ईमेल में Base64
ईमेल के लिए MIME स्टैंडर्ड यह तय करता है कि मैसेज बॉडी और अटैचमेंट को ट्रांसमिशन के लिए कैसे एन्कोड किया जाए। टेक्स्ट-आधारित कंटेंट आमतौर पर एक अलग तरीक़ा इस्तेमाल करता है जिसे quoted-printable एन्कोडिंग कहते हैं, जबकि बाइनरी अटैचमेंट Base64 इस्तेमाल करते हैं। जब आप किसी ईमेल में PDF अटैच करते हैं, तो आपका ईमेल क्लाइंट भेजने से पहले उसे Base64 में एन्कोड कर देता है, और पाने वाले का क्लाइंट उसे अपने-आप वापस मूल फ़ाइल में डिकोड कर देता है — यह सब दोनों तरफ़ के लोगों को दिखे बिना होता है।
प्राइवेट और तुरंत
एन्कोडिंग और डिकोडिंग पूरी तरह आपके ब्राउज़र में बने हुए btoa और atob फ़ंक्शन इस्तेमाल करके होती है, इसलिए नतीजे तुरंत दिखते हैं और जो भी डेटा आप एन्कोड या डिकोड करते हैं वह कभी कहीं भेजा नहीं जाता।
बेस64 अक्सर पूछे जाने वाले प्रश्न
- बेस64 क्या है?
- बेस64 एक एन्कोडिंग योजना है जो 64 वर्णों (ए-जेड, ए-जेड, 0-9, +, /) का उपयोग करके बाइनरी डेटा को एएससीआईआई टेक्स्ट में परिवर्तित करती है। इसका उपयोग ईमेल या JSON जैसे टेक्स्ट-ओनली चैनलों के माध्यम से बाइनरी डेटा को सुरक्षित रूप से प्रसारित करने के लिए किया जाता है।
- क्या बेस64 एन्क्रिप्शन है?
- नहीं, Base64 एक एन्कोडिंग है, एन्क्रिप्शन नहीं। कोई भी व्यक्ति बेस64 स्ट्रिंग को तुरंत डीकोड कर सकता है। संवेदनशील डेटा को छिपाने के लिए इसका उपयोग न करें।
- बेस64 का उपयोग किस लिए किया जाता है?
- HTML/CSS (डेटा URIs) में छवियों को एम्बेड करना, ईमेल अटैचमेंट (MIME) को एन्कोड करना, JSON में बाइनरी डेटा को संग्रहीत करना, HTTP बेसिक ऑथेंटिकेशन में क्रेडेंशियल ट्रांसमिट करना और URL में बाइनरी डेटा को एन्कोड करना।