ভাষা বেছে নিন

টেক্সট থেকে Base64 এনকোডার

ব্রাউজারেই আপনার টেক্সটকে Base64-এ এনকোড করুন। এতে রয়েছে URL-সেফ অ্যালফাবেট এবং প্যাডিং নিয়ন্ত্রণের সুবিধা। সম্পূর্ণ নিরাপদ একটি টুল।

Mehmet Demiray (মেহমেত দেমিরায়) প্রকাশিত আপডেট হয়েছে
শেয়ার করুন
URL-এর জন্য - এবং _ ব্যবহার করুন এবং = প্যাডিং বাদ দিন
প্রতি ৭৬টি অক্ষর পর একটি লাইন ব্রেক সন্নিবেশ করুন

Base64 এনকোডিং কী?

Base64 এনকোডিং হলো এমন একটি বহুল ব্যবহৃত পদ্ধতি যার মাধ্যমে যেকোনো বাইনারি ডেটাকে নিরাপদ টেক্সট বা স্ট্রিং ফরম্যাটে রূপান্তর করা হয়। ইন্টারনেট এবং কম্পিউটিংয়ের প্রাথমিক যুগে অনেক সিস্টেম শুধুমাত্র আসকি (ASCII) টেক্সট সমর্থন করত। সেই সব সিস্টেমে ছবি, অডিও বা অন্যান্য বাইনারি ফাইল পাঠালে ডেটা নষ্ট হয়ে যাওয়ার ঝুঁকি থাকত। এই সীমাবদ্ধতা দূর করতে Base64 এর উদ্ভব ঘটে। মূলত ৬৪টি অক্ষরের একটি সুনির্দিষ্ট সেট ব্যবহার করে এই রূপান্তর প্রক্রিয়াটি সম্পন্ন হয়। এই সেটটিতে থাকে ইংরেজি বর্ণমালার ২৬টি বড় হাতের অক্ষর (A-Z), ২৬টি ছোট হাতের অক্ষর (a-z), ১০টি সংখ্যা (0-9) এবং দুটি বিশেষ প্রতীক (+ এবং /)। Base64 এনকোড টুলটি ব্যবহার করে ডেভেলপাররা খুব সহজেই তাদের কাঙ্ক্ষিত ডেটাকে এই ৬৪টি অক্ষরের মধ্যে সীমাবদ্ধ করে ফেলতে পারেন। যখন কোনো নেটওয়ার্ক প্রোটোকল শুধুমাত্র টেক্সট ডেটা আদান-প্রদানে সক্ষম হয়, তখন এই পদ্ধতিটি ডেটার অখণ্ডতা বজায় রাখে। আধুনিক ওয়েব ডেভেলপমেন্ট, এপিআই (API) ইন্টিগ্রেশন এবং ডেটা স্টোরেজের ক্ষেত্রে এটি একটি অপরিহার্য প্রক্রিয়া।

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

Base64 এনকোডিংয়ের পেছনের গাণিতিক প্রক্রিয়াটি বেশ চমৎকার। এই পদ্ধতিতে মূল ডেটার প্রতি ৩টি বাইটকে (যার মোট আকার ২৪ বিট) ৪টি নতুন অংশে ভাগ করা হয়। প্রতিটি নতুন অংশ ৬ বিট করে জায়গা নেয়। যেহেতু ২ এর পাওয়ার ৬ (২^৬) সমান ৬৪, তাই এই ৬ বিটের প্রতিটি অংশকে ৬৪টি ক্যারেক্টারের যেকোনো একটি দিয়ে প্রকাশ করা সম্ভব। এর ফলে আউটপুটের আকার মূল ডেটার তুলনায় গাণিতিক সূত্র 43\frac{4}{3} অনুপাতে বৃদ্ধি পায়। সহজ কথায়, এনকোড করার পর ডেটার আকার প্রায় ৩৩.৩৩% বেড়ে যায়। প্রক্রিয়াটি চলাকালীন যদি মূল ডেটার বাইট সংখ্যা ৩ এর গুণিতক না হয়, তবে শূন্যস্থান পূরণের জন্য আউটপুটের শেষে প্যাডিং হিসেবে সমান চিহ্ন (=) যুক্ত করা হয়। উদাহরণস্বরূপ, যদি শেষে ১টি বাইট অবশিষ্ট থাকে, তবে দুটি সমান চিহ্ন (==) যুক্ত হয়। আর যদি ২টি বাইট অবশিষ্ট থাকে, তবে একটি সমান চিহ্ন (=) বসে।

