Base64 एनकोड और डीकोड
मुफ़्त ऑनलाइन Base64 एनकोड और डीकोड टूल। 100% स्थानीय प्रसंस्करण — आपका डेटा कभी आपके डिवाइस से नहीं जाता।
परिणाम यहां प्रदर्शित होगा...
इनपुट → एन्कोड
Usage Guide
Base64 के बारे में
Base64 एक एन्कोडिंग विधि है जो 64 प्रिंटेबल वर्णों का उपयोग करके बाइनरी डेटा का प्रतिनिधित्व करती है, जिसका व्यापक रूप से टेक्स्ट प्रोटोकॉल पर बाइनरी डेटा ट्रांसमिशन की आवश्यकता वाले परिदृश्यों में उपयोग किया जाता है। Base64 A-Z, a-z, 0-9, +, / (कुल 64 वर्ण) का उपयोग करता है, साथ ही = को पैडिंग वर्ण के रूप में उपयोग करता है। यह बाइनरी डेटा के हर 3 बाइट (24 बिट) को 4 Base64 वर्णों में एन्कोड करता है, जिसके परिणामस्वरूप एन्कोडेड डेटा मूल का लगभग 133% आकार होता है। Base64 एक एन्क्रिप्शन एल्गोरिदम नहीं है बल्कि एक एन्कोडिंग विधि है जिसे कोई भी डिकोड कर सकता है।
उपयोग के चरण
Base64 एन्कोडिंग और डिकोडिंग बहुत सरल है:
एन्कोडिंग सिद्धांत
Base64 एन्कोडिंग निम्नलिखित प्रक्रिया के माध्यम से बाइनरी डेटा को ASCII वर्णों में परिवर्तित करता है:
Base64 वेरिएंट
Base64 के विभिन्न परिदृश्यों के लिए कई सामान्य वेरिएंट हैं:
अनुप्रयोग परिदृश्य
Base64 का व्यापक रूप से टेक्स्ट प्रोटोकॉल पर बाइनरी डेटा ट्रांसमिशन की आवश्यकता वाले परिदृश्यों में उपयोग किया जाता है:
FAQ
Q: क्या Base64 एन्कोडिंग डेटा आकार बढ़ाता है?
A: हां, Base64 एन्कोडिंग डेटा आकार को लगभग 33% बढ़ाता है। कारण: Base64 हर 3 बाइट (24 बिट) को 4 वर्णों (32 बिट) में एन्कोड करता है, 8 बिट जोड़ता है। उदाहरण के लिए, एक 100KB फ़ाइल एन्कोडिंग के बाद लगभग 133KB हो जाती है। प्रभाव: 1) नेटवर्क ट्रांसमिशन समय बढ़ाता है। 2) भंडारण स्थान बढ़ाता है। 3) CPU एन्कोडिंग/डिकोडिंग ओवरहेड बढ़ाता है। अनुकूलन: 1) बड़ी फ़ाइलों के लिए, एन्कोडिंग से पहले संपीड़न (जैसे gzip) पर विचार करें। 2) URL-सुरक्षित Base64 का उपयोग करना और पैडिंग को छोड़ना आकार को थोड़ा कम कर सकता है। 3) वेब संसाधनों के लिए, डेटा URL के बजाय सीधे बाइनरी ट्रांसमिशन (जैसे Blob URL) का उपयोग करने पर विचार करें।
Q: Base64 और एन्क्रिप्शन के बीच क्या अंतर है?
A: Base64 एन्कोडिंग है, एन्क्रिप्शन नहीं; वे मौलिक रूप से अलग हैं। Base64 एन्कोडिंग: 1) उद्देश्य: बाइनरी डेटा को ट्रांसमिशन के लिए टेक्स्ट प्रारूप में परिवर्तित करें। 2) प्रतिवर्तनीयता: कोई भी बिना कुंजी के डिकोड कर सकता है। 3) सुरक्षा: कोई सुरक्षा नहीं, डेटा गोपनीयता की रक्षा नहीं कर सकता। एन्क्रिप्शन: 1) उद्देश्य: डेटा गोपनीयता की रक्षा करें और अनधिकृत पहुंच को रोकें। 2) प्रतिवर्तनीयता: डिक्रिप्ट करने के लिए कुंजी की आवश्यकता है। 3) सुरक्षा: डेटा सुरक्षा प्रदान करता है। सही दृष्टिकोण: यदि डेटा सुरक्षा की आवश्यकता है, तो पहले AES या समान एल्गोरिदम के साथ एन्क्रिप्ट करें, फिर ट्रांसमिशन के लिए Base64 के साथ एन्कोड करें।
Q: Base64 स्ट्रिंग = चिन्हों के साथ क्यों समाप्त होती हैं?
A: = Base64 का पैडिंग वर्ण है, जिसका उपयोग एन्कोडिंग लंबाई को संरेखित करने के लिए किया जाता है। कारण: Base64 हर 3 बाइट को 4 वर्णों में एन्कोड करता है। यदि मूल डेटा लंबाई 3 का गुणक नहीं है, तो अंतिम समूह में 3 बाइट से कम होगा और = पैडिंग की आवश्यकता होगी। नियम: 1) 1 बाइट शेष: 2 वर्ण + 2 = में एन्कोड करता है। 2) 2 बाइट शेष: 3 वर्ण + 1 = में एन्कोड करता है। 3) बिल्कुल 3 बाइट: कोई पैडिंग की आवश्यकता नहीं। उदाहरण: “A” → “QQ==”, “AB” → “QUI=”, “ABC” → “QUJD”। URL-सुरक्षित: URLs में, = को छोड़ा जा सकता है (URL-सुरक्षित Base64), और डिकोडिंग के दौरान स्वचालित रूप से वापस जोड़ा जाएगा।
Q: Base64 और Hex एन्कोडिंग के बीच क्या अंतर है?
A: Base64 और Hex दोनों बाइनरी डेटा के टेक्स्ट प्रतिनिधित्व हैं, लेकिन विभिन्न विशेषताएं हैं। Base64: 1) 64 वर्णों का उपयोग करता है (A-Z, a-z, 0-9, +, /)। 2) एन्कोडेड आकार मूल डेटा का लगभग 133% है। 3) अधिक कॉम्पैक्ट, ट्रांसमिशन के लिए उपयुक्त। Hex (हेक्साडेसिमल): 1) 16 वर्णों का उपयोग करता है (0-9, A-F)। 2) एन्कोडेड आकार मूल डेटा का 200% है। 3) अधिक पठनीय, डिबगिंग के लिए उपयुक्त। चयन सलाह: 1) कॉम्पैक्ट ट्रांसमिशन की आवश्यकता: Base64 का उपयोग करें। 2) पठनीयता और डिबगिंग की आवश्यकता: Hex का उपयोग करें। 3) एन्क्रिप्शन एल्गोरिदम आउटपुट: आमतौर पर Hex का उपयोग करता है (जैसे SHA-256)।
Q: डेटा URL क्या है? इसका उपयोग कैसे करें?
A: डेटा URL Base64 एन्कोडिंग का उपयोग करके डेटा को सीधे URL में एम्बेड करने का एक तरीका है। प्रारूप: data:[media type];base64,[Base64 data]। उदाहरण: data:image/png;base64,iVBORw0KGgoAAAANS...। लाभ: 1) HTTP अनुरोधों को कम करता है, पृष्ठ लोड गति में सुधार करता है। 2) कोई अतिरिक्त फ़ाइलों की आवश्यकता नहीं, साझा करना और एम्बेड करना आसान है। नुकसान: 1) HTML/CSS फ़ाइल आकार बढ़ाता है। 2) ब्राउज़र कैश का उपयोग नहीं कर सकता। 3) बड़ी फ़ाइलों के लिए उपयुक्त नहीं। उपयोग के मामले: 1) छोटे आइकन, लोगो (< 10KB)। 2) इनलाइन SVG छवियां। 3) फ़ॉन्ट फ़ाइलें (छोटे फ़ॉन्ट)। 4) CSS पृष्ठभूमि छवियां। सर्वोत्तम प्रथा: डेटा URLs का उपयोग केवल 10KB से छोटे संसाधनों के लिए करें; बड़ी फ़ाइलों को अलग फ़ाइलों का उपयोग करना चाहिए और CDN और कैशिंग का उपयोग करना चाहिए।
Q: JavaScript में Base64 का उपयोग कैसे करें?
A: JavaScript बिल्ट-इन Base64 एन्कोडिंग और डिकोडिंग विधियां प्रदान करता है। एन्कोडिंग: btoa(string) - एक स्ट्रिंग को Base64 में एन्कोड करता है। डिकोडिंग: atob(base64String) - Base64 को स्ट्रिंग में डिकोड करता है। नोट: btoa और atob केवल ASCII वर्णों का समर्थन करते हैं। UTF-8 स्ट्रिंग्स के लिए, पहले रूपांतरण की आवश्यकता है:// UTF-8 एन्कोड करें
const base64 = btoa(unescape(encodeURIComponent('中文')));
// UTF-8 डिकोड करें
const text = decodeURIComponent(escape(atob(base64)));
आधुनिक विधि: UTF-8 को संभालने के लिए TextEncoder और TextDecoder APIs का उपयोग करें। फ़ाइल एन्कोडिंग: फ़ाइलों को डेटा URLs के रूप में एन्कोड करने के लिए FileReader.readAsDataURL() का उपयोग करें।
Use Cases
अनुशंसित: छोटी छवियों के लिए डेटा URL
HTML और CSS में छोटी छवियों (जैसे आइकन और लोगो) को एम्बेड करने के लिए डेटा URLs का उपयोग करने से HTTP अनुरोधों को कम किया जा सकता है और पृष्ठ लोड गति में सुधार किया जा सकता है। 10KB से छोटी छवियों के लिए अनुशंसित; बड़ी छवियों को अलग फ़ाइलों का उपयोग करना चाहिए और CDN और ब्राउज़र कैशिंग का उपयोग करना चाहिए। डेटा URLs विशेष रूप से इनलाइन SVG छवियों के लिए उपयुक्त हैं क्योंकि SVG एक टेक्स्ट प्रारूप है जो Base64 एन्कोडिंग के बाद पठनीय रहता है।
- ✅ छोटे आइकन, लोगो (< 10KB)
- ✅ इनलाइन SVG छवियां
- ✅ CSS पृष्ठभूमि छवियां (छोटी)
- ❌ बड़ी छवियों से बचें (> 50KB)
- 💡 स्वचालित रूपांतरण के लिए बिल्ड टूल्स (जैसे Webpack) का उपयोग करें
अनुशंसित: JWT (JSON वेब टोकन)
JWT क्लाइंट और सर्वर के बीच सुरक्षित रूप से जानकारी ट्रांसमिट करने के लिए हेडर और पेलोड को एन्कोड करने के लिए Base64 का उपयोग करता है। JWT तीन भागों से मिलकर बना है: हेडर, पेलोड, और हस्ताक्षर, डॉट्स द्वारा अलग किए गए। हेडर और पेलोड Base64 एन्कोडिंग का उपयोग करते हैं, जबकि हस्ताक्षर HMAC-SHA256 या RSA हस्ताक्षर का उपयोग करता है।
- ✅ उपयोगकर्ता प्रमाणीकरण और प्राधिकरण
- ✅ एकल साइन-ऑन (SSO)
- ✅ API एक्सेस टोकन
- ❌ JWT में संवेदनशील जानकारी संग्रहीत न करें (Base64 डिकोडेबल है)
- 💡 JWT ट्रांसमिट करने के लिए HTTPS का उपयोग करें
अनुशंसित: HTTP बेसिक प्रमाणीकरण
HTTP बेसिक प्रमाणीकरण उपयोगकर्ता नाम और पासवर्ड को एन्कोड करने के लिए Base64 का उपयोग करता है, Authorization: Basic [Base64(username:password)] के रूप में स्वरूपित। जबकि Base64 एन्कोडिंग कोई सुरक्षा प्रदान नहीं करता है, इसे HTTPS के साथ उपयोग करने से ट्रांसमिशन के दौरान क्रेडेंशियल की रक्षा की जा सकती है। HTTP बेसिक प्रमाणीकरण सरल और उपयोग में आसान है, आंतरिक सिस्टम या त्वरित प्रमाणीकरण कार्यान्वयन की आवश्यकता वाले परिदृश्यों के लिए उपयुक्त है।
- ✅ आंतरिक सिस्टम, एडमिन पैनल
- ✅ API प्रमाणीकरण (HTTPS के साथ)
- ✅ सरल उपयोगकर्ता प्रमाणीकरण
- ❌ सादे पाठ ट्रांसमिशन से बचने के लिए HTTPS का उपयोग करना चाहिए
- 💡 अधिक सुरक्षित OAuth 2.0 या JWT पर विचार करें
अनुशंसित: ईमेल अटैचमेंट (MIME)
MIME (मल्टीपरपज़ इंटरनेट मेल एक्सटेंशन) प्रोटोकॉल ईमेल अटैचमेंट को एन्कोड करने के लिए Base64 का उपयोग करता है, बाइनरी फ़ाइलों को ईमेल सिस्टम में ट्रांसमिशन के लिए टेक्स्ट प्रारूप में परिवर्तित करता है। MIME Base64 ईमेल प्रोटोकॉल लाइन लंबाई सीमा का पालन करने के लिए हर 76 वर्णों में लाइन ब्रेक (CRLF) डालता है। आधुनिक ईमेल क्लाइंट स्वचालित रूप से बिना मैनुअल उपयोगकर्ता हस्तक्षेप के Base64 एन्कोडिंग और डिकोडिंग को संभालते हैं।
- ✅ ईमेल अटैचमेंट एन्कोडिंग
- ✅ ईमेल बॉडी में छवियों को एम्बेड करना
- ✅ RFC 2045 मानक के अनुरूप
- 💡 स्वचालित हैंडलिंग के लिए ईमेल लाइब्रेरी (जैसे Nodemailer) का उपयोग करें
अनुशंसित: API बाइनरी डेटा ट्रांसमिशन
JSON और XML जैसे टेक्स्ट-प्रारूप APIs में बाइनरी डेटा (जैसे छवियां और फ़ाइलें) ट्रांसमिट करते समय, Base64 एन्कोडिंग का उपयोग किया जा सकता है। यह multipart/form-data जैसे जटिल बाइनरी ट्रांसमिशन प्रारूपों को संभालने से बचता है। हालांकि, बड़ी फ़ाइलों के लिए, बेहतर प्रदर्शन के लिए समर्पित फ़ाइल अपलोड APIs (जैसे multipart/form-data या ऑब्जेक्ट स्टोरेज में सीधे अपलोड) की अनुशंसा की जाती है।
- ✅ छोटी फ़ाइल ट्रांसमिशन (< 1MB)
- ✅ JSON APIs में बाइनरी डेटा एम्बेड करना
- ✅ कॉन्फ़िगरेशन फ़ाइलों में प्रमाणपत्र और कुंजी संग्रहीत करना
- ❌ बड़ी फ़ाइलों को ट्रांसमिट करने से बचें (> 10MB)
- 💡 बड़ी फ़ाइलों के लिए multipart/form-data या ऑब्जेक्ट स्टोरेज का उपयोग करें
अनुशंसित: कॉन्फ़िगरेशन फ़ाइलों में बाइनरी डेटा संग्रहीत करना
कॉन्फ़िगरेशन फ़ाइलों (जैसे JSON, YAML, XML) में बाइनरी डेटा (जैसे SSL प्रमाणपत्र, कुंजी, छोटी छवियां) संग्रहीत करते समय, Base64 एन्कोडिंग का उपयोग किया जा सकता है। यह बाहरी फ़ाइल पथ और फ़ाइल पढ़ने की समस्याओं को संभालने से बचता है, कॉन्फ़िगरेशन फ़ाइलों को आत्मनिर्भर बनाता है। विशेष रूप से Docker छवियों और Kubernetes ConfigMaps जैसे पैकेज्ड कॉन्फ़िगरेशन की आवश्यकता वाले परिदृश्यों के लिए उपयुक्त।
- ✅ SSL प्रमाणपत्र, निजी कुंजी
- ✅ API कुंजी, टोकन
- ✅ छोटी छवियां, आइकन
- ✅ Docker, Kubernetes कॉन्फ़िगरेशन
- 💡 संवेदनशील जानकारी युक्त कॉन्फ़िगरेशन फ़ाइलों की रक्षा करें
सर्वोत्तम प्रथा सिफारिशें
- Base64 एन्कोडिंग है, एन्क्रिप्शन नहीं, और डेटा गोपनीयता की रक्षा नहीं कर सकता। जब डेटा सुरक्षा की आवश्यकता हो, तो पहले एन्क्रिप्ट करें फिर एन्कोड करें।
- Base64 एन्कोडिंग डेटा आकार को लगभग 33% बढ़ाता है; बड़ी फ़ाइलों के लिए, एन्कोडिंग से पहले संपीड़न पर विचार करें।
- डेटा URLs 10KB से छोटे संसाधनों के लिए उपयुक्त हैं; बड़ी फ़ाइलों को अलग फ़ाइलों का उपयोग करना चाहिए और CDN और कैशिंग का उपयोग करना चाहिए।
- HTTP बेसिक प्रमाणीकरण को ट्रांसमिशन के दौरान क्रेडेंशियल चोरी से बचने के लिए HTTPS के साथ उपयोग किया जाना चाहिए।
- JWT पेलोड Base64 एन्कोडिंग का उपयोग करता है, जिसे कोई भी डिकोड कर सकता है; संवेदनशील जानकारी संग्रहीत न करें।
- UTF-8 स्ट्रिंग्स के लिए, हैंडलिंग के लिए TextEncoder/TextDecoder या encodeURIComponent/decodeURIComponent का उपयोग करें।