𝗕𝗮𝘀𝗲𝟲𝟰 𝗘𝗻𝗰𝗼𝗱𝗶𝗻𝗴 𝗘𝘅𝗽𝗹𝗮𝗶𝗻𝗲𝗱

Base64 എല്ലായിടത്തും കാണപ്പെടുന്നു. CSS-ലും JWT ടോക്കണുകളിലും നിങ്ങൾ ഇത് കാണാറുണ്ട്. ഇത് എങ്ങനെ പ്രവർത്തിക്കുന്നു എന്ന് അറിയാതെ തന്നെ പല ഡെവലപ്പർമാരും ഇത് ഉപയോഗിക്കുന്നു.

Base64 ബൈനറി ഡാറ്റയെ ഒരു ടെക്സ്റ്റ് സ്ട്രിംഗാക്കി മാറ്റുന്നു. ഇതിനായി 64 ക്യാരക്ടറുകൾ ഉപയോഗിക്കുന്നു. ഇതിൽ A-Z, a-z, 0-9, പ്ലസ് (+), സ്ലാഷ് (/) എന്നിവ ഉൾപ്പെടുന്നു. പാഡിംഗിനായി (padding) ഇത് ഈക്വൽ ചിഹ്നം (=) ഉപയോഗിക്കുന്നു.

Base64 എന്നത് എൻക്രിപ്ഷൻ (encryption) അല്ല. ഇത് ടെക്സ്റ്റ് ചാനലുകളിലൂടെ ബൈനറി ഡാറ്റ സുരക്ഷിതമായി കൈമാറാൻ സഹായിക്കുന്നു.

ഇത് എങ്ങനെ പ്രവർത്തിക്കുന്നു:

  • ബൈനറി ഡാറ്റയെ 3-ബൈറ്റ് ഗ്രൂപ്പുകളായി തിരിക്കുക.
  • ഇവയെ നാല് 6-ബിറ്റ് ഭാഗങ്ങളായി (chunks) വിഭജിക്കുക.
  • ഓരോ ഭാഗത്തെയും ഒരു Base64 ക്യാരക്ടറുമായി മാപ്പ് ചെയ്യുക.

ഉദാഹരണം: 'Man' എന്ന വാക്ക് 'TWFu' ആയി മാറുന്നു.

നിങ്ങൾ Base64 ഉപയോഗിക്കുന്നത് ഇവയ്ക്കാണ്:

  • ഇമെയിൽ അറ്റാച്ച്‌മെന്റുകൾക്ക്.
  • HTML-ൽ ചിത്രങ്ങൾ ഉൾപ്പെടുത്താൻ (embedding).
  • JWT ടോക്കണുകൾക്ക്.
  • JSON വഴി ബൈനറി ഡാറ്റ അയക്കാൻ.
  • ബേസിക് HTTP ഓതന്റിക്കേഷന്.

Javascript ഇത് നേരിട്ട് (natively) പിന്തുണയ്ക്കുന്നു. എൻകോഡ് ചെയ്യാൻ btoa ഉപയോഗിക്കുക. ഡീകോഡ് ചെയ്യാൻ atob ഉപയോഗിക്കുക.

ഫയലുകൾക്കായി Node.js data.toString('base64') ഉപയോഗിക്കുന്നു.

ചില സിസ്റ്റങ്ങൾ Base64url ഉപയോഗിക്കുന്നു. ഈ പതിപ്പ് URL-കൾക്ക് സുരക്ഷിതമാണ്. ഇത് പ്ലസ് (+) ചിഹ്നത്തിന് പകരം മൈനസ് (-) ഉപയോഗിക്കുകയും സ്ലാഷിന് (/) പകരം അണ്ടർസ്കോർ (_) ഉപയോഗിക്കുകയും ചെയ്യുന്നു. ഇത് പാഡിംഗ് ഒഴിവാക്കുന്നു.

ഈ കാര്യങ്ങൾ ഓർമ്മിക്കുക:

  • Base64 എന്നത് എൻകോഡിംഗ് ആണ്. ഇത് സുരക്ഷ (security) നൽകുന്നില്ല.
  • ഇതിന്റെ ഔട്ട്‌പുട്ട് 33 ശതമാനം വലുതായിരിക്കും.
  • ടെക്സ്റ്റ് ചാനലുകളിലൂടെ ബൈനറി ഡാറ്റ അയക്കാൻ ഇത് ഉപയോഗിക്കുക.
  • URL-കൾക്കായി Base64url ഉപയോഗിക്കുക.

സ്രോതസ്സ്: https://dev.to/moksh/base64-encoding-explained-a-practical-guide-for-developers-49hh