दिलचस्प पोस्ट
एक UIView धक्का जब UITabBar छुपा .NET के साथ OpenSSL आरएसए कुंजी का उपयोग करें GitHub से सीधे एनपीएम पैकेज कैसे स्थापित करें? @ वर्ग बनाम #import लूपिंग AVPlayer मूल रूप से MySQL में तारीख श्रेणियों के ओवरलैप की जांच करें स्टोर और फिर से लोड करें matplotlib.pyplot वस्तु जावा में सेट के एक पावरसेट प्राप्त करना एसक्यूएल 2008 में विदेशी कुंजी रिश्ते से स्टेटमेंट हटाएं? असुरक्षित जावास्क्रिप्ट यूआरएल के साथ फ्रेम तक पहुंचने का प्रयास जानकारी प्राप्त करने के लिए jsp पृष्ठों में सत्र का उपयोग कैसे करें? ऑफ़लाइन उपयोग के लिए Google मानचित्र डाउनलोड / कैशिंग करना क्यों IEnumerable <T> IEnumerable से वंशानुगत है? / Proc / self / exe बिना वर्तमान निष्पादन योग्य पथ का पता लगाना HTML कोड को <? Php?> में कैसे लिखा जाए

बेस 64 एन्कोडिंग क्या इस्तेमाल किया जाता है?

मैंने लोगों को यहाँ और वहां "बेस 64 एन्कोडिंग" के बारे में बात करते हुए सुना है इसका क्या उपयोग है?

Solutions Collecting From Web of "बेस 64 एन्कोडिंग क्या इस्तेमाल किया जाता है?"

जब आपके पास कुछ बाइनरी डेटा होता है जिसे आप एक नेटवर्क भर में भेजना चाहते हैं, तो आप आमतौर पर केवल कच्चे प्रारूप में तार पर बिट और बाइट्स को स्ट्रीम करके ऐसा नहीं करते हैं। क्यूं कर? क्योंकि कुछ मीडिया स्ट्रीमिंग टेक्स्ट के लिए बनाये जाते हैं आप कभी नहीं जानते – कुछ प्रोटोकॉल आपके बाइनरी डेटा को नियंत्रित अक्षर (जैसे मॉडेम) के रूप में समझा सकते हैं, या आपके बाइनरी डेटा को खराब कर दिया जा सकता है क्योंकि अंतर्निहित प्रोटोकॉल सोच सकता है कि आपने एक विशेष वर्ण संयोजन दर्ज किया है (जैसे कि कैसे एफ़टीपी लाइन का अनुवाद करता है अंत)।

इस प्रकार, लोगों को बाइनरी डेटा अक्षर में सांकेतिक शब्दों में भरना होगा। Base64 इन प्रकार के एन्कोडिंग में से एक है।

64 क्यों?
क्योंकि आप आम तौर पर कई अक्षर सेटों में मौजूद 64 वर्णों पर भरोसा कर सकते हैं, और आप इस बात पर पूरा भरोसा कर सकते हैं कि आपके डेटा का असंगत तार के दूसरी ओर समाप्त हो रहा है

यह मूल रूप से एएससीआईआई पाठ में मनमाना द्विआधारी डेटा एन्कोडिंग का एक तरीका है। इसे डेटा के 3 बाइट्स में 4 वर्ण लेते हैं, साथ ही अंत में पैडिंग का एक बिट भी हो सकता है।

मूल रूप से इनपुट के प्रत्येक 6 बिट्स को 64-वर्ण वर्णमाला में एन्कोड किया गया है। "मानक" वर्णमाला AZ, az, 0-9 और + और /, के साथ = एक पैडिंग वर्ण के रूप में उपयोग करता है यूआरएल सुरक्षित रूप हैं।

विकिपीडिया अधिक जानकारी का एक अच्छा स्रोत है

बेस -64 एन्कोडिंग एक द्विआधारी डेटा लेने और इसे पाठ में बदलने का एक तरीका है, ताकि यह ई-मेल और एचटीएमएल फॉर्म डेटा जैसी चीजों में आसानी से संचारित हो सके।

http://en.wikipedia.org/wiki/Base64

यह बाइनरी डेटा का एक पाठ एन्कोडिंग है जहां परिणाम पाठ में अक्षर, संख्याएं और प्रतीक "+", "/" और "=" है। मीडिया पर बाइनरी डेटा को स्टोर / ट्रांसमिट करने का एक सुविधाजनक तरीका है जो विशेष रूप से टेक्स्ट डेटा के लिए उपयोग किया जाता है

