Advertisement
Advertisement

Base64 Encoder/Decoder

Convert text to/from Base64 encoding

Base64 एन्कोडर/डिकोडर के बारे में

Base64 एन्कोडिंग बाइनरी डेटा को टेक्स्ट प्रारूप में परिवर्तित करने की एक मानकीकृत विधि है जिसे इंटरनेट पर सुरक्षित रूप से प्रेषित या टेक्स्ट-आधारित सिस्टम में संग्रहीत किया जा सकता है। यह 64 प्रिंटेबल ASCII वर्णों (A-Z, a-z, 0-9, +, /) के एक सेट का उपयोग करता है बाइनरी डेटा का प्रतिनिधित्व करने के लिए, जिससे यह केवल टेक्स्ट का समर्थन करने वाली प्रणालियों के साथ संगत है।

Base64 बाइनरी डेटा को लेकर इसे 6 बिट के समूहों में परिवर्तित करके काम करता है, फिर प्रत्येक समूह को 64 आधार वर्णों में से एक को मैप करता है। यह प्रक्रिया डेटा आकार को लगभग 33% बढ़ाती है, लेकिन यह सुनिश्चित करती है कि एन्कोडेड डेटा को ईमेल सिस्टम, API और टेक्स्ट-आधारित प्रोटोकॉल के माध्यम से बिना भ्रष्टाचार के सुरक्षित रूप से प्रेषित किया जा सकता है।

Base64 डिकोडिंग विपरीत प्रक्रिया है: Base64-एन्कोडेड टेक्स्ट को मूल बाइनरी डेटा में वापस परिवर्तित करना। समान चिन्ह (=) को एन्कोडेड स्ट्रिंग्स के अंत में पैडिंग के रूप में उपयोग किया जाता है ताकि यह सुनिश्चित हो सके कि डेटा लंबाई 4 वर्णों का गुणक है, जो Base64 मानक द्वारा आवश्यक है।

Base64 एन्कोडिंग कैसे काम करती है

Base64 एन्कोडिंग बाइनरी डेटा के 3 बाइट (24 बिट) को 4 Base64 वर्णों के रूप में प्रतिनिधित्व करने के सिद्धांत पर काम करती है (24 बिट ÷ 6 बिट प्रति वर्ण = 4 वर्ण)। एन्कोडिंग टेबल में 64 वर्ण होते हैं: बड़े अक्षर (A-Z), छोटे अक्षर (a-z), अंक (0-9), प्लस साइन (+), और फॉरवर्ड स्लैश (/)।

एन्कोडिंग प्रक्रिया इन चरणों का पालन करती है:

  • चरण 1: 3 बाइट (24 बिट) के समूहों में बाइनरी डेटा लें
  • चरण 2: प्रत्येक 24-बिट समूह को चार 6-बिट खंडों में विभाजित करें
  • चरण 3: प्रत्येक 6-बिट खंड को दशमलव संख्या (0-63) में परिवर्तित करें
  • चरण 4: प्रत्येक दशमलव को संबंधित Base64 वर्ण में मैप करें
  • चरण 5: यदि इनपुट लंबाई 3 से विभाज्य नहीं है तो पैडिंग (=) जोड़ें

Base64 वर्ण सेट: A-Z (0-25), a-z (26-51), 0-9 (52-61), + (62), / (63), = (पैडिंग)

उपयोग के मामले

1. ईमेल अनुलग्नक और MIME
  • ईमेल संप्रेषण के लिए बाइनरी फाइलें (छवियां, दस्तावेज़) एन्कोड करना
  • MIME (Multipurpose Internet Mail Extensions) गैर-टेक्स्ट अनुलग्नक के लिए Base64 का उपयोग करता है
  • उदाहरण: SGVsbG8gV29ybGQ= Base64 में "Hello World" का प्रतिनिधित्व करता है
2. डेटा URL और एम्बेडेड इमेजेस
  • अलग फाइल अनुरोधों के बिना HTML/CSS में सीधे छवियां एम्बेड करना
  • डेटा URL: data:image/png;base64, iVBORw0...
  • HTTP अनुरोधों को कम करता है और पृष्ठ लोड प्रदर्शन में सुधार करता है
  • favicons, छोटे लोगो और इनलाइन ग्राफिक्स के लिए उपयोगी