স্ট্যান্ডার্ড বনাম ইউআরএল-সেইফ অ্যালফাবেট

স্ট্যান্ডার্ড Base64 পদ্ধতিতে ৬২ এবং ৬৩ নম্বর ইনডেক্স হিসেবে যথাক্রমে + এবং / চিহ্ন ব্যবহার করা হয়। কিন্তু ওয়েব ঠিকানা (URL) বা ফাইলের নামের ক্ষেত্রে এই চিহ্নগুলোর ভিন্ন অর্থ থাকে। যেমন, ইউআরএলে + চিহ্নটিকে অনেক সময় স্পেস বা ফাঁকা স্থান হিসেবে ধরা হয় এবং / চিহ্নটি ডিরেক্টরি বা ফোল্ডারের পথ নির্দেশ করে। তাই ইউআরএলের ভেতরে সরাসরি স্ট্যান্ডার্ড Base64 স্ট্রিং ব্যবহার করলে সার্ভার সেটি ভুলভাবে পড়তে পারে। এই সমস্যা সমাধানে ইউআরএল-সেইফ (URL-safe) পদ্ধতি তৈরি করা হয়েছে। এই পদ্ধতিতে + এর পরিবর্তে হাইফেন (-) এবং / এর পরিবর্তে আন্ডারস্কোর (_) ব্যবহৃত হয়। আমাদের Base64 এনকোড টুলে এই ইউআরএল-সেইফ অপশনটি সহজেই নির্বাচন করা যায়। এর ফলে ডেটা নিরাপদে ওয়েব ঠিকানার মাধ্যমে পাঠানো সম্ভব হয়। ডেটা পাঠানোর আগে বাড়তি সতর্কতার জন্য ইউআরএল এনকোড করার পদ্ধতিটিও ব্যবহার করা যেতে পারে।

Base64 এর সাধারণ ব্যবহার

ওয়েব অ্যাপ্লিকেশন এবং সিস্টেম ইন্টিগ্রেশনের ক্ষেত্রে Base64 এর বহুমুখী ব্যবহার রয়েছে। সবচেয়ে সাধারণ ব্যবহারগুলোর মধ্যে একটি হলো ডেটা ইউআরআই (Data URI)। এর মাধ্যমে এইচটিএমএল (HTML) বা সিএসএস (CSS) ফাইলের ভেতরে সরাসরি ছোট আকারের ছবি বা আইকন যুক্ত করা যায়। ফলে ব্রাউজারকে ছবি লোড করার জন্য সার্ভারে অতিরিক্ত রিকোয়েস্ট পাঠাতে হয় না। এছাড়া এইচটিটিপি বেসিক অথেনটিকেশন (HTTP Basic Authentication) প্রক্রিয়ায় ব্যবহারকারীর নাম ও পাসওয়ার্ড সার্ভারে পাঠানোর আগে Base64 এনকোড করে নেওয়া হয়। ইমেইলের মাধ্যমে ছবি বা পিডিএফ পাঠানোর সময় মাল্টিপার্ট (MIME) মেসেজেও এই পদ্ধতি ব্যবহৃত হয়। আধুনিক ওয়েব অ্যাপ্লিকেশনে জেসন (JSON) পেলোড এবং জেডব্লিউটি (JWT) টোকেন আদান-প্রদানের ক্ষেত্রে এটি অপরিহার্য। বড় আকারের মিডিয়া ফাইলের ক্ষেত্রে সরাসরি ফাইলকে Base64 এ রূপান্তর করে ডেটাবেস বা এপিআইয়ের মাধ্যমে ট্রান্সফার করা ডেভেলপারদের জন্য অনেক সুবিধাজনক।