लेकिन क्यों बेस -64? द्विआधारी डेटा को पाठ में परिवर्तित करने के दो विकल्प हैं जो तुरंत ध्यान में आते हैं:

  1. दशमलव: तीन अंकों के रूप में प्रत्येक बाइट के दशमलव मान को स्टोर करें: 045 112 101 037 आदि। जहां प्रत्येक बाइट को 3 बाइट्स द्वारा दर्शाया गया है। डेटा तीन गुना ब्लूट।
  2. हेक्साडेसिमल: हेक्स जोड़े के रूप में बाइट्स को स्टोर करें: एसी 47 0 डी 1 ए आदि, जहां प्रत्येक बाइट 2 बाइट्स द्वारा प्रदर्शित किया जाता है। डेटा दो गुना दोहराता है।

6-बिट्स (6 x 4 = 24 बिट्स) के 4 अक्षरों में बेस -64 मैप्स 3 बाइट्स (8 x 3 = 24 बिट) परिणाम कुछ "TWFuIGlzIGRpc3Rpb …" जैसा दिखता है। इसलिए सूजन केवल मूल 4/3 = 1.3333333 बार मूल है।

पहले से ही क्या कहा गया है, इसके अलावा, दो बहुत ही सामान्य उपयोग हैं जो सूचीबद्ध नहीं हैं

हैश:

Hashes एक तरह से फ़ंक्शंस हैं जो बाइट्स के एक ब्लॉक को एक निश्चित आकार के 128 बिट या 256 बिट (एसएचए / एमडी 5) जैसे बाइट्स के दूसरे ब्लॉक में बदलते हैं। परिणामस्वरूप बाइट्स को बेस 64 में बदलने से यह हैश प्रदर्शित करने में बहुत आसान होता है, खासकर जब आप एकता के लिए चेकसम की तुलना कर रहे हैं बेस 64 में देखा जाता है कि बहुत से लोग बेस 64 को हीश के रूप में भूलते हैं।

क्रिप्टोग्राफी:

चूंकि एक एन्क्रिप्शन कुंजी को पाठ होना नहीं है लेकिन कच्चे बाइट्स हैं, कभी-कभी इसे फाइल या डाटाबेस में संग्रहीत करने के लिए आवश्यक होता है, जो बेस 64 के लिए उपयोगी होता है। परिणामी एन्क्रिप्टेड बाइट्स के साथ

नोट करें कि हालांकि Base64 अक्सर क्रिप्टोग्राफी में उपयोग किया जाता है, हालांकि सुरक्षा तंत्र नहीं है कोई भी बेस 64 स्ट्रिंग को अपने मूल बाइट्स में बदल सकता है, इसलिए इसे डेटा की सुरक्षा के लिए एक साधन के रूप में उपयोग नहीं किया जाना चाहिए, केवल कच्चे बाइट्स को प्रदर्शित करने और संग्रहीत करने के प्रारूप के रूप में अधिक आसानी से।

प्रमाण पत्र

पीईएम प्रारूप में x509 प्रमाण पत्र आधार 64 इनकोडेड हैं। http://how2ssl.com/articles/working_with_pem_files/

http://en.wikipedia.org/wiki/Base64 से

बेस 64 शब्द विशिष्ट MIME सामग्री स्थानांतरण एन्कोडिंग को दर्शाता है। इसका उपयोग किसी भी समान एन्कोडिंग स्कीम के लिए एक सामान्य शब्द के रूप में किया जाता है जो इसे संख्यात्मक रूप से इलाज करके और बेस 64 के प्रतिनिधित्व में बाइनरी डेटा को एनकोड करता है। आधार का विशेष चुनाव चरित्र सेट एन्कोडिंग के इतिहास के कारण होता है: कोई 64 वर्णों का एक समूह चुन सकता है जो कि अधिकांश एन्कोडिंग के लिए सामान्य उप-भाग का दोनों भाग होता है, और प्रिंट करने योग्य भी होता है। इस संयोजन में डेटा के माध्यम से पारगमन में संशोधित होने की संभावना नहीं है, जैसे कि ई-मेल, जो परंपरागत रूप से 8-बिट क्लीन नहीं थे।

Base64 विभिन्न संदर्भों में उपयोग किया जा सकता है:

  • विकास और थंडरबर्ड ई-मेल पासवर्ड को अस्पष्ट करने के लिए Base64 का उपयोग करें [1]
  • Base64 का उपयोग पाठ को प्रसारित और संग्रहीत करने के लिए किया जा सकता है जो अन्यथा सीमांकक टकराव का कारण हो सकता है
  • बेस 64 को अक्सर क्रिप्टोग्राफ़िक कुंजी प्रबंधन के ओवरहेड के बिना रहस्यों को अस्पष्ट करने के लिए एक त्वरित लेकिन असुरक्षित शॉर्टकट के रूप में उपयोग किया जाता है

  • स्पैमर्स बेस -64 का उपयोग मूल एंटी स्पैमिंग टूल से करने के लिए करते हैं, जो अक्सर बेस64 को डीकोड नहीं करते हैं और इसलिए एन्कोडेड संदेशों में कीवर्ड का पता लगा सकते हैं।

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