3. API प्रमाणीकरण
  • बेसिक HTTP प्रमाणीकरण Base64 में उपयोगकर्ता नाम:पासवर्ड एन्कोड करता है
  • उदाहरण: Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
  • बेसिक क्रेडेंशियल पासिंग प्रदान करता है (एन्क्रिप्शन नहीं - HTTPS का उपयोग करें)
4. JSON और API पेलोड
  • JSON अनुरोधों/प्रतिक्रियाओं के भीतर बाइनरी डेटा एन्कोड करना
  • API के लिए उपयोगी जो केवल टेक्स्ट डेटा संप्रेषण की आवश्यकता है
  • टेक्स्ट-आधारित प्रारूपों में प्रमाणपत्र और कुंजी संग्रहण
5. डेटाबेस संग्रहण
  • डेटाबेस में बाइनरी डेटा (छवियां, PDF, दस्तावेज़) को टेक्स्ट के रूप में संग्रहित करना
  • टेक्स्ट-आधारित डेटाबेस जो BLOB फाइलों का समर्थन नहीं करते हैं
  • डेटाबेस के पोर्टेबल, केवल-टेक्स्ट बैकअप बनाना
6. कॉन्फ़िगरेशन फाइलें
  • कॉन्फ़िगरेशन फाइलों (XML, JSON, YAML) में बाइनरी सामग्री एम्बेड करना
  • टेक्स्ट कॉन्फ़िगरेशन में SSH कुंजियां और प्रमाणपत्र
  • संस्करण-नियंत्रित फाइलों में रहस्य प्रबंधन

सामान्यतः Base64-एन्कोडेड सामग्री प्रकार

सामान्यतः Base64-एन्कोडेड डेटा प्रकारों के लिए त्वरित संदर्भ:

  • SGVsbG8gV29ybGQ= – टेक्स्ट स्ट्रिंग "Hello World"
  • iVBORw0KGgo... – PNG इमेज फाइल
  • /9j/4AAQSkZ... – JPEG इमेज फाइल
  • UEsDBBQ... – ZIP या Office दस्तावेज़
  • JVBERi0... – PDF फाइल
  • MIIBIjANBgkq... – RSA सार्वजनिक कुंजी या प्रमाणपत्र

व्यावहारिक अनुप्रयोग

वेब विकास
  • सर्वर अनुरोधों को कम करने के लिए HTML में छोटी छवियां एम्बेड करना
  • एम्बेडेड संपत्तियों के साथ स्व-निहित HTML फाइलें बनाना
  • URL क्वेरी पैरामीटर के माध्यम से बाइनरी डेटा पास करना
  • केवल-टेक्स्ट प्रोटोकॉल पर संप्रेषण के लिए फाइल अपलोड एन्कोड करना
API एकीकरण
  • REST API के माध्यम से बाइनरी डेटा भेजना और प्राप्त करना
  • HTTP बेसिक प्रमाणीकरण क्रेडेंशियल
  • बहु-भाग फॉर्म सबमिशन के लिए फाइलें एन्कोड करना
  • OAuth टोकन और सत्र प्रबंधन
ईमेल सिस्टम
  • ईमेल संदेशों में अनुलग्नकों को एन्कोड करना (MIME प्रारूप)
  • ईमेल के माध्यम से बाइनरी फाइल संप्रेषण
  • एम्बेडेड छवियों के साथ स्व-निहित ईमेल बनाना
सुरक्षा और क्रिप्टोग्राफी
  • एन्क्रिप्शन कुंजियों और प्रमाणपत्रों को एन्कोड करना
  • क्रिप्टोग्राफिक डेटा भंडारण और संप्रेषण
  • PEM प्रारूप फाइलें (प्रमाणपत्र, कुंजियां) Base64-एन्कोडेड हैं
  • एन्क्रिप्शन नहीं - बाइनरी डेटा के सुरक्षित संप्रेषण के लिए उपयोग करें

संबंधित उपकरण

