बेस 64 एनकोडिंग का वास्तविक उद्देश्य क्या है?


83

हमारे पास Base64 एन्कोडिंग क्यों है? मैं एक शुरुआती हूं और मुझे वास्तव में समझ में नहीं आता कि आप बाइट्स को किसी और चीज में क्यों बाधित करेंगे (जब तक कि यह एन्क्रिप्शन नहीं है)। जब मैं द्विआधारी संचरण संभव नहीं हो तो बेस64 एन्कोडिंग को पढ़ने वाली पुस्तकों में से एक में उपयोगी है। उदाहरण के लिए। जब हम कोई प्रपत्र पोस्ट करते हैं तो वह एन्कोडेड होता है। लेकिन हम बाइट्स को अक्षरों में क्यों बदलते हैं? क्या हम बीच में एक स्थान के साथ बाइट्स को स्ट्रिंग प्रारूप में परिवर्तित नहीं कर सकते थे? उदाहरण के लिए 00000001 00000004,? या बस 0000000100000004बिना किसी जगह के क्योंकि बाइट्स हमेशा 8 की जोड़ी में आते हैं?


11
क्योंकि आपने बेस 4 के साथ ऐसा करते हुए सिर्फ 1 बाइट को 8 में 3 के बजाय 4 में बदल दिया (यदि मेमोरी मुझे सही ढंग से सर्व करती है)। बैंडविड्थ सीमित है।
ब्रायन रोच

आप भ्रमित करने वाले बिट्स हैं (सफेद 8 बिट्स जो आप एक बाइट बनाते हैं) और बाइट्स, जो किसी भी प्रकार के समूह में आ सकते हैं।
डेनस सेगुरेट

जवाबों:


109

बेस 64 एक ASCII वर्ण में द्विआधारी डेटा को एनकोड करने का एक तरीका है, जो बिना किसी हानि या सामग्री के संशोधन के डेटा को संचारित करने के लिए प्रत्येक कंप्यूटर सिस्टम के लिए बहुत अधिक ज्ञात है। उदाहरण के लिए, मेल सिस्टम बाइनरी डेटा से निपट नहीं सकते क्योंकि वे ASCII (पाठ) डेटा की अपेक्षा करते हैं। इसलिए यदि आप किसी छवि या किसी अन्य फ़ाइल को स्थानांतरित करना चाहते हैं, तो यह डेटा के साथ व्यवहार करने के कारण दूषित हो जाएगा।

नोट: बेस 64 एनकोडिंग एन्क्रिप्ट करने का एक तरीका नहीं है, न ही डेटा को कम करने का एक तरीका है। वास्तव में डेटा का एक आधार 64 एन्कोडेड टुकड़ा 1.333 है ... जो मूल डेटापीस से कई गुना बड़ा है। यह केवल यह सुनिश्चित करने का एक तरीका है कि स्थानांतरण के दौरान कोई डेटा गुम या संशोधित न हो।


5
Base64 एन्कोडेड डेटा मूल डेटा की तुलना में ठीक 1.333 (3) गुना बड़ा है + इनपुट डेटा मोड्यूलो की लंबाई के आधार पर अतिरिक्त 0-3 अतिरिक्त वर्ण हैं। 4. यह इसलिए है क्योंकि प्रत्येक बेस 64 एन्कोडेड वर्ण 6 बिट्स की जानकारी (64 विभिन्न वर्ण) संग्रहीत करता है ।
भी

2
डेटा के पहले और बाद दोनों अभी भी बाइनरी हैं। फिर डेटा में नुकसान क्यों हुआ
नरेश तेली

12

Base64 एक माध्यम है जो केवल मुद्रण योग्य वर्णों की अनुमति देने वाले माध्यमों पर बाइनरी डेटा का प्रतिनिधित्व करने और स्थानांतरित करने में सक्षम है। यह "बेस एन्कोडिंग" का सबसे लोकप्रिय रूप है, जो अन्य उपयोग में जाना जाता है Base16 और Base32।

आधार 64 की आवश्यकता बाइनरी कंटेंट को ईमेल, इमेज, वीडियो या मनमाने बाइनरी कंटेंट जैसे ईमेल से जोड़ने की आवश्यकता से उत्पन्न हुई। चूंकि SMTP [RFC 5321] ने केवल संदेशों के भीतर 7-बिट US-ASCII वर्णों की अनुमति दी थी, इसलिए सात बिट ASCII वर्णों का उपयोग करके इन बाइनरी ऑक्टेट धाराओं का प्रतिनिधित्व करने की आवश्यकता थी ...

आशा है कि यह प्रश्न का उत्तर देगा


3

Base64 संचारण का एक अधिक या कम कॉम्पैक्ट तरीका है (एन्कोडिंग, वास्तव में, लेकिन संचारण के लक्ष्य के साथ) किसी भी प्रकार के द्विआधारी डेटा।

Http://en.wikipedia.org/wiki/Base64 देखें

"सामान्य नियम 64 वर्णों के एक सेट को चुनना है जो एक सबसेट का हिस्सा है जो अधिकांश एन्कोडिंग के लिए सामान्य है, और यह भी उपयोगी है।"

यह एक बहुत ही सामान्य उद्देश्य है और आम जरूरत से ज्यादा जगह बर्बाद करना नहीं है।

ऐतिहासिक रूप से, यह इस तथ्य पर आधारित है कि बाइट्स में चार्ट को संग्रहीत करने के लिए उपयोग किए जाने वाले (लगभग) सभी संप्रदायों का एक सामान्य उपसमूह है और यह कि साधारण डेटा ट्रांसफर के दौरान 2 ^ 8 संभावित बाइट्स जोखिम हानि या परिवर्तनों का एक बहुत (उदाहरण के लिए एक प्रति) पेस्ट-ईमेलएंड-ईमेलरेसीव-कॉपी-पेस्ट अनुक्रम)।

(कृपया ब्रायन की टिप्पणी पर पुनर्निर्देशित करें, मैं इसे और अधिक पूर्ण और उम्मीद से अधिक स्पष्ट करता हूं)।


नहीं, यह अभी जल्दी है और मुझे ऐसा नहीं लगा कि फुलशिंग को पूरा जवाब दे दिया गया। यह अच्छा है।
ब्रायन रोच
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.