Base64 एन्कोडेड साइज़ कैलकुलेटर क्या है?
Base64 एक एन्कोडिंग पद्धति है जो बाइनरी डेटा को 64 प्रिंट करने योग्य ASCII अक्षरों के ज़रिए दर्शाती है। इसका इस्तेमाल HTML/CSS में इमेज जोड़ने (data URI), ईमेल में फ़ाइलें अटैच करने (MIME), और JSON या टोकन में बाइनरी डेटा ले जाने में खूब होता है। चूँकि Base64 हर 3 बाइट इनपुट को 4 आउटपुट अक्षरों में बदल देती है, इसलिए एन्कोड किया गया परिणाम हमेशा मूल डेटा से बड़ा होता है — लगभग 33% ज़्यादा। यह कैलकुलेटर आपको ठीक-ठीक बताता है कि एन्कोडिंग के बाद आपका डेटा कितना बड़ा हो जाएगा।
इसका इस्तेमाल कैसे करें
अपनी मूल फ़ाइल या डेटा का आकार दर्ज करें, यूनिट चुनें (बाइट्स, KB, MB या GB), और तय करें कि आउटपुट में स्टैंडर्ड पैडिंग (अंत में लगने वाले = अक्षर) शामिल हो या नहीं। कैलकुलेटर आपको एन्कोडेड आकार बाइट्स में बताता है, साथ ही एन्कोडिंग से जुड़े ओवरहेड का प्रतिशत भी।
फ़ॉर्मूला समझें
स्टैंडर्ड Base64 इनपुट को 3-बाइट के समूहों में प्रोसेस करती है। हर समूह ठीक 4 अक्षरों में बदल जाता है, और आख़िरी अधूरे समूह को = लगाकर 4 अक्षरों तक पूरा (पैड) किया जाता है। इसलिए पैड किया गया आकार इस तरह निकलता है:
$$\text{encoded\_bytes} = 4 \times \left\lceil \frac{\text{input\_bytes}}{3} \right\rceil$$
अगर पैडिंग बंद कर दी जाए, तो सिर्फ़ उतने ही अक्षर बनते हैं जितने वाक़ई ज़रूरी हैं: \( \left\lceil \frac{4 \times \text{input\_bytes}}{3} \right\rceil \), जिससे हर एन्कोडिंग में 1–2 पैडिंग अक्षर बच जाते हैं।
हल किया हुआ उदाहरण
मान लीजिए आपके पास 1,000-बाइट की एक फ़ाइल है। इसे 3 से भाग दें तो 333.33 आता है, इसे ऊपर की ओर पूर्णांकित (ceil) करके 334 बनाएँ, फिर 4 से गुणा करें: \(334 \times 4 = \textbf{1{,}336}\) बाइट्स। ओवरहेड होगा \((1336 - 1000) / 1000 = 33.6\%\)। बिना पैडिंग के परिणाम होगा \(\left\lceil 4000/3 \right\rceil = \left\lceil 1333.33 \right\rceil = 1{,}334\) बाइट्स।
मुख्य शर्तें समझाई गई
- Base64
-
एक बाइनरी-से-पाठ एन्कोडिंग स्कीम जो 64 मुद्रण योग्य ASCII वर्णों (A–Z, a–z, 0–9, प्लस
+और/) के एक सेट का उपयोग करके मनमाने ढंग से बाइनरी डेटा का प्रतिनिधित्व करता है। यह बाइनरी सामग्री को ईमेल बॉडी, JSON, XML, और URL जैसे केवल पाठ-आधारित चैनलों के माध्यम से सुरक्षित रूप से यात्रा करने देता है। - 3-बाइट समूह / 4-वर्ण ब्लॉक
- Base64 निर्धारित समूहों में काम करता है। इनपुट के हर 3 बाइट (24 बिट) को चार 6-बिट चंकों में विभाजित किया जाता है, प्रत्येक एक Base64 वर्ण में मैप किया जाता है। तो 3 इनपुट बाइट हमेशा 4 आउटपुट वर्णों में बदल जाते हैं — एन्कोडिंग के आकार की वृद्धि का मूल कारण।
-
पैडिंग (
=) -
जब इनपुट की लंबाई 3 का सटीक गुणक नहीं होती है, तो अंतिम समूह अधूरा होता है। एन्कोडर एक या दो
=वर्णों को जोड़ता है ताकि आउटपुट की लंबाई 4 का गुणक रहे। एक शेष बाइट दो=उत्पन्न करता है; दो शेष बाइट एक=उत्पन्न करते हैं। - ओवरहेड
- Base64 मूल डेटा की तुलना में जोड़ता है अतिरिक्त आकार। क्योंकि 3 बाइट 4 वर्णों में बदल जाते हैं, एन्कोडित डेटा लगभग \(4/3 \approx 1.333\) गुना बड़ा होता है, जो लगभग 33% की वृद्धि है (पैडिंग और किसी भी लाइन ब्रेक को गिनने के बाद थोड़ा अधिक)।
- डेटा URI
-
एक URL स्कीम (उदा.
data:image/png;base64,iVBORw0KGgo…) जो किसी फ़ाइल की Base64-एन्कोडित सामग्री को सीधे एक दस्तावेज़ के अंदर एम्बेड करता है, छोटी संपत्तियों के लिए अलग नेटवर्क अनुरोध की आवश्यकता को हटाता है। - MIME लाइन रैपिंग
- ईमेल (MIME) एन्कोडिंग में, Base64 आउटपुट को अधिकतम 76 वर्णों की पंक्तियों में विभाजित किया जाता है, प्रत्येक CRLF के साथ समाप्त होता है। ये लाइन ब्रेक मूल 33% विस्तार से परे अतिरिक्त आकार का एक छोटा सा जोड़ते हैं।
- ASCII वर्ण
- 7-बिट ASCII सेट से एक एकल वर्ण, एक बाइट में एन्कोडित। Base64 आउटपुट में प्रत्येक वर्ण एक ASCII वर्ण है, इसलिए वर्णों में एन्कोडित लंबाई बाइट में इसकी लंबाई के बराबर है।
अक्सर पूछे जाने वाले सवाल
Base64 हमेशा बड़ी क्यों हो जाती है? डेटा के हर 6 बिट को एक 8-बिट ASCII अक्षर से जोड़ा जाता है, जिससे 25% दक्षता घट जाती है और लगभग 33% ज़्यादा बाइट्स बन जाती हैं।
क्या इसमें लाइन ब्रेक भी शामिल हैं? नहीं। कुछ MIME एन्कोडर हर 76 अक्षरों के बाद एक नई लाइन जोड़ते हैं, जिससे थोड़ा-सा अतिरिक्त आकार जुड़ जाता है। यह टूल सिर्फ़ कच्चे (raw) एन्कोडेड आकार की गणना करता है।
data URI के बारे में क्या? एक data URI में data:image/png;base64, जैसा प्रीफ़िक्स भी जुड़ता है। पूरे URI की लंबाई जानने के लिए इस स्ट्रिंग की लंबाई को एन्कोडेड आकार में जोड़ दें।