कंप्यूटर के शुरुआती दिनों में, जब टेलिफोन लाइन अंतर-प्रणाली संचार विशेष रूप से विश्वसनीय नहीं था, डेटा अखंडता की पुष्टि करने का त्वरित और गंदा तरीका प्रयोग किया गया था: "बिट समानता"। इस पद्धति में, संचरित हर बाइट में 7-बिट डेटा होता, और 8 वें 1 या 0 हो, ताकि बाइट में 1 बिट की संख्या को भी लागू किया जा सके।

अतः 0x01 को 0x81 के रूप में प्रेषित किया जाएगा; 0x02 0x82 होगा; 0x03 0x03 आदि रहेंगे

इस सिस्टम को आगे बढ़ाने के लिए, जब एएससीआईआई वर्ण सेट परिभाषित किया गया था, केवल 00-7F वर्णों को निर्दिष्ट किया गया था। (आज भी, श्रेणी 80-एफएफ में सेट किए गए सभी अक्षर गैर मानक हैं)

दिन के कई रूटर ने हार्डवेयर में समानता की जांच और बाइट अनुवाद रखा, 7-बिट डेटा के साथ कड़ाई से निपटने के लिए उन्हें संलग्न कंप्यूटरों को मजबूर करते हुए इस बल ईमेल संलग्नक (और अन्य सभी डेटा, यही वजह है कि HTTP और SMTP प्रोटोकॉल टेक्स्ट-आधारित हैं), केवल पाठ-केवल प्रारूप में कनवर्ट करने के लिए।

कुछ रूटर 90 के दशक में बच गए। मैं गंभीरता से संदेह करता हूं कि उनमें से किसी भी आज उपयोग में हैं

कुछ परिवहन प्रोटोकॉल केवल अक्षरांकीय वर्णों को प्रेषित करने की अनुमति देते हैं। बस उस स्थिति की कल्पना करें जहां नियंत्रण वर्णों को विशेष कार्यों को ट्रिगर करने के लिए उपयोग किया जाता है और / या केवल प्रति चरित्र सीमित चौड़ाई का समर्थन करता है। Base64 किसी इनपुट को एन्कोडिंग में रूपांतरित करता है जो केवल अल्फ़ान्यूमेरिक वर्णों का उपयोग करता है, + , / और = एक पैडिंग वर्ण के रूप में।

इसका उपयोग आकस्मिक द्विआधारी डेटा को एएससीआईआई पाठ में परिवर्तित करने के लिए किया जाता है।

उदाहरण के लिए, ई-मेल संलग्नक इस तरह से भेजे जाते हैं।

जब मैं वेब सेवाओं के माध्यम से बड़े द्विआधारी ऑब्जेक्ट्स (इमेजेस) का स्थानांतरण करता हूं, तो मैं इसे व्यावहारिक रूप से प्रयोग करता हूं इसलिए जब मैं एक अजगर स्क्रिप्ट का उपयोग करके सी # वेब सेवा का परीक्षण कर रहा हूं, तो द्विआधारी ऑब्जेक्ट को थोड़ा जादू के साथ बनाया जा सकता है

[अजगर में]

 import base64 imageAsBytes = base64.b64decode( dataFromWS ) 

बेस 64 का उपयोग मैं यहाँ वर्णन करने वाला हूँ, कुछ हद तक हैक है। तो अगर आपको हैक्स पसंद नहीं है, तो कृपया पर मत जाओ।

मैं मुसीबत में गया जब मुझे पता चला कि MySQL का utf8 4-बाइट यूनिकोड वर्णों का समर्थन नहीं करता है क्योंकि यह utf8 के 3-बाइट संस्करण का उपयोग करता है। तो क्या मैंने MySQL के utf8 पर पूर्ण 4-बाइट यूनिकोड का समर्थन किया है? ठीक है, base64 सांकेतिक शब्दों में बदलना तार जब डाटाबेस में भंडारण और base64 डीकोड को पुनः प्राप्त करते समय।

चूंकि base64 एन्कोडिंग और डिकोडिंग बहुत तेज है, ऊपर से पूरी तरह से काम किया है।

ध्यान देने के लिए आपके पास निम्न बिंदु हैं:

  • बेस 64 एन्कोडिंग 33% अधिक संग्रहण का उपयोग करता है

  • डेटाबेस में संग्रहित स्ट्रिंग मानव पठनीय हो सकता है (आप इसे उस सुविधा के रूप में बेच सकते हैं जो डेटाबेस स्ट्रिंग एन्क्रिप्शन का मूल रूप का उपयोग करते हैं)।