ইউনিকোড এবং ডেটা সুরক্ষা

অনেকেই Base64 কে একটি এনক্রিপশন বা ডেটা সুরক্ষার মাধ্যম হিসেবে ভেবে ভুল করেন। এটি মোটেও কোনো এনক্রিপশন অ্যালগরিদম নয়, বরং ডেটা উপস্থাপনের একটি ভিন্ন রূপ মাত্র। এখানে কোনো পাসওয়ার্ড বা সিক্রেট কি (Secret Key) ব্যবহার করা হয় না। তাই যে কেউ খুব সহজেই Base64 ডিকোড করে মূল তথ্য পড়ে ফেলতে পারে। সংবেদনশীল তথ্য আদান-প্রদানের ক্ষেত্রে এর ওপর নির্ভর করা উচিত নয়। বাংলা ভাষার মতো ইউনিকোড (Unicode) ক্যারেক্টার এনকোড করার ক্ষেত্রেও কিছু নির্দিষ্ট নিয়ম মানতে হয়। যেহেতু Base64 সরাসরি বাইনারি ডেটা নিয়ে কাজ করে, তাই আমাদের Base64 এনকোড টুলটি প্রথমে যেকোনো টেক্সটকে UTF-8 ফরম্যাটে রূপান্তর করে নেয়। এরপর সেই বাইটগুলোকে এনকোড করা হয়। এই টুলের সম্পূর্ণ প্রক্রিয়াটি আপনার ব্রাউজারের ভেতরে লোকালি সম্পন্ন হয়। কোনো ডেটা বাইরের সার্ভারে আপলোড হয় না, যা আপনার তথ্যের সর্বোচ্চ গোপনীয়তা নিশ্চিত করে।

সচরাচর জিজ্ঞাসিত প্রশ্ন

Base64 নিয়ে কাজ করার সময় ডেভেলপার এবং শিক্ষার্থীদের মনে কিছু সাধারণ প্রশ্ন জাগে। একটি প্রধান প্রশ্ন হলো, আউটপুটের শেষে থাকা সমান চিহ্নগুলো (=) বাদ দেওয়া যাবে কি না। সাধারণত প্যাডিং হিসেবে এগুলো ব্যবহৃত হলেও, কিছু নির্দিষ্ট এপিআই বা জেডব্লিউটি (JWT) টোকেন তৈরির সময় এই প্যাডিং সম্পূর্ণ বাদ দেওয়ার প্রয়োজন হয়। টুলের অপশন থেকে খুব সহজেই ওমিট প্যাডিং (Omit Padding) নির্বাচন করে এটি নিয়ন্ত্রণ করা সম্ভব। আরেকটি প্রশ্ন হলো, এই পদ্ধতিতে বড় আকারের ফাইল এনকোড করা কতটা যৌক্তিক। যেহেতু এনকোডিংয়ের ফলে ডেটার আকার প্রায় ৩৩.৩৩% বেড়ে যায়, তাই খুব বড় ফাইলের ক্ষেত্রে এটি মেমরি এবং ব্যান্ডউইথের ওপর চাপ ফেলতে পারে। তবে ছোট ফাইল বা টেক্সটের ক্ষেত্রে এটি অত্যন্ত কার্যকর। সরাসরি ফাইল নিয়ে কাজ করতে চাইলে Base64 থেকে ফাইলে রূপান্তর করার টুলগুলো ব্যবহার করা যেতে পারে।

যেগুলোর উত্তর আমরা সবচেয়ে বেশি দিই।

Base64 এনকোডিং কি কোনো ধরনের এনক্রিপশন?

