ഇൻറർനെറ്റ് ഇൻഫർമേഷൻ ഹൈവേ ആണെങ്കിൽ, ഇ-മെയിലിലേക്കുള്ള പാത ഒരു ഇടുങ്ങിയ കമാനമാണ്. വളരെ ചെറിയ വണ്ടികൾ മാത്രമേ കടന്നുപോകാൻ കഴിയൂ.
സാധാരണ ASCII വാചകത്തിനു വേണ്ടി രൂപകൽപ്പന ചെയ്തിരിക്കുന്ന ഇമെയിലിൻറെ ട്രാൻസ്പോർട്ട് സിസ്റ്റം ആണ്. മറ്റ് ഭാഷകളിലോ അല്ലെങ്കിൽ ഏകപക്ഷീയമായ ഫയലുകളിലോ വാചകം അയയ്ക്കാൻ ശ്രമിക്കുന്നത് കാലിൻവഴി ഒരു ട്രക്ക് ലഭിക്കുന്നത് പോലെയാണ്.
വലിയ ട്രക്ക് എങ്ങനെ പണികഴിപ്പിക്കും?
പിന്നെ ഒരു ചെറിയ മലയിടുക്കിലൂടെ ഒരു വലിയ ട്രക്ക് എങ്ങിനെ അയയ്ക്കുന്നു? ഒരു വശത്ത് കഷണങ്ങളായി മുറിച്ചെടുക്കണം, മലയിടുക്കുകളിലൂടെ കഷണങ്ങൾ കൊണ്ടുപോകുക, മറുകരയിലെ കഷണങ്ങളിൽ നിന്ന് ട്രക്ക് പുനർനിർമിക്കുക.
നിങ്ങൾ ഇമെയിൽ വഴി ഒരു ഫയൽ അറ്റാച്ച്മെന്റ് അയക്കുമ്പോൾ സംഭവിക്കും. ബൈനറി ഡാറ്റ എൻകോഡിംഗ് എന്ന് വിളിക്കപ്പെടുന്ന പ്രോസസ്സിൽ ASCII ടെക്സ്റ്റായി മാറ്റി, അത് പ്രശ്നങ്ങൾ ഇല്ലാതെ ഇമെയിലിൽ കൊണ്ടുപോകാം. സ്വീകർത്താവിന്റെ അവസാനത്തിൽ, ഡാറ്റ ഡീകോഡ് ചെയ്യപ്പെടുകയും അസൽ ഫയൽ പുനർനിർമ്മിക്കുകയും ചെയ്യുന്നു.
എപിഐ ടെക്സ്റ്റായ ബേസ് 64 ആണ് ഏകപക്ഷീയമായ ഡാറ്റ എൻകോഡ് ചെയ്യുന്നത്. പ്ലെയിൻ ടെക്സ്റ്റിനേതല്ലാതെ മറ്റെന്തെങ്കിലും ഡാറ്റ അയയ്ക്കാൻ MIME സ്റ്റാൻഡേർഡ് ഉപയോഗിച്ചിരിക്കുന്ന ടെക്നിക്കുകളിൽ ഒന്നാണ് ഇത്.
റെസ്ക്യൂ ലേക്കുള്ള ബേസ് 64
ബേസ് 64 എൻകോഡിങ്ങിന് മൂന്ന് ബൈറ്റുകളാണ് എടുത്തിട്ടുള്ളത്, ഓരോന്നും എട്ട് ബിറ്റുകൾ ഉൾക്കൊള്ളുന്നു, കൂടാതെ അവ ASCII നിലവാരത്തിൽ നാലു അച്ചടിക്കാവുന്ന പ്രതീകങ്ങളായി കണക്കാക്കപ്പെടുന്നു. അത് രണ്ട് ഘട്ടങ്ങളിലാണ് ചെയ്യുന്നത്.
ആദ്യത്തെ പത്ത് ബൈറ്റുകളെ ആറ് ബിറ്റുകളുടെ നാല് നമ്പറാക്കി മാറ്റണം എന്നതാണ്. ആസ്കി അടിസ്ഥാനത്തിൽ ഓരോ ക്യാരക്ടർ ഏഴ് ബിറ്റുകളും ഉൾക്കൊള്ളുന്നു. എൻകോഡ് ചെയ്ത ഡാറ്റ അച്ചടിക്കാൻ കഴിയുമെന്നും മനുഷ്യർ വായിക്കാവുന്ന തരത്തിലാക്കാമെന്നും ഉറപ്പുവരുത്താൻ Base64 മാത്രമേ 6 ബിറ്റുകൾ ഉപയോഗപ്പെടുത്തുന്നുള്ളൂ (2 ^ 6 = 64 പ്രതീകങ്ങളുമായി). ASCII ൽ ലഭ്യമായ പ്രത്യേക പ്രതീകങ്ങൾ ഒന്നുംതന്നെ ഉപയോഗിക്കപ്പെട്ടിട്ടില്ല.
64 പ്രതീകങ്ങൾ (അതിനാല് ബേസ് 64 ആണ് പേര്) 10 അക്കം, 26 ചെറിയ അക്ഷരങ്ങള്, 26 വലിയക്ഷരങ്ങള്, '+', '/' എന്നിവയാണ്.
ഉദാഹരണത്തിന്, മൂന്ന് ബൈറ്റുകൾ 155, 162, 233 എന്നിവയാണ്, ഇതിന് അനുബന്ധം 100110111010001011101001 ആണ്. ഇത് 6, ബിറ്റ്, മൂല്യങ്ങൾ 38, 58, 11, 41 എന്നിവയാണ്.
Base64 എൻകോഡിംഗ് ടേബിൾ ഉപയോഗിച്ച് രണ്ടാമത്തെ ഘട്ടത്തിൽ ഈ നമ്പറുകൾ ASCII പ്രതീകങ്ങളായി പരിവർത്തനം ചെയ്യപ്പെടുന്നു. ഞങ്ങളുടെ ഉദാഹരണത്തിലെ 6 ബിറ്റ് മൂല്യങ്ങൾ ASCII അനുക്രമം "m6Lp" ലേക്ക് വിവർത്തനം ചെയ്യുന്നു.
- 155 -> 10011011
- 162 -> 10100010
- 233 -> 11101001
- 100110 -> 38
- 111010 -> 58
- 001011 -> 11
- 101001 -> 41
- 38 -> മീ
- 58 -> 6
- 11 -> എൽ
- 41-> പേ
എൻകോഡ് ചെയ്യപ്പെട്ട ബൈറ്റുകളുടെ മുഴുവൻ ശ്രേണിയും ഈ രണ്ടു ഘട്ട പ്രോസസ് പ്രയോഗിക്കുന്നു. എൻകോഡ് ചെയ്ത ഡാറ്റ ശരിയായി അച്ചടിക്കാൻ കഴിയുമെന്ന് ഉറപ്പുവരുത്തുക, കൂടാതെ മെയിൽ സെർവറിന്റെ ലൈൻ ദൈർഘ്യ പരിധി കവിയുകയുമരുത്, 76 പ്രതീകങ്ങൾക്ക് ചുവടെ വരി രേഖകൾ നിലനിർത്താൻ പുതിയ ലൈൻ പ്രതീകങ്ങൾ ചേർത്തിരിക്കുന്നു. മറ്റ് എല്ലാ ഡാറ്റകളെയും പോലെ പുതിയലൈൻ പ്രതീകങ്ങൾ എൻകോഡ് ചെയ്തിരിക്കുന്നു.
എൻഡ് ഗെയിം പരിഹരിക്കുന്നു
എൻകോഡിംഗ് പ്രക്രിയയുടെ അവസാനത്തിൽ, നമ്മൾ ഒരു പ്രശ്നം നേരിടാം. ബൈറ്റുകളിൽ ഒറിജിനൽ ഡാറ്റയുടെ വലുപ്പം മൂന്ന് ആണെങ്കിൽ, എല്ലാം ശരിയായി പ്രവർത്തിക്കുന്നു. അതല്ലെങ്കിൽ, നമുക്ക് ഒന്നോ രണ്ടോ 8-ബിറ്റ് ബൈറ്റുകളിലൂടെ അവസാനിക്കാനിടയുണ്ട്. ശരിയായ എൻകോഡിങ്ങിന് കൃത്യമായി മൂന്ന് ബൈറ്റുകൾ വേണം.
3-ബൈറ്റ് ഗ്രൂപ്പ് സൃഷ്ടിക്കുന്നതിന് '0' എന്ന മൂല്യമുള്ള മതിയായ ബൈറ്റുകളോടുകൂടിയാണ് പരിഹാരം. ഒരു അധിക ബൈറ്റ് ഡാറ്റ ഉണ്ടെങ്കിൽ, അത്തരം രണ്ട് മൂല്യങ്ങൾ കൂട്ടിച്ചേർക്കപ്പെടുന്നു, ഒന്നോ രണ്ടോ അധിക ബൈറ്റുകൾക്ക് കൂട്ടിച്ചേർക്കപ്പെടുന്നു.
തീർച്ചയായും, ഈ കൃത്രിമ ട്രൈനിംഗ് 0 'എൻകോഡിംഗ് പട്ടിക ഉപയോഗിച്ച് എൻകോഡ് ചെയ്യാൻ കഴിയില്ല. അവർ 65-ാം പ്രതീകത്തിൽ പ്രതിനിധീകരിക്കണം.
Base64 പാഡിങ് പ്രതീകം '='. സ്വാഭാവികമായും, എന്കോഡ് ചെയ്ത ഡാറ്റയുടെ അവസാനം മാത്രമേ ഇത് കാണപ്പെടുകയുള്ളൂ.
Base64 എൻകോഡിംഗ് പട്ടിക
മൂല്യം | ചാർ | മൂല്യം | ചാർ | മൂല്യം | ചാർ | മൂല്യം | ചാർ |
---|---|---|---|---|---|---|---|
0 | എ | 16 | ചോദ്യം | 32 | g | 48 | w |
1 | ബി | 17 | ആർ | 33 | മ | 49 | x |
2 | സി | 18 | എസ് | 34 | i | 50 | y |
3 | ഡി | 19 | ടി | 35 | j | 51 | z |
4 | ഇ | 20 | യു | 36 | കെ | 52 | 0 |
5 | എഫ് | 21 | V | 37 | മ | 53 | 1 |
6 | ജി | 22 | എ | 38 | m | 54 | 2 |
7 | H | 23 | X | 39 | n | 55 | 3 |
8 | ഞാൻ | 24 | വൈ | 40 | o | 56 | 4 |
9 | J | 25 | Z | 41 | പി | 57 | 5 |
10 | കെ | 26 | a | 42 | q | 58 | 6 |
11 | എൽ | 27 | b | 43 | r | 59 | 7 |
12 | എം | 28 | c | 44 | s | 60 | 8 |
13 | N | 29 | d | 45 | t | 61 | 9 |
14 | ഓ | 30 | e | 46 | നീ | 62 | + |
15 | പി | 31 | f | 47 | v | 63 | / |