જો ઇન્ટરનેટ માહિતી ધોરીમાર્ગ છે, તો ઇમેઇલ માટે પાથ એ એક સાંકડી કોતર છે. માત્ર ખૂબ નાના ગાડા પસાર કરી શકો છો
ઇમેઇલની પરિવહન વ્યવસ્થા સાદા ASCII ટેક્સ્ટ માટે જ તૈયાર કરવામાં આવી છે. અન્ય ભાષાઓમાં અથવા મનસ્વી ફાઈલોમાં ટેક્સ્ટ મોકલવાનો પ્રયત્ન કરવાથી કોતરાની વચ્ચે ટ્રક મેળવવાની સમાન છે.
મોટા ટ્રક કેવી રીતે કોતર દ્વારા પસાર થાય છે?
તો પછી તમે નાની કોતર દ્વારા એક મોટી ટ્રક કેવી રીતે મોકલી શકશો? તમારે તેને એક ટુકડા પર એક ટુકડા પર લઈ જવું પડશે, તે ટુકડાઓ કોતરાની વચ્ચે પરિવહન કરે છે, અને બીજા ભાગમાં ટુકડાઓમાંથી ટ્રકનું પુનઃનિર્માણ કરશે.
તે જ થાય છે જ્યારે તમે ઇમેઇલ દ્વારા ફાઇલ જોડાણ મોકલો છો. બાયનરી ડેટા એન્કોડિંગ તરીકે ઓળખાતી પ્રક્રિયામાં એએસસીઆઇઆઇ (ASCII) ટેક્સ્ટ તરીકે પરિવર્તિત થાય છે, જે સમસ્યા વગર ઇમેઇલમાં પરિવહન કરી શકાય છે. પ્રાપ્તકર્તાના અંત પર, ડેટા ડીકોડ કરવામાં આવે છે અને મૂળ ફાઇલ ફરીથી બનાવવામાં આવે છે.
સાદા ASCII ટેક્સ્ટ તરીકે મનસ્વી ડેટાને એન્કોડિંગ કરવાની એક પદ્ધતિ Base64 છે સાદા ટેક્સ્ટ સિવાયનાં ડેટા મોકલવા માટે MIME સ્ટાન્ડર્ડ દ્વારા કાર્યરત તે તકનીકો પૈકી એક છે.
બચાવ માટે Base64
બેઝ 64 એન્કોડિંગ ત્રણ બાઇટ્સ લે છે, દરેક આઠ બિટ્સ ધરાવે છે, અને તેમને ASCII સ્ટાન્ડર્ડમાં ચાર છાપવા યોગ્ય અક્ષરો તરીકે રજૂ કરે છે. તે અનિવાર્યપણે બે પગલાંમાં કરે છે
પ્રથમ પગલું ત્રણ બાઇટ્સને છ બિટ્સના ચાર નંબરોમાં રૂપાંતરિત કરવું છે. ASCII સ્ટાન્ડર્ડમાંના દરેક અક્ષરમાં સાત બિટ્સ છે. બેઝ64 માત્ર 6 બિટ્સ (2 ^ 6 = 64 અક્ષરોને અનુલક્ષીને) વાપરે છે તેની ખાતરી કરવા માટે કે એન્કોડેડ ડેટા છાપવાયોગ્ય અને માનવીય વાંચનીય છે. ASCII માં ઉપલબ્ધ કોઈ ખાસ અક્ષરોનો ઉપયોગ કરવામાં આવતો નથી.
64 અક્ષરો (એટલે કે બેઝ 64) 10 અંકો, 26 લોઅરેકેસ અક્ષરો, 26 મોટા અક્ષરો તેમજ '+' અને '/' છે.
ઉદાહરણ તરીકે, જો ત્રણ બાઇટ્સ 155, 162 અને 233 છે, તો અનુરૂપ (અને ભયાનક) બીટ સ્ટ્રીમ 100110111010001011101001 છે, જે બદલામાં 6-બીટ 38, 58, 11 અને 41 મૂલ્યો સાથે સંબંધિત છે.
આ સંખ્યાઓ Base64 એન્કોડિંગ કોષ્ટકની મદદથી બીજા ક્રમમાં ASCII અક્ષરોમાં રૂપાંતરિત થાય છે. અમારા ઉદાહરણના 6-બીટ મૂલ્યો એ એસસીઆઇઆઇ (ASCII) ક્રમ "એમ 6 એલપીપી" માં અનુવાદ કરે છે.
- 155 -> 10011011
- 162 -> 10100010
- 233 -> 11101001
- 100110 -> 38
- 111010 -> 58
- 001011 -> 11
- 101001 -> 41
- 38 -> મી
- 58 -> 6
- 11 -> એલ
- 41 -> પૃષ્ઠ
આ બે-પગલાની પ્રક્રિયા એ બૉટોની સંપૂર્ણ શ્રેણી પર લાગુ થાય છે કે જે એન્કોડેડ છે. એકોડ કરેલ માહિતીને યોગ્ય રીતે મુદ્રિત કરી શકાય છે તેની ખાતરી કરવા માટે અને કોઈ મેલ સર્વરની રેખા લંબાઈની મર્યાદાને ઓળંગતી નથી, 76 અક્ષરોથી નીચે રેખા લંબાઈ રાખવા માટે નવી લાઇન અક્ષરો શામેલ છે. અન્ય તમામ ડેટા જેવા નવા અક્ષરોને એન્કોડ કરવામાં આવે છે.
એન્ડગેમનો ઉકેલ
એન્કોડિંગ પ્રક્રિયાના અંતે, અમે એક સમસ્યામાં પરિણમી શકીએ છીએ. જો બાઈટમાં મૂળ ડેટાનો કદ ત્રણમાંથી એક છે, તો બધું સારું કાર્ય કરે છે. જો તે ન હોય, તો અમે એક અથવા બે 8-bit બાઇટ્સ સાથે અંત કરી શકીએ છીએ. યોગ્ય એન્કોડિંગ માટે, અમને બરાબર ત્રણ બાઇટ્સની જરૂર છે, તેમ છતાં
3-બાઇટ જૂથ બનાવવા માટે '0' ની કિંમત સાથે પૂરતી બાઇટ્સ ઉમેરવું એ ઉકેલ છે. જો અમારી પાસે ડેટાના એક વધારાનો બાઇટ હોય તો આવા બે મૂલ્યો ઉમેરાય છે, એક બે વધારાના બાઇટ્સ માટે ઉમેરાય છે.
અલબત્ત, આ કૃત્રિમ અનુક્રમ '0 ની નીચે એન્કોડિંગ કોષ્ટકનો ઉપયોગ કરીને એન્કોડ કરી શકાશે નહીં. તેઓ 65 મા અક્ષર દ્વારા રજૂ થવું જોઈએ.
Base64 પેડિંગ અક્ષર '=' છે. સ્વાભાવિક રીતે, તે માત્ર ત્યારે જ એન્કોડેડ ડેટાના અંતમાં દેખાશે.
Base64 એન્કોડિંગ ટેબલ
| મૂલ્ય | ચાર | મૂલ્ય | ચાર | મૂલ્ય | ચાર | મૂલ્ય | ચાર |
|---|---|---|---|---|---|---|---|
| 0 | એ | 16 | ક્યૂ | 32 | જી | 48 | ડબલ્યુ |
| 1 | બી | 17 | આર | 33 | h | 49 | x |
| 2 | સી | 18 | એસ | 34 | હું | 50 | y |
| 3 | ડી | 19 | ટી | 35 | j | 51 | ઝેડ |
| 4 | ઇ | 20 | યુ | 36 | કે | 52 | 0 |
| 5 | એફ | 21 | વી | 37 | એલ | 53 | 1 |
| 6 | જી | 22 | ડબલ્યુ | 38 | મી | 54 | 2 |
| 7 | એચ | 23 | X | 39 | n | 55 | 3 |
| 8 | હું | 24 | વાય | 40 | ઓ | 56 | 4 |
| 9 | જે | 25 | ઝેડ | 41 | પૃષ્ઠ | 57 | 5 |
| 10 | કે | 26 | a | 42 | q | 58 | 6 |
| 11 | એલ | 27 | બી | 43 | આર | 59 | 7 |
| 12 | એમ | 28 | સી | 44 | ઓ | 60 | 8 |
| 13 | એન | 29 | ડી | 45 | ટી | 61 | 9 |
| 14 | ઓ | 30 | ઈ | 46 | તમે | 62 | + |
| 15 | પી | 31 | એફ | 47 | વી | 63 | / |