না, Base64 কোনো এনক্রিপশন পদ্ধতি নয়। এটি শুধুমাত্র ডেটা ফরম্যাট পরিবর্তনের একটি উপায়, যাতে বাইনারি ডেটা টেক্সট হিসেবে নিরাপদে ট্রান্সফার করা যায়। এটি কোনো পাসওয়ার্ড বা সিক্রেট কি ব্যবহার করে না, তাই যে কেউ সহজেই Base64 ডিকোড করে মূল ডেটা ফিরে পেতে পারে। সংবেদনশীল ডেটা সুরক্ষিত রাখতে এনক্রিপশন ব্যবহার করা উচিত।

আমি কি বাংলা বা অন্যান্য ইউনিকোড টেক্সট নিরাপদে এনকোড করতে পারব?

হ্যাঁ, Base64 এনকোড টুলটি যেকোনো ইউনিকোড বা বাংলা টেক্সট সমর্থন করে। এনকোড করার আগে টুলটি স্বয়ংক্রিয়ভাবে ইনপুট টেক্সটকে UTF-8 ফরম্যাটে রূপান্তর করে নেয়। এর ফলে কোনো ক্যারেক্টার নষ্ট হয় না এবং আপনি সঠিক আউটপুট পান।

URL-safe ভ্যারিয়েন্ট কখন ব্যবহার করা উচিত?

সাধারণ Base64 আউটপুটে প্লাস (+) এবং স্ল্যাশ (/) চিহ্ন থাকতে পারে, যা ওয়েবের ইউআরএল বা ফাইলের নামের ক্ষেত্রে সমস্যা তৈরি করে। আপনি যদি এনকোড করা ডেটা কোনো লিংকের প্যারামিটার হিসেবে পাঠাতে চান, তবে URL-safe অপশনটি বেছে নেওয়া ভালো। এটি উক্ত চিহ্নগুলোকে যথাক্রমে মাইনাস (-) এবং আন্ডারস্কোর (_) দিয়ে প্রতিস্থাপন করে। প্রয়োজনে আপনি ইউআরএল এনকোড টুলটিও ব্যবহার করতে পারেন।

আমার আউটপুটের শেষে একটি বা দুটি সমান (=) চিহ্ন কেন থাকে?

এই সমান চিহ্নগুলোকে প্যাডিং বলা হয়। Base64 এনকোডিং পদ্ধতিতে প্রতি ৩ বাইট ডেটাকে ৪টি ক্যারেক্টারে রূপান্তর করা হয়। যদি আপনার ইনপুট ডেটার বাইট সংখ্যা ৩ দিয়ে বিভাজ্য না হয়, তবে হিসাব মেলানোর জন্য শেষে এক বা একাধিক সমান চিহ্ন যোগ করা হয়। আপনি চাইলে টুলের অপশন থেকে এই প্যাডিং বাদ দিতে পারেন।

এই টুলে ইনপুট করা ডেটা কি কোনো সার্ভারে সেভ হয়?

না, আপনার ইনপুট করা কোনো ডেটা আমাদের সার্ভারে পাঠানো হয় না। Base64 এনকোড টুলটি সম্পূর্ণ ক্লায়েন্ট-সাইডে কাজ করে, অর্থাৎ পুরো এনকোডিং প্রক্রিয়াটি আপনার ব্রাউজারের ভেতরেই সম্পন্ন হয়। তাই আপনার গোপনীয় ডেটা সম্পূর্ণ সুরক্ষিত থাকে।

Base64 এনকোড করার পর ডেটার সাইজ কি বেড়ে যায়?

হ্যাঁ, এনকোডিংয়ের পর ডেটার আকার সাধারণত ৩৩.৩% এর মতো বৃদ্ধি পায়। কারণ এই পদ্ধতিতে মূল ডেটার প্রতি ৩ বাইটকে ৪ বাইট ক্যারেক্টারে রূপান্তর করা হয়। বড় সাইজের ফাইলের ক্ষেত্রে এই বৃদ্ধি কিছুটা লক্ষণীয় হতে পারে। ফাইল নিয়ে কাজ করতে চাইলে ফাইল থেকে Base64 টুলটি ব্যবহার করতে পারেন।