आप इन उपकरणों को भी उपयोगी पा सकते हैं:

  • URL एन्कोडर/डिकोडर – URL में विशेष वर्णों को एन्कोड/डिकोड करें (प्रतिशत-एन्कोडिंग)
  • JSON फॉर्मेटर – एन्कोडेड डेटा के साथ JSON को मान्य करें और प्रारूपित करें
  • हैश जनरेटर – चेकसम बनाएं और Base64-एन्कोडेड फाइलों की अखंडता सत्यापित करें
  • पासवर्ड जनरेटर – प्रमाणीकरण के लिए सुरक्षित पासवर्ड उत्पन्न करें

सुझाव

  • Base64 डेटा आकार को ~33% बढ़ाता है - एन्कोड करने से पहले ट्रेड-ऑफ पर विचार करें
  • टेक्स्ट संप्रेषण के लिए Base64 का उपयोग करें; संभव हो तो संग्रहण के लिए बाइनरी प्रारूप का उपयोग करें
  • अंत में पैडिंग (=) सही डिकोडिंग के लिए आवश्यक है - इसे निकालें नहीं
  • Base64 एन्क्रिप्शन नहीं है - संवेदनशील डेटा के लिए हमेशा HTTPS का उपयोग करें
  • बड़ी फाइलों के लिए, Base64 एन्कोडिंग/डिकोडिंग स्ट्रीमिंग मेमोरी ओवरलोड को रोकता है
  • URL-सुरक्षित Base64 URL संप्रेषण के लिए + को - से और / को _ से बदल देता है
  • वैधता के लिए फाइल हेडर (जादू संख्याएं) जांचकर डिकोडेड आउटपुट सत्यापित करें

Base64 वेरिएंट

  • मानक Base64: + और / वर्णों का उपयोग करता है - मानक RFC 4648 एन्कोडिंग
  • URL-सुरक्षित Base64: URL संप्रेषण के लिए + को - से और / को _ से बदल देता है
  • Base64url: JWT टोकन में उपयोग किया जाता है, संशोधित पैडिंग नियम
  • MIME Base64: ईमेल संगतता के लिए प्रति पंक्ति 76 वर्णों तक सीमित

सामान्य समस्याएं और समाधान

  • गलत पैडिंग: Base64 स्ट्रिंग्स की लंबाई 4 से विभाज्य होनी चाहिए। आवश्यकतानुसार = जोड़ें।
  • न्यूलाइन वर्ण: MIME Base64 में न्यूलाइन शामिल हैं - मानक Base64 को डिकोड करने से पहले हटाएं
  • वर्ण सेट भ्रम: मानक Base64 +/ का उपयोग करता है; URL-सुरक्षित -_ का उपयोग करता है। जानें कि आपको कौन सा वेरिएंट चाहिए
  • अधूरी एन्कोडिंग: सुनिश्चित करें कि पूर्ण एन्कोडेड स्ट्रिंग कैप्चर किया गया है - ट्रंकेशन डिकोडिंग त्रुटियों का कारण बनता है
  • बाइनरी फाइल भ्रष्टाचार: एन्कोडेड डेटा को ठीक से कॉपी करें - एकल वर्ण अंतर भी बाइनरी डेटा भ्रष्टाचार का कारण बनते हैं
  • मेमोरी समस्याएं: बहुत बड़ी फाइलें मेमोरी समस्याओं का कारण बन सकती हैं - स्ट्रीमिंग या चंक्ड एन्कोडिंग का उपयोग करें
  • वर्ण एन्कोडिंग असमानता: विभिन्न वर्ण सेट (UTF-8 बनाम ASCII) के साथ एन्कोडेड टेक्स्ट विभिन्न Base64 उत्पन्न करता है

डिकोडेड डेटा को सत्यापित करने का तरीका

  • टेक्स्ट डेटा: पठनीय और समझदारी होनी चाहिए
  • छवियां: जादू संख्याओं की जांच करें (पहले बाइट): PNG = 89 50 4E 47, JPEG = FF D8 FF, GIF = 47 49 46
  • PDF फाइलें: %PDF- से शुरू होनी चाहिए
  • ZIP फाइलें: PK से शुरू होनी चाहिए (hex: 50 4B)
  • JSON/XML: मान्य और सही ढंग से स्वरूपित होना चाहिए

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