आप किसी भी भंडारण इंजन के लिए उपरोक्त विधि का उपयोग कर सकते हैं जो यूनिकोड का समर्थन नहीं करता है

अधिकतर, मैंने देखा है कि ये उन संदर्भों में बाइनरी डेटा को सांकेतिक शब्दों में बदलना करने के लिए उपयोग किया जाता है जो कि केवल ascii – या एक साधारण-चरित्र सेट को नियंत्रित कर सकता है

ब्रैड क्या कह रहा है पर कुछ विस्तार करने के लिए: ईमेल और यूजनेट और चलती आंकड़ों के अन्य तरीकों के लिए कई परिवहन तंत्र "8 बिट क्लीन" नहीं हैं, जिसका मतलब है कि स्टैंडर्ड एएससीआई चरित्र सेट के बाहर के अक्षरों को पारगमन में उलझाया जा सकता है – उदाहरण के लिए, 0x0 डी को कैरिएस रिटर्न के रूप में देखा जा सकता है, और कैरिज रिटर्न और लाइन फीड में बदल गया। बेस 64 नक्शे सभी मानक आस्की अक्षरों और संख्याओं और विराम चिह्नों में सभी बाइनरी वर्णों में आते हैं, इसलिए उन्हें इस तरह से गड़बड़ी नहीं की जाएगी।

Base64

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

बेस 64 एन्कोडिंग योजनाएं आमतौर पर इस्तेमाल की जाती हैं, जब बाइंडिक डेटा को सांकेतिकृत करने की ज़रूरत होती है, जो कि मीडिया पर संग्रहीत और स्थानांतरित होने की आवश्यकता होती है, जो टेक्स्ट डेटा से निपटने के लिए डिज़ाइन किए गए हैं। यह सुनिश्चित करने के लिए है कि परिवहन के दौरान कोई भी संशोधन किए बिना डेटा बरकरार है। Base64 आमतौर पर एमआईएमई के माध्यम से ईमेल सहित कई अनुप्रयोगों में उपयोग किया जाता है, और एक्सएमएल में जटिल डेटा संग्रहीत करता है।

Base64 कई उद्देश्यों के लिए इस्तेमाल किया जा सकता है

प्राथमिक कारण द्विआधारी डेटा को कुछ प्रचलित करने के लिए परिवर्तित करना है

मैं कभी-कभी इसका उपयोग एक साइट से दूसरे के लिए JSON डेटा को पास करने के लिए करता हूं, किसी उपयोगकर्ता के बारे में कुकीज़ में जानकारी संग्रहीत करता हूं।

नोट: आप इसे एन्क्रिप्शन के लिए "प्रयोग" कर सकते हैं – मुझे नहीं पता है कि लोग क्यों नहीं कह सकते हैं कि आप नहीं कर सकते हैं, और यह एन्क्रिप्शन नहीं है, हालांकि यह आसानी से भंगुर हो सकता है और उस पर डरा हुआ है। एन्क्रिप्शन का मतलब डेटा की एक स्ट्रिंग को डेटा के दूसरे स्ट्रिंग में परिवर्तित करने से ज्यादा कुछ नहीं है जो या तो बाद में डिक्रिप्टेड या नहीं हो सकता है, और यह है कि बेस 64 क्या करता है।

"बेस 64 एन्कोडिंग योजनाएं आमतौर पर तब इस्तेमाल की जाती हैं जब बाइनरी डेटा को सांकेतिकृत करने की ज़रूरत होती है, जो कि मीडिया पर संग्रहीत और स्थानांतरित होने की आवश्यकता होती है, जो टेक्स्ट डेटा से निपटने के लिए डिज़ाइन किए गए हैं यह सुनिश्चित करना है कि डेटा परिवहन के दौरान संशोधन के बिना बरकरार रहे "(विकी, 2017)

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

एक और उदाहरण :: यूएएनसी = यूआरएल एन्कोडेड = एएचआर0 सीडीओवीएल 2xvYy5tYWdlbnRvLmNvbS9Hc2ljcy1tZW4tcy1nZWwta2F5YW5vLXhpaS5odG1s = http://loc.querytip.com/asics-men-s-gel-kayano-xii.html

जैसा कि आप देख सकते हैं कि हम यूआरएल में "चार" डाल नहीं सकते हैं, अगर हम पैरामीटर के रूप में पिछली विज़िट यूआरएल भेजना चाहते हैं क्योंकि हम "MOD rewrite" के लिए विशेषता / मूल्य नियम तोड़ेंगे- GET पैरामीटर

एक पूर्ण उदाहरण होगा: " http://loc.querytip.com/checkout/cart/add/uenc/http://loc.magento.com/asics-men-s-gel-kayano-xii.html/product / 93 / "