Base64 एन्कोडिंग वर्क्स कसे

इंटरनेट हा माहिती महामार्ग असेल तर ईमेलसाठीचा पथ अरुंद दरी आहे. केवळ खूप लहान गाड्या पास करू शकतात.

ई-मेल ची वाहतूक व्यवस्था केवळ साध्या ASCII मजकूरासाठी डिझाइन केली आहे. इतर भाषांमध्ये किंवा अनियंत्रित फाइल्समध्ये मजकूर पाठविण्याचा प्रयत्न करणे हा दोर्याने एक ट्रक मिळवणे आहे

मोठ्या ट्रकची वावटळीतून कशी जाते?

मग एका छोट्या खडकाच्या सहाय्याने आपण एक मोठी ट्रक कशी पाठवता? आपण त्यास एका टोकापासून तुकडे घेणे, कोरीवळीतून तुकडे पाठविणे, आणि दुसऱ्या टोकापासून ते तुकडयांच्या पुनर्बांधणी करणे.

आपण ई-मेलद्वारे फाइल संलग्नक पाठवतो त्याचप्रमाणे एन्कोडिंग म्हणून ओळखल्या जाणाऱ्या प्रक्रियेमध्ये एएससीआयआय मजकूर बदलला जातो, ज्यास समस्या न देता ईमेलमध्ये आणले जाऊ शकते. प्राप्तकर्त्याच्या समाप्तीवर, डेटा डीकोड करण्यात आला आहे आणि मूळ फाईल पुन्हा तयार करण्यात आली आहे

साध्या ASCII मजकूराप्रमाणे एन्कोडिंग अनियंत्रित डेटाची एक पद्धत Base64 आहे हे साध्या मजकुराखेरीज अन्य डेटा पाठविण्यासाठी MIME मानकाने वापरलेल्या तंत्रांपैकी एक आहे.

बचाव करण्यासाठी Base64

Base64 एन्कोडिंगला तीन बाइट्स, प्रत्येकी 8 बिट्स आहेत, आणि त्यांना ASCII मानकमध्ये चार मुद्रणयोग्य वर्ण म्हणून प्रतिनिधित्व करते. हे मूलतः दोन चरणात करतो.

पहिला टप्पा म्हणजे तीन बाइट्स सहा चार बिट सहा संख्या. एएससीआयआय मानकांमधे प्रत्येक अक्षर सात अंकांचा असतो. बेस 64 केवळ 6 बिट्स (2 ^ 6 = 64 वर्णांशी सुसंगत) वापरते जेणेकरुन खात्री होईल की एन्कोड केलेला डेटा छापण्यायोग्य आणि मानवीरित्या वाचनीय आहे. एएससीआयआयमध्ये उपलब्ध कोणतेही विशेष अक्षर वापरलेले नाहीत.

64 वर्ण (म्हणून Base64) हे 10 अंक, 26 लोअरकेस वर्ण, 26 अप्परकेस वर्ण तसेच '+' आणि '/' आहेत.

उदाहरणार्थ, जर तीन बाइट 155, 162 आणि 233 आहेत, तर संबंधित (आणि भयावह) बिट प्रवाह 100110111010001011101001 आहे, जे त्यास 6-बिट मूल्यांनुसार 38, 58, 11 आणि 41 शी संबंधित आहेत.

Base64 एन्कोडिंग टेबलचा वापर करून हे क्रमांक दुस-या चरणात ASCII वर्णांमध्ये रूपांतरित केले जातात. आमच्या उदाहरणाचे 6-बिट मूल्ये ASCII क्रम "m6lp" मध्ये अनुवादित करते.

ही द्वि-चरण प्रक्रिया एन्कोड केलेली सर्व अनुक्रमांच्या बाइट्सवर लागू केली जाते. हे सुनिश्चित करण्यासाठी की एन्कोड केलेला डेटा योग्य प्रकारे मुद्रित केला जाऊ शकतो आणि कोणत्याही मेल सर्व्हरची लाइन लांबी मर्यादा ओलांडत नाही, 76 वर्णांच्या खाली रेखाची लांबी कायम ठेवण्यासाठी नवीनलाइन वर्ण घातले आहेत. अन्य सर्व वर्णांप्रमाणे नवीन वर्ण एन्कोड केलेले आहेत.

एंडगॅम सोडवणे

एन्कोडिंग प्रक्रियेच्या शेवटी, आम्हाला कदाचित समस्या येईल. बाइट्समधील मूळ डेटाचा आकार तीनपैकी एक आहे तर सर्वकाही ठीक काम करते. तसे नसल्यास, आपण एक किंवा दोन 8-बिट बाइटसह समाप्त करू शकता. योग्य एन्कोडिंगसाठी, आम्हाला नक्की तीन बाइट्स आवश्यक आहेत, तथापि

एक 3-बाइट गट तयार करण्यासाठी '0' च्या मूल्यासह पुरेशी बाइट जोडणे हा उपाय आहे. जर आमच्याकडे डेटाच्या एक अतिरिक्त बाइट असेल तर दोन अशी मूल्ये जोडली जातात, एकाने दोन अतिरिक्त बाइट्स जोडावे.

अर्थात, या कृत्रिम अनुगामी '0 च्या खाली एन्कोडिंग टेबल वापरून एन्कोड करणे शक्य नाही. ते 65 व्या वर्णाने प्रस्तुत केले जाणे आवश्यक आहे

Base64 पॅडिंग वर्ण '=' आहे. स्वाभाविकच, तो केवळ एन्कोड केलेला डेटाच्या शेवटी प्रकट होऊ शकतो.

Base64 एन्कोडिंग सारणी

मूल्य चार मूल्य चार मूल्य चार मूल्य चार
0 16 प्रश्न 32 जी 48 डब्ल्यू
1 17 आर 33 ता 49 x
2 सी 18 एस 34 मी 50 y
3 डी 1 9 टी 35 j 51
4 20 यू 36 के 52 0
5 F 21 व्ही 37 एल 53 1
6 जी 22 38 मी 54 2
7 एच 23 X 39 एन 55 3
8 मी 24 वाय 40 56 4
9 जे 25 Z 41 पी 57 5
10 के 26 42 q 58 6
11 एल 27 43 आर 59 7
12 एम 28 44 s 60 8
13 N 2 9 डी 45 टी 61 9
14 30 46 तुम्ही 62 +
15 पी 31 47 v 63 /