मैंने सुना है कि लोग "बेस 64 एन्कोडिंग" के बारे में यहां और वहां बात कर रहे हैं। इसका क्या उपयोग है?
मैंने सुना है कि लोग "बेस 64 एन्कोडिंग" के बारे में यहां और वहां बात कर रहे हैं। इसका क्या उपयोग है?
जवाबों:
जब आपके पास कुछ बाइनरी डेटा होता है, जिसे आप किसी नेटवर्क में शिप करना चाहते हैं, तो आप आम तौर पर कच्चे प्रारूप में वायर पर केवल बिट्स और बाइट्स को स्ट्रीमिंग करके ऐसा नहीं करते हैं। क्यों? क्योंकि कुछ मीडिया स्ट्रीमिंग टेक्स्ट के लिए बने हैं। आप कभी नहीं जानते - कुछ प्रोटोकॉल आपके द्विआधारी डेटा को नियंत्रण वर्ण (जैसे मॉडेम) के रूप में व्याख्या कर सकते हैं, या आपके द्विआधारी डेटा को खराब किया जा सकता है क्योंकि अंतर्निहित प्रोटोकॉल सोच सकते हैं कि आपने एक विशेष वर्ण संयोजन में प्रवेश किया है (जैसे कि एफ़टीपी अनुवाद कैसे करता है। अंत)।
तो इसके चारों ओर पाने के लिए, लोग द्विआधारी डेटा को वर्णों में एन्कोड करते हैं। बेस 64 इन प्रकार के एनकोडिंग में से एक है।
क्यों 64?
क्योंकि आप आम तौर पर एक ही 64 वर्णों पर कई चरित्र सेटों में मौजूद होने पर भरोसा कर सकते हैं, और आप इस बात पर पूरी तरह आश्वस्त हो सकते हैं कि आपके डेटा का तार अनियंत्रित होकर दूसरी तरफ जा रहा है।
यह मूल रूप से ASCII पाठ में मनमाना बाइनरी डेटा एन्कोडिंग का एक तरीका है। यह डेटा के प्रति 3 बाइट्स में 4 अक्षर लेता है, साथ ही संभवतः अंत में थोड़ा सा पैडिंग करता है।
अनिवार्य रूप से इनपुट के प्रत्येक 6 बिट 64-वर्ण वर्णमाला में एन्कोडेड है। "मानक" वर्णमाला AZ, az, 0-9 और + और / का उपयोग करता है, = एक पैडिंग चरित्र के रूप में। URL-safe वेरिएंट हैं।
विकिपीडिया अधिक जानकारी का एक अच्छा स्रोत है।
binary strings
। (स्रोत) php.net/manual/en/function.pack.php
बेस -64 एन्कोडिंग द्विआधारी डेटा लेने और इसे पाठ में बदलने का एक तरीका है ताकि यह ई-मेल और एचटीएमएल फॉर्म डेटा जैसी चीजों में अधिक आसानी से प्रसारित हो।
यह द्विआधारी डेटा का एक टेक्स्ट एन्कोडिंग है जहां परिणामी पाठ में अक्षरों, संख्याओं और प्रतीकों "+", "/" और "=" के अलावा कुछ भी नहीं है। यह मीडिया पर द्विआधारी डेटा को संग्रहीत / प्रसारित करने का एक सुविधाजनक तरीका है जो विशेष रूप से पाठ डेटा के लिए उपयोग किया जाता है।
लेकिन बेस -64 क्यों? द्विआधारी डेटा को पाठ में परिवर्तित करने के दो विकल्प जो तुरंत वसंत को ध्यान में रखते हैं:
6-बिट्स (6 x 4 = 24 बिट्स) वाले 4 वर्णों में बेस -64 मैप्स 3 बाइट्स (8 x 3 = 24 बिट्स)। परिणाम "TWFuIGlzIGRpc3Rpb ..." जैसा कुछ दिखता है। इसलिए ब्लोटिंग केवल 4/3 = 1.3333333 मूल है।
इसके अलावा जो पहले से ही कहा गया है, दो बहुत ही सामान्य उपयोग जो सूचीबद्ध नहीं किए गए हैं
हैश:
हैशिंग एक तरह से कार्य हैं जो बाइट्स के ब्लॉक को एक निश्चित आकार के बाइट्स के दूसरे ब्लॉक में बदलते हैं जैसे कि 128bit या 256bit (SHA / MD5)। Base64 में परिणामी बाइट्स को परिवर्तित करने से हैश को प्रदर्शित करना बहुत आसान हो जाता है, खासकर जब आप अखंडता के लिए एक चेकसम की तुलना कर रहे हों। बेस 64 में बहुत बार देखा जाता है कि कई लोग बेस 64 को हीश के रूप में भूल जाते हैं।
क्रिप्टोग्राफी:
चूंकि एन्क्रिप्शन कुंजी में टेक्स्ट होना जरूरी नहीं है, लेकिन कच्चे बाइट्स को कभी-कभी इसे किसी फ़ाइल या डेटाबेस में संग्रहीत करना आवश्यक होता है, जिसके लिए बेस 64 काम आता है। परिणामी एन्क्रिप्टेड बाइट्स के साथ भी।
ध्यान दें कि हालाँकि, क्रिप्टोग्राफी में बेस 64 का उपयोग किया जाता है, सुरक्षा तंत्र नहीं है। कोई भी आधार 64 स्ट्रिंग को अपनी मूल बाइट्स में बदल सकता है, इसलिए इसका उपयोग डेटा की सुरक्षा के लिए एक साधन के रूप में नहीं किया जाना चाहिए, केवल कच्चे बाइट्स को आसानी से प्रदर्शित या संग्रहीत करने के लिए एक प्रारूप के रूप में।
प्रमाण पत्र
पीईएम प्रारूप में x509 प्रमाण पत्र आधार 64 एन्कोडेड हैं। http://how2ssl.com/articles/working_with_pem_files/
वर्षों पहले, जब मेलिंग कार्यक्षमता शुरू की गई थी, तो यह पूरी तरह से पाठ आधारित था, जैसा कि समय बीत गया, छवि और मीडिया (ऑडियो, वीडियो आदि) जैसे अनुलग्नकों की आवश्यकता अस्तित्व में आई। जब इन अनुलग्नकों को इंटरनेट पर भेजा जाता है (जो मूल रूप से बाइनरी डेटा के रूप में होता है), तो बाइनरी डेटा के भ्रष्ट होने की संभावना इसके कच्चे रूप में अधिक होती है। तो, इस समस्या से निपटने के लिए BASE64 साथ आया।
बाइनरी डेटा के साथ समस्या यह है कि इसमें अशक्त वर्ण हैं, जैसे कुछ भाषाओं में C, C ++, वर्ण स्ट्रिंग के अंत का प्रतिनिधित्व करते हैं, इसलिए NULL बाइट्स वाले कच्चे रूप में बाइनरी डेटा भेजने से एक फ़ाइल पूरी तरह से पढ़ने से रोकती है और एक भ्रष्ट डेटा में ले जाती है।
उदाहरण के लिए :
सी और सी ++ में, यह "अशक्त" चरित्र एक स्ट्रिंग के अंत को दर्शाता है। तो "हेलो" को इस तरह संग्रहीत किया जाता है:
हैलो
72 69 76 76 79 00
00 कहता है "यहाँ रुक जाओ"।
अब BASE64 एन्कोडिंग कैसे काम करता है, इसमें गोता लगाएँ।
ध्यान देने योग्य बात: स्ट्रिंग की लंबाई 3 से अधिक होनी चाहिए।
उदाहरण 1 :
स्ट्रिंग एन्कोडेड: "ऐस", लंबाई = 3
1) प्रत्येक वर्ण को दशमलव में बदलें।
ए = 97, सी = ९९, ई = १०१
2) प्रत्येक दशमलव को 8-बिट बाइनरी प्रतिनिधित्व में बदलें।
97 = 01100001, 99 = 01100011, 101 = 01100101
संयुक्त: 01100001 01100011 01100101
3) 6-बिट के समूह में अलग।
011000 010110 001101 100101
4) द्विआधारी को दशमलव में गणना करें
011000 = 24, 010110 = 22, 001101 = 13, 100101 = 37
5) Base64 चार्ट का उपयोग करके base64 को गुप्त दशमलव वर्ण।
24 = वाई, 22 = डब्ल्यू, 13 = एन, 37 = एल
"इक्का" => "यौवन"
उदाहरण 2:
स्ट्रिंग एन्कोडेड होने के लिए: "abcd" लंबाई = 4, यह 3 से अधिक नहीं है। इसलिए स्ट्रिंग की लंबाई 3 से अधिक बनाने के लिए, हमें लंबाई बनाने के लिए 2 बिट पैडिंग जोड़ना होगा। 6. पैडिंग बिट "=" चिन्ह द्वारा दर्शाया गया है।
ध्यान दिया जाना: एक गद्दी बिट दो शून्य 00 के बराबर होती है, इसलिए दो गद्दी बिट चार शून्य 0000 के बराबर होती है।
तो प्रक्रिया शुरू करने देता है: -
1) प्रत्येक वर्ण को दशमलव में बदलें।
a = 97, b = 98, c = 99, d = 100
2) प्रत्येक दशमलव को 8-बिट बाइनरी प्रतिनिधित्व में बदलें।
97 = 01100001, 98 = 01100010, 99 = 01100011, 100 = 01100100
3) 6-बिट के समूह में अलग करें।
011000, 010110, 001001, 100011, 011001, 00
इसलिए अंतिम 6-बिट पूर्ण नहीं है इसलिए हम दो पैडिंग बिट सम्मिलित करते हैं जो चार शून्य "0000" के बराबर होती है।
011000, 010110, 001001, 100011, 011001, 000000 ==
अब, यह बराबर है। अंत में दो बराबर संकेत दिखाते हैं कि 4 शून्य जोड़े गए थे (डिकोडिंग में मदद करता है)।
4) द्विआधारी को दशमलव में गणना करें।
011000 = 24, 010110 = 22, 001001 = 9, 100011 = 35, 011001 = 25, 000000/0 ==
5) Base64 चार्ट का उपयोग करके base64 को गुप्त दशमलव वर्ण।
24 = वाई, 22 = डब्ल्यू, 9 = जे, 35 = जे, 25 = जेड, 0 = ए ==
"Abcd" => "YWJjZA =="
कंप्यूटरों के शुरुआती दिनों में, जब टेलीफोन लाइन अंतर-सिस्टम संचार विशेष रूप से विश्वसनीय नहीं था, तो डेटा अखंडता को सत्यापित करने का एक त्वरित और गंदा तरीका इस्तेमाल किया गया था: "बिट समता"। इस विधि में, प्रत्येक बाइट प्रेषित 7-बिट डेटा होगा, और 8 वीं 1 या 0 होगा, बाइट में कुल 1 बिट्स को भी बाध्य करने के लिए।
इसलिए Ix01 को 0x81 के रूप में प्रसारित किया जाएगा; 0x02 0x82 होगा; 0x03 रहेगा 0x03 आदि।
इस प्रणाली को आगे बढ़ाने के लिए, जब ASCII वर्ण सेट को परिभाषित किया गया था, केवल 00-7F वर्ण निर्दिष्ट किए गए थे। (आज भी, 80-एफएफ सीमा में निर्धारित सभी वर्ण अमानक हैं)
दिन के कई राउटर ने समता की जांच और बाइट का अनुवाद हार्डवेयर में किया, जिससे कंप्यूटर को 7-बिट डेटा से सख्ती से निपटने के लिए संलग्न किया गया। यह बल ईमेल अटैचमेंट (और अन्य सभी डेटा, यही कारण है कि HTTP और SMTP प्रोटोकॉल टेक्स्ट-आधारित हैं), को केवल-पाठ प्रारूप में परिवर्तित करने के लिए।
राउटरों में से कुछ 90 के दशक में बच गए। मुझे संदेह है कि उनमें से कोई भी आज उपयोग में है।
से http://en.wikipedia.org/wiki/Base64
Base64 शब्द एक विशिष्ट MIME सामग्री हस्तांतरण एन्कोडिंग को संदर्भित करता है। यह किसी भी समान एन्कोडिंग योजना के लिए एक सामान्य शब्द के रूप में भी प्रयोग किया जाता है जो द्विआधारी डेटा को संख्यात्मक रूप से व्यवहार करता है और इसे आधार 64 प्रतिनिधित्व में अनुवाद करता है। बेस की विशेष पसंद चरित्र सेट एन्कोडिंग के इतिहास के कारण है: एक 64 अक्षरों का एक सेट चुन सकता है जो सबसे आम सांकेतिक शब्दों में सबसे आम का हिस्सा है, और प्रिंट करने योग्य भी है। यह संयोजन डेटा को सिस्टम के माध्यम से संशोधित करने की संभावना नहीं छोड़ता है, जैसे कि ईमेल, जो परंपरागत रूप से 8-बिट साफ नहीं थे।
बेस 64 का उपयोग विभिन्न संदर्भों में किया जा सकता है:
- विकास और थंडरबर्ड ई-मेल पासवर्डों को बाधित करने के लिए Base64 का उपयोग करते हैं [1]
- बेस 64 का उपयोग टेक्स्ट को प्रसारित करने और स्टोर करने के लिए किया जा सकता है जो अन्यथा सीमांकक टकराव का कारण हो सकता है
Base64 को अक्सर क्रिप्टोग्राफ़िक कुंजी प्रबंधन के ओवरहेड के बिना रहस्यों को अस्पष्ट करने के लिए एक त्वरित लेकिन असुरक्षित शॉर्टकट के रूप में उपयोग किया जाता है
स्पैमर्स बुनियादी एंटी-स्पैमिंग टूल से बचने के लिए बेस 64 का उपयोग करते हैं, जो अक्सर बेस 64 को डीकोड नहीं करते हैं और इसलिए एन्कोडिंग संदेशों में कीवर्ड का पता नहीं लगा सकते हैं।
- Base64 का उपयोग LDIF फ़ाइलों में वर्ण स्ट्रिंग्स को एन्कोड करने के लिए किया जाता है
- बेस 64 को कभी-कभी एक एक्सएमएल फ़ाइल में बाइनरी डेटा को एम्बेड करने के लिए उपयोग किया जाता है, सिंटैक्स के समान ...... उदाहरण के लिए फ़ायरफ़ॉक्स का बुकमार्क। html।
- बेस 64 का उपयोग सरकारी फिस्कल सिग्नेचर प्रिंटिंग डिवाइस (आमतौर पर, सीरियल या समानांतर पोर्ट पर) के साथ संचार करते समय किया जाता है, ताकि हस्ताक्षर के लिए रसीद पात्रों को स्थानांतरित करने में देरी को कम किया जा सके।
- बेस 64 का उपयोग बाइनरी फ़ाइलों को लिपियों के भीतर करने के लिए किया जाता है, जैसे कि बाहरी फ़ाइलों के आधार पर बचने के लिए लिपियों के भीतर।
- एक सीएसएस संपत्ति में पृष्ठभूमि छवि के रूप में कच्चे छवि डेटा एम्बेड करने के लिए इस्तेमाल किया जा सकता है।
कुछ परिवहन प्रोटोकॉल केवल अल्फ़ान्यूमेरिकल वर्णों को प्रेषित करने की अनुमति देते हैं। बस एक ऐसी स्थिति की कल्पना करें जहां विशेष वर्णों को नियंत्रित करने के लिए नियंत्रण वर्णों का उपयोग किया जाता है और / या जो केवल प्रति वर्ण सीमित बिट चौड़ाई का समर्थन करता है। बेस 64 किसी भी इनपुट को एन्कोडिंग में बदल देता है जो केवल अल्फ़ान्यूमेरिक वर्णों का उपयोग करता है +
, /
और =
एक पैडिंग चरित्र के रूप में।
Base64 का उपयोग जो मैं यहां बताने जा रहा हूं वह कुछ हद तक हैक है। इसलिए यदि आपको हैक पसंद नहीं है, तो कृपया मत जाओ।
मुझे तब परेशानी हुई जब मुझे पता चला कि MySQL का utf8 4-बाइट यूनिकोड वर्णों का समर्थन नहीं करता है क्योंकि यह utf8 के 3-बाइट संस्करण का उपयोग करता है। इसलिए मैंने MySQL के utf8 पर पूर्ण 4-बाइट यूनिकोड का समर्थन करने के लिए क्या किया? डेटाबेस में भंडारण करते समय खैर, base64 स्ट्रिंग्स को एनकोड करता है और पुनर्प्राप्त करते समय base64 को डिकोड करता है।
चूंकि बेस 64 एन्कोडिंग और डिकोडिंग बहुत तेज है, इसलिए उपरोक्त पूरी तरह से काम करता है।
आपके पास निम्नलिखित बातों पर ध्यान देना चाहिए:
Base64 एन्कोडिंग 33% अधिक संग्रहण का उपयोग करता है
डेटाबेस में संग्रहीत स्ट्रिंग्स मानव पठनीय नहीं हो सकते हैं (आप इसे एक विशेषता के रूप में बेच सकते हैं जो डेटाबेस स्ट्रिंग्स एन्क्रिप्शन के मूल रूप का उपयोग करते हैं)।
आप किसी भी भंडारण इंजन के लिए उपरोक्त विधि का उपयोग कर सकते हैं जो यूनिकोड का समर्थन नहीं करता है।
utf8
प्रकार अभी भी केवल तीन-बाइट्स है; यदि आप असली चीज़ चाहते हैं, तो उपयोग करें utf8mb4
। अच्छा हैक, लेकिन अब आवश्यक नहीं है।
इसका उपयोग ASCII पाठ में मनमाने ढंग से बाइनरी डेटा को परिवर्तित करने के लिए किया जाता है।
उदाहरण के लिए, ई-मेल अटैचमेंट इस तरह भेजे जाते हैं।
जब हम वेब सेवाओं के माध्यम से बड़ी द्विआधारी वस्तुओं (छवियों) को स्थानांतरित करते हैं तो मैं इसे व्यावहारिक अर्थों में उपयोग करता हूं। इसलिए जब मैं एक अजगर स्क्रिप्ट का उपयोग करके सी # वेब सेवा का परीक्षण कर रहा हूं, तो बाइनरी ऑब्जेक्ट को थोड़ा जादू के साथ फिर से बनाया जा सकता है।
[अजगर में]
import base64
imageAsBytes = base64.b64decode( dataFromWS )
“Base64 एन्कोडिंग योजनाओं का उपयोग आमतौर पर तब किया जाता है जब द्विआधारी डेटा को एन्कोड करने की आवश्यकता होती है, जिसे टेक्सटाइल डेटा से निपटने के लिए डिज़ाइन किए गए मीडिया पर संग्रहीत और स्थानांतरित किया जाना चाहिए। यह सुनिश्चित करना है कि परिवहन के दौरान संशोधन के बिना डेटा बरकरार रहे ”(विकी, 2017)
उदाहरण निम्नलिखित हो सकता है: आपके पास एक वेब सेवा है जो केवल ASCII वर्णों को स्वीकार करती है। आप उपयोगकर्ता के डेटा को किसी अन्य स्थान (API) पर सहेजना और स्थानांतरित करना चाहते हैं, लेकिन प्राप्तकर्ता अछूता डेटा प्राप्त करना चाहता है। बेस 64 उसके लिए है। । । केवल नकारात्मक पक्ष यह है कि बेस 64 एनकोडिंग को नियमित तारों की तुलना में लगभग 33% अधिक स्थान की आवश्यकता होगी।
एक और उदाहरण :: uenc = यूआरएल एन्कोडेड = aHR0cDovL2xvYy5tYWdlbnRvLmNvbS9hc2ljcy1tZW4tcy1nZWwta2F5YW5vLXhpaS5odG1s = http://loc.querytip.com/asics-men-s-gel-kayano-xii.html ।
जैसा कि आप देख सकते हैं कि हम URL में char "/" नहीं डाल सकते हैं यदि हम अंतिम विज़िट किए गए URL को पैरामीटर के रूप में भेजना चाहते हैं क्योंकि हम "MOD फिर से लिखना" के लिए विशेषता / मान नियम तोड़ेंगे - GET पैरामीटर।
एक पूर्ण उदाहरण होगा: " http://loc.querytip.com/checkout/cart/add/uenc/http://loc.magento.com/asics-men-s-gel-kayano-xii.html-product / 93 / ”
अधिकतर, मैंने देखा है कि इसका उपयोग बाइनरी डेटा को संदर्भों में सांकेतिक शब्दों में बदलना है जो केवल एएससीआई या एक साधारण चरित्र सेट को संभाल सकता है।
ब्रैड क्या कह रहा है, इस पर थोड़ा विस्तार करने के लिए: ईमेल और यूज़नेट के लिए कई परिवहन तंत्र और डेटा को स्थानांतरित करने के अन्य तरीके "8 बिट क्लीन" नहीं हैं, जिसका अर्थ है कि मानक एससीआई वर्ण सेट के बाहर के पात्रों को पारगमन में लगाया जा सकता है - उदाहरण के लिए। 0x0D को एक गाड़ी वापसी के रूप में देखा जा सकता है, और एक गाड़ी वापसी और लाइन फीड में बदल गई। बेस 64 में सभी बाइनरी पात्रों को कई मानक ascii अक्षरों और संख्याओं और विराम चिह्नों में मैप किया गया है ताकि वे इस तरह से मंगाई न जाएं।
Base64
बेस 64 कई समान एन्कोडिंग योजनाओं के लिए एक सामान्य शब्द है जो द्विआधारी डेटा को संख्यात्मक रूप से मानकर और इसे बेस 64 प्रतिनिधित्व में अनुवाद करके एनकोड करता है। Base64 शब्द एक विशेष MIME सामग्री हस्तांतरण एन्कोडिंग से उत्पन्न होता है।
बेस 64 एन्कोडिंग योजनाओं का उपयोग आमतौर पर तब किया जाता है जब द्विआधारी डेटा को एनकोड करने की आवश्यकता होती है, जिसे टेक्सटाइल डेटा से निपटने के लिए डिज़ाइन किए गए मीडिया पर संग्रहीत और स्थानांतरित किया जाना चाहिए। यह सुनिश्चित करने के लिए है कि परिवहन के दौरान संशोधन के बिना डेटा बरकरार रहे। बेस 64 का उपयोग आमतौर पर MIME के माध्यम से ईमेल सहित कई अनुप्रयोगों में किया जाता है, और XML में जटिल डेटा संग्रहीत करता है।
बेस 64 का उपयोग कई उद्देश्यों के लिए किया जा सकता है।
प्राथमिक कारण बाइनरी डेटा को पास करने योग्य चीज़ में बदलना है।
मैं कभी-कभी इसका उपयोग JSON डेटा को एक साइट से दूसरी साइट पर पास करने के लिए करता हूं, उपयोगकर्ता के बारे में कुकीज़ में जानकारी संग्रहीत करता हूं।
नोट: आप "एन्क्रिप्शन के लिए" इसका उपयोग कर सकते हैं - मैं यह नहीं देखता कि लोग यह क्यों कहते हैं कि आप नहीं कर सकते हैं, और यह एन्क्रिप्शन नहीं है, हालांकि यह आसानी से टूटने योग्य होगा और पर फेंक दिया जाता है। एन्क्रिप्शन का अर्थ है डेटा के एक स्ट्रिंग को डेटा के दूसरे स्ट्रिंग में परिवर्तित करने के अलावा और कुछ नहीं है जिसे बाद में डिक्रिप्ट किया जा सकता है या नहीं, और यही आधार 64 करता है।
एक हेक्साडेसिमल अंक एक कुतरना (4 बिट्स) का है। दो निबल 8 बिट बनाते हैं जिन्हें 1 बाइट भी कहा जाता है।
MD5 एक 128-बिट आउटपुट उत्पन्न करता है जिसे 32 हेक्साडेसिमल अंकों के अनुक्रम का उपयोग करके दर्शाया जाता है, जो बदले में 32 * 4 = 128 बिट्स होते हैं। 128 बिट्स 16 बाइट्स बनाते हैं (क्योंकि 1 बाइट 8 बिट्स है)।
प्रत्येक बेस 64 कैरेक्टर में 6 बिट्स (अंतिम नॉन-पैड कैरेक्टर को छोड़कर जो 2, 4 या 6 बिट्स को एन्कोड कर सकते हैं, और फाइनल पैड कैरेक्टर, यदि कोई हो) को एनकोड करता है। इसलिए, बेस 64 एनकोडिंग के लिए, 128-बिट हैश के लिए कम से कम ⌉128 / 6 22 = 22 वर्ण, प्लस पैड यदि कोई हो, की आवश्यकता होती है।
बेस 64 का उपयोग करके, हम अपनी वांछित लंबाई (6, 8, या 10) के एन्कोडेड आउटपुट का उत्पादन कर सकते हैं। अगर हम 8 char लंबे आउटपुट को तय करना चुनते हैं, तो यह केवल 8 बाइट्स पर कब्जा कर लेता है, जबकि 128-बिट हैश आउटपुट के लिए यह 16 बाइट्स पर कब्जा कर रहा था।
तो, सुरक्षा के अलावा, बेस 64 एन्कोडिंग का उपयोग खपत की गई जगह को कम करने के लिए भी किया जाता है।