Base64 एन्कोडर
सादा टेक्स्ट या बाइनरी स्ट्रिंग्स को Base64-एन्कोडेड आउटपुट में परिवर्तित करें। RFC 4648 के अनुसार मानक और URL-सुरक्षित वर्णमाला का समर्थन करता है, और इमोजी और गैर-लैटिन स्क्रिप्ट सहित पूर्ण UTF-8 को संभालता है।
Base64 डेटा के आकार में लगभग 33% जोड़ता है। यह व्यापार इसलिए है क्योंकि बाइनरी डेटा को टेक्स्ट-केवल चैनलों जैसे ईमेल हेडर, JSON पेलोड, और HTTP प्रमाणीकरण हेडर में जीवित रहना चाहिए। RFC 4648 में परिभाषित, Base64 एक 64-चरित्र वर्णमाला का उपयोग करता है: A-Z, a-z, 0-9, साथ ही + और / (या URL-सुरक्षित मोड में - और _)। यह ब्राउज़र-आधारित एन्कोडर आपके इनपुट को पूरी तरह से आपके डिवाइस पर प्रोसेस करता है, जिसमें अंतर्निहित btoa() और TextEncoder APIs का उपयोग होता है। निजी स्ट्रिंग्स, टोकन, और क्रेडेंशियल्स कभी भी किसी सर्वर पर नहीं भेजे जाते हैं।
Base64 में एन्कोड कैसे करें
- जिस टेक्स्ट को आप एन्कोड करना चाहते हैं, उसे इनपुट फ़ील्ड में टाइप या पेस्ट करें।
- मानक या URL-सुरक्षित एन्कोडिंग मोड चुनें।
- एन्कोडेड Base64 आउटपुट तुरंत आउटपुट पैनल में दिखाई देता है।
- परिणाम को अपने क्लिपबोर्ड में कॉपी करने के लिए कॉपी पर क्लिक करें।
Base64 एन्कोडिंग कैसे काम करती है
64-चरित्र वर्णमाला
Base64 एक 64-चरित्र वर्णमाला का उपयोग करता है: A-Z (26), a-z (26), 0-9 (10), और दो अतिरिक्त वर्ण। मानक Base64 (RFC 4648 §4) + और / का उपयोग करता है। URL-सुरक्षित Base64 (RFC 4648 §5) उन्हें - और _ से बदलता है। एन्कोडिंग तीन इनपुट बाइट (24 बिट) लेती है, उन्हें चार 6-बिट समूहों में विभाजित करती है, और प्रत्येक 6-बिट मान को संबंधित वर्णमाला वर्ण पर मैप करती है। यही कारण है कि Base64 आउटपुट की लंबाई हमेशा 4 का गुणांक होती है।
पैडिंग
चूंकि Base64 डेटा को 3-बाइट समूहों में प्रोसेस करता है, इसलिए 3 के गुणांक नहीं होने वाली इनपुट लंबाई के लिए पैडिंग की आवश्यकता होती है। एक बचे हुए बाइट से अंत में == उत्पन्न होता है। दो बचे हुए बाइट से = उत्पन्न होता है। पैडिंग मानक Base64 में आवश्यक है लेकिन इसे अक्सर URL-सुरक्षित कार्यान्वयन में हटा दिया जाता है, विशेष रूप से JWTs में।
उदाहरण
इनपुट
नमस्ते, दुनिया!
आउटपुट (मानक Base64)
SGVsbG8sIFdvcmxkIQ==
दो = पैडिंग वर्ण दिखाई देते हैं क्योंकि "नमस्ते, दुनिया!" 13 बाइट है - 13 मोड 3 = 1, इसलिए अंतिम समूह में एक बाइट बची है।
सामान्य उपयोग के मामले
- HTTP बेसिक प्रमाणीकरण -
Authorization: Basicहेडर कोusername:passwordको Base64 में एन्कोड करने की आवश्यकता होती है - HTML/CSS में इनलाइन छवियाँ - डेटा URIs:
data:image/png;base64,iVBORw0KGgo... - JWT टोकन - हेडर और पेलोड अनुभाग URL-सुरक्षित Base64 का उपयोग करते हैं
- ईमेल अटैचमेंट - MIME (RFC 2045) टेक्स्ट-आधारित ईमेल प्रोटोकॉल में बाइनरी अटैचमेंट को एन्कोड करने के लिए Base64 का उपयोग करता है
मानक बनाम URL-सुरक्षित Base64
मानक Base64 + और / का उपयोग करता है, जिनका URLs में विशेष अर्थ होता है। URL-सुरक्षित Base64 उन्हें - और _ से बदलता है, जिससे आउटपुट URLs, फ़ाइल नामों, और क्वेरी पैरामीटर में बिना प्रतिशत-एन्कोडिंग के सुरक्षित हो जाता है। JWTs, OAuth टोकन, और URLs में दिखाई देने वाले किसी भी Base64 डेटा के लिए URL-सुरक्षित मोड का उपयोग करें। आउटपुट को डिकोड करने के लिए, Base64 डिकोडर का उपयोग करें। URL क्वेरी पैरामीटर में एन्कोडेड डेटा को एम्बेड करने के लिए, इस टूल को URL एन्कोडर के साथ मिलाएं।
अक्सर पूछे जाने वाले सवाल
क्या Base64 एक प्रकार की एन्क्रिप्शन है?
नहीं। Base64 एक एन्कोडिंग स्कीम है, न कि एन्क्रिप्शन या किसी प्रकार की सुरक्षा। कोई भी जिसे Base64 स्ट्रिंग मिलती है, वह बिना किसी कुंजी के तुरंत इसे डिकोड कर सकता है। यह कोई गोपनीयता प्रदान नहीं करता। यदि आपको डेटा की सुरक्षा करनी है तो AES-256 या RSA का उपयोग करें - Base64 बाइनरी डेटा के सुरक्षित परिवहन के लिए है, जानकारी छिपाने के लिए नहीं।
Base64 आउटपुट हमेशा == या = के साथ क्यों समाप्त होता है?
Base64 डेटा को 3 बाइट के समूहों में 4 वर्णों में एन्कोड करता है। जब इनपुट की लंबाई 3 से विभाज्य नहीं होती है, तो अंतिम समूह में 1 या 2 बाइट होती है। एक बचे हुए बाइट से == पैडिंग उत्पन्न होती है; दो बचे हुए बाइट से = उत्पन्न होता है। पैडिंग सुनिश्चित करता है कि आउटपुट की लंबाई हमेशा 4 का गुणांक हो, जैसा कि RFC 4648 द्वारा आवश्यक है।
क्या यह एन्कोडर यूनिकोड और इमोजी को सही ढंग से संभालता है?
हाँ। एन्कोडर पहले टेक्स्ट को UTF-8 बाइट्स में परिवर्तित करता है, ब्राउज़र के TextEncoder API का उपयोग करके, फिर Base64 लागू करता है। यूनिकोड वर्ण, जिसमें इमोजी (UTF-8 में 4 बाइट), चीनी वर्ण, अरबी अक्षर, और उच्चारण वाले लैटिन वर्ण सभी सही ढंग से एन्कोड होते हैं और मूल टेक्स्ट में वापस डिकोड होते हैं।
URL-सुरक्षित Base64 क्या है और मुझे इसका उपयोग कब करना चाहिए?
URL-सुरक्षित Base64 (RFC 4648 §5) + को - और / को _ से बदलता है। इसका उपयोग तब करें जब Base64 डेटा URL, फ़ाइल नाम, कुकी, या HTTP हेडर में दिखाई दे, जहाँ मानक वर्णों को गलत तरीके से व्याख्यायित किया जाएगा। JWT टोकन, OAuth एक्सेस टोकन, और PKCE कोड सत्यापनकर्ता सभी URL-सुरक्षित Base64 का उपयोग करते हैं।
Base64 डेटा के आकार को कितनी बढ़ाती है?
Base64 एन्कोडिंग डेटा के आकार को ठीक 33.33% बढ़ा देती है - 3 इनपुट बाइट 4 आउटपुट वर्णों में बदल जाते हैं (4/3 = 1.333...)। इसके अतिरिक्त, आउटपुट में अधिकतम 2 पैडिंग वर्ण शामिल हो सकते हैं। बड़े बाइनरी पेलोड के लिए, मल्टीपार्ट या बाइनरी प्रोटोकॉल Base64 की तुलना में अधिक बैंडविड्थ-कुशल होते हैं।