𝗕𝗮𝘀𝗲𝟲𝟰 𝗘𝗻𝗰𝗼𝗱𝗶𝗻𝗴 விளக்கம்

Base64 எல்லா இடங்களிலும் உள்ளது. நீங்கள் இதை CSS மற்றும் JWT tokens-களில் காணலாம். பல டெவலப்பர்கள் இது எவ்வாறு செயல்படுகிறது என்பதை அறியாமலேயே இதைப் பயன்படுத்துகின்றனர்.

Base64 பைனரி தரவை (binary data) ஒரு உரை சரமாக (text string) மாற்றுகிறது. இது 64 எழுத்துக்களைப் பயன்படுத்துகிறது. இதில் A-Z, a-z, 0-9, பிளஸ் (+) மற்றும் ஸ்லாஷ் (/) ஆகியவை அடங்கும். இது பேடிங்கிற்கு (padding) சமக்குறியை (=) பயன்படுத்துகிறது.

Base64 என்பது encryption அல்ல. இது பைனரி தரவை உரை வழித்தடங்களுக்கு (text channels) பாதுகாப்பானதாக மாற்றுகிறது.

இது எவ்வாறு செயல்படுகிறது:

  • பைனரி தரவை 3-பைட் குழுக்களாகப் பிரிக்கவும்.
  • இவற்றை நான்கு 6-பிட் துண்டுகளாகப் பிரிக்கவும்.
  • ஒவ்வொரு துண்டையும் ஒரு Base64 எழுத்துடன் இணைக்கவும்.

உதாரணம்: Man என்ற சொல் TWFu என மாறும்.

நீங்கள் Base64-ஐ இதற்காகப் பயன்படுத்தலாம்:

  • மின்னஞ்சல் இணைப்புகள் (Email attachments).
  • HTML-இல் படங்களை இணைக்க (Embedding images).
  • JWT tokens.
  • JSON வழியாக பைனரி தரவை அனுப்ப.
  • அடிப்படை HTTP authentication.

Javascript இதை இயல்பாகவே (natively) ஆதரிக்கிறது. குறியாக்கத்திற்கு (encode) btoa-வைப் பயன்படுத்தவும். குறியாக்கத்தை நீக்க (decode) atob-வைப் பயன்படுத்தவும்.

Node.js கோப்புகளுக்கு data.toString('base64')-ஐப் பயன்படுத்துகிறது.

சில அமைப்புகள் Base64url-ஐப் பயன்படுத்துகின்றன. இந்த பதிப்பு URL-களுக்குப் பாதுகாப்பானது. இது பிளஸ் (+) குறியீட்டிற்குப் பதிலாக மைனஸ் (-) குறியீட்டையும், ஸ்லாஷிற்கு (/) பதிலாக அண்டர்ஸ்கோர் (_) குறியீட்டையும் மாற்றுகிறது. இது பேடிங்கை (padding) நீக்குகிறது.

இந்தத் தகவல்களை நினைவில் கொள்ளவும்:

  • Base64 என்பது encoding மட்டுமே. இது security அல்ல.
  • இதன் வெளியீடு (output) 33 சதவீதம் பெரியதாக இருக்கும்.
  • உரை வழித்தடங்கள் மூலம் பைனரி தரவை அனுப்ப இதைப் பயன்படுத்தவும்.
  • URL-களுக்கு Base64url-ஐப் பயன்படுத்தவும்.

ஆதாரம்: https://dev.to/moksh/base64-encoding-explained-a-practical-guide-for-developers-49hh