प्र: क्या Base64 एन्कोडिंग सुरक्षित है?
उ: नहीं। Base64 एन्क्रिप्शन नहीं है - यह केवल बाइनरी डेटा का टेक्स्ट प्रतिनिधित्व है। कोई भी इसे आसानी से डिकोड कर सकता है। संवेदनशील जानकारी के लिए हमेशा HTTPS और उचित एन्क्रिप्शन का उपयोग करें। Base64 का उपयोग केवल उन डेटा के सुरक्षित संप्रेषण के लिए करें जिन्हें डिकोड किया जा सकता है।

प्र: Base64 मूल डेटा से क्यों बड़ा है?
उ: Base64 डेटा का प्रतिनिधित्व करने के लिए प्रति वर्ण 6 बिट का उपयोग करता है, जबकि बाइनरी प्रति बाइट 8 बिट का उपयोग करता है। यह 33% की वृद्धि बनाता है। ट्रेड-ऑफ यह है कि डेटा टेक्स्ट-सुरक्षित हो जाता है और केवल-टेक्स्ट सिस्टम के माध्यम से प्रेषणीय होता है।

प्र: क्या मैं पासवर्ड के लिए Base64 का उपयोग कर सकता हूं?
उ: नहीं। Base64 एन्क्रिप्शन नहीं है। पासवर्ड के लिए, पासवर्ड हैशिंग एल्गोरिदम (bcrypt, Argon2, PBKDF2) का उपयोग करें। Base64 केवल बाइनरी डेटा को संप्रेषण के लिए टेक्स्ट के रूप में प्रतिनिधित्व करने के लिए उपयुक्त है।

प्र: Base64 और URL एन्कोडिंग में क्या अंतर है?
उ: Base64 A-Z, a-z, 0-9, +, / का उपयोग करके किसी भी बाइनरी डेटा को टेक्स्ट के रूप में एन्कोड करता है। URL एन्कोडिंग (प्रतिशत-एन्कोडिंग) विशेष वर्णों को %XX प्रारूप में परिवर्तित करता है। URL एन्कोडिंग URL पैरामीटर के लिए उपयोग किया जाता है; Base64 बाइनरी डेटा के लिए।

प्र: मैं Base64 का उपयोग करके HTML में छवि कैसे एम्बेड करूं?
उ: डेटा URL का उपयोग करें: <img src="data:image/png;base64, iVBORw0...">। यह HTTP अनुरोध के बिना छवि को सीधे एम्बेड करता है, लेकिन HTML फाइल आकार बढ़ाता है।

प्र: क्या Base64 एन्कोडिंग को उलट दिया जा सकता है?
उ: हां, Base64 प्रतिवर्ती एन्कोडिंग है, एन्क्रिप्शन नहीं। कोई भी इसे डिकोड कर सकता है। यदि आपको सुरक्षा की आवश्यकता है, तो पहले डेटा को एन्क्रिप्ट करें, फिर एन्क्रिप्टेड डेटा को Base64-एन्कोड करें।

प्र: यदि मैं Base64-एन्कोडेड डेटा को मैन्युअल रूप से संपादित करूं तो क्या होगा?
उ: यहां तक कि एक वर्ण बदलने से भी डिकोडेड डेटा भ्रष्ट हो जाएगा। यदि डेटा बाइनरी फाइल (छवि, दस्तावेज़) का प्रतिनिधित्व करता है, तो यह अपठनीय हो जाएगा। हमेशा पूर्ण, संशोधित Base64 स्ट्रिंग्स को डिकोड करें।

प्र: क्या Base64 एन्कोडिंग के लिए आकार सीमा है?
उ: तकनीकी रूप से नहीं, लेकिन व्यावहारिक सीमाएं आपके सिस्टम की मेमोरी और प्रोसेसिंग पावर पर निर्भर करती हैं। बहुत बड़ी फाइलें (>100 MB) प्रदर्शन समस्याओं का कारण बन सकती हैं। बड़े डेटा के लिए चंक्ड एन्कोडिंग या स्ट्रीमिंग पर विचार करें।

Advertisement
Advertisement