Base64 क्या है?
Base64 बाइनरी डेटा को 64 सुरक्षित कैरेक्टर (A–Z, a–z, 0–9, + और /) से टेक्स्ट में दर्शाता है; तीन बाइट चार कैरेक्टर बनते हैं, इसलिए आउटपुट इनपुट से लगभग 33% बड़ा होता है। यह इसलिए है ताकि बाइनरी कंटेंट टेक्स्ट के लिए बने चैनलों — ई-मेल, JSON, URL और HTTP हेडर — से गुज़र सके। यह एन्कोडिंग है, एन्क्रिप्शन नहीं: इसे कोई भी डिकोड कर सकता है।
सुरक्षा नोट: Base64 कुछ नहीं छिपाता। केवल Base64 में एन्कोड किए गए क्रेडेंशियल, टोकन या निजी डेटा व्यावहारिक रूप से सादे टेक्स्ट हैं; ट्रांज़िट में TLS और स्टोरेज में असली एन्क्रिप्शन इस्तेमाल करें।
गाइड पढ़ें: Base64 क्या है? एन्कोडिंग समझें
Base64 एन्कोडर कैसे इस्तेमाल करें
- टेक्स्ट टाइप करें या कोई फ़ाइल चुनें।
- ज़रूरत के अनुसार URL-सुरक्षित, पैडिंग और रैपिंग के विकल्प चुनें।
- नतीजे को HTML या CSS में एम्बेड करने के लिए "data: URI" चालू करें।
- Base64 आउटपुट कॉपी करें या डाउनलोड करें।
Base64 एन्कोडर की खूबियाँ
- UTF-8 टेक्स्ट या लोकल फ़ाइल (5 MB तक) एन्कोड करता है — कुछ भी अपलोड नहीं होता
- स्टैंडर्ड या URL-सुरक्षित अल्फ़ाबेट, = पैडिंग के साथ या उसके बिना
- 76 (MIME) या 64 (PEM) कैरेक्टर पर लाइन रैपिंग
- अपने आप MIME टाइप पहचान कर data: URI आउटपुट
- विवरण में आम फ़ाइल सिग्नेचर (PNG, PDF, ZIP…) पहचानता है
- साइज़ के आँकड़ों के साथ लाइव एन्कोडिंग
Base64 एन्कोडर का उदाहरण
यूनिकोड टेक्स्ट एन्कोड करना
इनपुट:
Hello, MUTQAN TOOLS! مرحبا 🚀आउटपुट:
SGVsbG8sIE1VVFFBTiBUT09MUyEg2YXYsdit2KjYpyDwn5qAHel के तीन बाइट SGVs बनते हैं, जिससे उदाहरण का आउटपुट शुरू होता है; अरबी م दो बाइट है, इसलिए अंत में एक “=” आता है।Hel — उदाहरण के पहले तीन बाइट
टेक्स्ट
H e l
UTF-8 बाइट (hex)
48 65 6c
बिट
01001000 01100101 01101100
6-बिट समूह
010010 000110 010101 101100
वैल्यू (0–63)
18 6 21 44
Base64 आउटपुट
S G V s
م — एक अरबी अक्षर, दो UTF-8 बाइट
टेक्स्ट
م
UTF-8 बाइट (hex)
d9 85
बिट
11011001 10000101 00
6-बिट समूह
110110 011000 010100
वैल्यू (0–63)
54 24 20
Base64 आउटपुट
2 Y U =
ठोस रेखाएँ बाइट की सीमा हैं, डैश वाली रेखाएँ 6-बिट समूहों की। हल्के ख़ाने इनपुट के नहीं हैं: पैडिंग के ज़ीरो बिट और “=”, और छूटे हुए बाइट की ख़ाली जगह।
Base64 एन्कोडर के बारे में अक्सर पूछे जाने वाले सवाल
Base64 और Base64url में क्या अंतर है?
Base64url (RFC 4648 §5) में "+" की जगह "-" और "/" की जगह "_" आता है और आमतौर पर "=" पैडिंग हटा दी जाती है, इसलिए नतीजा बिना percent-encoding के URL, फ़ाइल नाम और JWT में सुरक्षित रहता है।
ग़ैर-अंग्रेज़ी कैरेक्टर कैसे संभाले जाते हैं?
टेक्स्ट पहले UTF-8 बाइट में बदला जाता है, इसलिए अरबी, हिंदी, इमोजी और कोई भी दूसरा यूनिकोड टेक्स्ट सही-सही राउंड ट्रिप करता है। डिकोडर को भी वे बाइट UTF-8 के रूप में ही पढ़ने चाहिए।
लाइन रैपिंग कब इस्तेमाल करनी चाहिए?
MIME ईमेल बॉडी 76 कैरेक्टर की लाइनें इस्तेमाल करती हैं और PEM फ़ाइलें 64 की। data URI, JSON वैल्यू और HTTP हेडर एक ही लाइन में रहने चाहिए — वहाँ रैपिंग बंद रखें।
क्या Base64 मेरे डेटा को एन्क्रिप्ट करता है?
नहीं। यह एक उलटी जा सकने वाली एन्कोडिंग है जिसे कोई भी डिकोड कर सकता है। इसका इस्तेमाल बाइनरी डेटा को टेक्स्ट के रूप में भेजने के लिए करें, सीक्रेट छिपाने के लिए कभी नहीं।
आउटपुट इनपुट से लंबा क्यों होता है?
हर 3 बाइट 4 कैरेक्टर बन जाते हैं, इसलिए Base64 कच्चे बाइट से लगभग 33 % बड़ा होता है (और रैपिंग चालू हो तो लाइन ब्रेक अलग से)।
तकनीकी नोट्स
Base64 (RFC 4648) हर 3 इनपुट बाइट को 64-कैरेक्टर अल्फ़ाबेट के 4 कैरेक्टर में बदलता है; आख़िरी समूह को "=" से पैड किया जाता है। टेक्स्ट पहले UTF-8 में बदला जाता है, इसलिए आउटपुट बाइट-दर-बाइट सटीक होता है और atob/btoa (UTF-8 संभालने के बाद), Buffer.from(..., "base64") तथा base64 कमांड-लाइन टूल के साथ पूरी तरह संगत रहता है।
संदर्भ
- RFC 4648: The Base16, Base32, and Base64 Data EncodingsBase64 और Base64url अक्षरमाला, पैडिंग नियम और hex (Base16) एन्कोडिंग।
- Base64 — MDN Glossary — MDNब्राउज़र में Base64: btoa/atob, URL-सेफ़ वेरिएंट और बाइनरी डेटा एन्कोड करने का साइज़ ओवरहेड।
- RFC 2397: The "data" URL schemeछोटी फ़ाइलें URL में data:<mediatype>;base64,<data> के रूप में कैसे एम्बेड होती हैं।