কিভাবে Base64 এনকোডিং কাজ করে

যদি ইন্টারনেটটি তথ্য হাইওয়ে হয়, তাহলে ইমেলের পথটি একটি সংকীর্ণ রাউন। শুধুমাত্র খুব ছোট গাড়িটি পাস করতে পারে

ইমেলের পরিবহন ব্যবস্থা শুধুমাত্র সাধারণ ASCII পাঠের জন্য ডিজাইন করা হয়েছে। অন্যান্য ভাষা বা অবাধ ফাইলগুলিতে পাঠ্য পাঠানোর চেষ্টা করা হচ্ছে কোষের মধ্য দিয়ে একটি ট্রাক পাওয়ার মত।

কিভাবে বড় ট্রাক রাইন মাধ্যমে যেতে হয়?

তারপর কিভাবে আপনি একটি ছোট কাঁটা মাধ্যমে একটি বড় ট্রাক পাঠাতে? আপনি এটি এক প্রান্তে টুকরো টুকরা নিতে হবে, খাদ দ্বারা টুকরা পরিবহন, এবং অন্য প্রান্তে টুকরা থেকে ট্রাক পুনর্নির্মাণ।

আপনি ইমেলের মাধ্যমে একটি ফাইল সংযুক্তি পাঠান যখন একই হয়। বাইনারি ডেটা এনকোডিং হিসাবে পরিচিত একটি প্রক্রিয়ায় ASCII টেক্সট রূপান্তরিত হয়, যা সমস্যা ছাড়াই ইমেলের মধ্যে পরিবহন করা যায়। প্রাপকের শেষের দিকে, ডেটা ডিকোড করা হয় এবং মূল ফাইলটির পুনর্নির্মাণ করা হয়।

সরল ASCII টেক্সট হিসাবে মানানসই তথ্য এনকোডিং এক পদ্ধতি Base64 হয় এটি সাধারণ পাঠ্যের ব্যতীত অন্য তথ্য পাঠানোর জন্য MIME স্ট্যান্ডার্ড দ্বারা নিযুক্ত করা কৌশলগুলির মধ্যে একটি।

রেসকিউ থেকে Base64

বেস 64 এনকোডিংটি তিনটি বাইট ধারণ করে, প্রতিটিটি আটটি বিট গঠিত এবং তাদের ASCII মান অনুযায়ী চারটি মুদ্রণযোগ্য অক্ষর হিসাবে প্রতিনিধিত্ব করে। এটি মূলত দুইটি ধাপে

প্রথম ধাপ হলো তিন বাইটকে ছয়টি বিটের চারটি সংখ্যা রূপান্তর করা। ASCII মান প্রতিটি অক্ষর সাত বিট গঠিত। বেস 64 শুধুমাত্র 6 বিট ব্যবহার করে (2 ^ 6 = 64 অক্ষরের সাথে সংশ্লিষ্ট) নিশ্চিত করতে এনকোডেড ডেটা মুদ্রণযোগ্য এবং মানবিকভাবে পাঠযোগ্য। ASCII- এ উপলব্ধ কোনো বিশেষ অক্ষর ব্যবহার করা হয় না।

64 অক্ষর (অতএব নাম base64) 10 সংখ্যা, 26 ছোট হাতের অক্ষর, 26 বড় হাতের অক্ষর এবং '+' এবং '/'।

উদাহরণস্বরূপ, যদি তিনটি বাইট হয় 155, 162 এবং ২33, সংশ্লিষ্ট (এবং ভয়ঙ্কর) বিট প্রবাহ হল 100110111010001011101001, যা পরিবর্তে 6 বিট মানের 38, 58, 11 এবং 41 এর সাথে সম্পর্কিত।

এই সংখ্যাগুলি Base64 এনকোডিং টেবিল ব্যবহার করে দ্বিতীয় ধাপে ASCII অক্ষরে রূপান্তরিত হয়। আমাদের উদাহরণের 6 বিট মান ASCII ক্রম "m6lp" অনুবাদ করুন

এই দুই ধাপ প্রসেসটি বাইটের পুরো ক্রম প্রয়োগ করা হয় যা এনকোড করা হয়। এনকোডেড ডেটা যথাযথভাবে মুদ্রিত হতে পারে তা নিশ্চিত করতে এবং কোনও মেইল ​​সার্ভারের লাইনের দৈর্ঘ্য সীমা ছাড়িয়ে না, 76 অক্ষরের নীচের লাইনের দৈর্ঘ্য রাখার জন্য নতুন অক্ষরগুলি সন্নিবেশ করা হয়। নতুন অক্ষর অন্যান্য সমস্ত তথ্য মত এনকোড করা হয়।

শেষ সমাধান

এনকোডিং প্রক্রিয়ার শেষে, আমরা একটি সমস্যা মধ্যে চালানো হতে পারে। বাইটের মূল ডেটায়ের আকার যদি তিনটির একাধিক হয়, তাহলে সবকিছুই জরিমানা করে। যদি না হয়, আমরা এক বা দুটি 8-বিট বাইটের সাথে শেষ হতে পারি। সঠিক এনকোডিংয়ের জন্য, আমরা অবশ্যই তিনটি বাইট প্রয়োজন, তবে

সমাধান একটি 3-বাইট গ্রুপ তৈরি করতে '0' এর মান সঙ্গে যথেষ্ট বাইট যোগ করা হয়। যদি আমরা ডেটা এক অতিরিক্ত বাইট আছে দুটি যেমন মান সংযুক্ত করা হয়, এক দুটি অতিরিক্ত বাইট জন্য সংযুক্ত করা হয়।

অবশ্যই, এই কৃত্রিম অনুক্রম '0 এর নীচে এনকোডিং টেবিলের মাধ্যমে এনকোড করা যাবে না। তারা একটি 65th অক্ষর দ্বারা প্রতিনিধিত্ব করা আবশ্যক।

Base64 প্যাডিং অক্ষর '='। স্বাভাবিকভাবেই, এটি শুধুমাত্র এনকোডেড ডেটার শেষে প্রদর্শিত হতে পারে।

বেস 64 এনকোডিং টেবিল

মান গৃহস্থালির কাজ মান গৃহস্থালির কাজ মান গৃহস্থালির কাজ মান গৃহস্থালির কাজ
0 একজন 16 প্রশ্নঃ 32 48 W
1 বি 17 আর 33 49 এক্স
2 সি 18 এস 34 আমি 50 Y
3 ডি 19 টি 35 51 z- র
4 20 ইউ 36 52 0
5 এফ 21 ভী 37 53 1
6 জি 22 ওয়াট 38 মি 54 2
7 এইচ 23 এক্স 39 এন 55 3
8 আমি 24 ওয়াই 40 56 4
9 জে 25 জেড 41 পি 57 5
10 কে 26 একটি 42 কুই 58 6
11 এল 27 43 R 59 7
12 এম 28 44 গুলি 60 8
13 এন 29 45 টি 61 9
14 হে 30 46 তোমার দর্শন লগ করা 62 + +
15 পি 31 47 বনাম 63 /