mikaio.dev

Base64 Encoder / Decoder

Enter text or Base64 and click Encode or Decode.

Base64 এনকোড ও ডিকোড করুন মুহূর্তেই

Base64 হলো কম্পিউটিং জগতের একটা মৌলিক এনকোডিং পদ্ধতি, যা বাইনারি ডেটাকে নিরাপদে টেক্সট আকারে প্রকাশ করার কাজে ব্যবহৃত হয়। API নিয়ে কাজ করা, নেটওয়ার্ক রিকোয়েস্ট ডিবাগ করা, JWT টোকেন বোঝা, বা HTML-এ ছবি এমবেড করা — এসব ক্ষেত্রে Base64 বারবার সামনে চলে আসে। এই টুলটি এক ক্লিকেই যেকোনো টেক্সটকে Base64-এ রূপান্তর করে দেয়, আর যেকোনো Base64 স্ট্রিংকে আবার আসল টেক্সটে ফিরিয়ে আনে।

Base64 আসলে কী

Base64 হলো একটা বাইনারি-থেকে-টেক্সট এনকোডিং পদ্ধতি, যা মাত্র ৬৪টা মুদ্রণযোগ্য ASCII অক্ষর দিয়ে বাইনারি ডেটা প্রকাশ করে: ২৬টা বড়হাতের অক্ষর (A-Z), ২৬টা ছোটহাতের অক্ষর (a-z), ১০টা সংখ্যা (0-9), আর সেইসাথে + এবং / চিহ্ন দুটো। ৬৫তম একটা অক্ষর, =, ব্যবহার করা হয় প্যাডিং হিসেবে।

"Base64" নামটা এসেছে এই কারণেই যে এনকোডিংটা ৬৪টা আলাদা অক্ষর ব্যবহার করে। প্রতিটা Base64 অক্ষর প্রকাশ করে ডেটার ৬ বিট (2^6 = 64)। যেহেতু একটা বাইট হলো ৮ বিট, তাই ইনপুটের প্রতি ৩ বাইট ঠিক ৪টা Base64 অক্ষরে রূপান্তরিত হয়।

Base64 কেন প্রয়োজন হলো

অনেক পুরনো টেক্সট-ভিত্তিক প্রোটোকল আর সিস্টেম শুধু ASCII টেক্সট সামলাতে পারে, যথেচ্ছ বাইনারি বাইট নয়। ইমেইল (SMTP), URL, HTTP হেডার, XML — এসব সবই টেক্সট নিরাপদে সামলায়। কিন্তু বাইনারি ডেটা — যেমন ছবি, অডিও ফাইল, ক্রিপ্টোগ্রাফিক কী বা কমপ্রেস করা ডেটা — এনকোডিং ছাড়া এই চ্যানেলগুলো দিয়ে নিরাপদে পাঠানো যায় না।

Base64 এই সমস্যা সমাধান করে যেকোনো বাইনারি ডেটাকে ASCII অক্ষরের এমন একটা উপসেটে রূপান্তর করে, যা সব টেক্সট সিস্টেমই নিরাপদে সংরক্ষণ ও প্রেরণ করতে পারে।

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

ডেটা URI: আলাদা ফাইল রিকোয়েস্ট ছাড়াই ছবি সরাসরি HTML বা CSS-এ এমবেড করা যায়। একটা ডেটা URI শুরু হয় data:image/png;base64, দিয়ে, তারপর আসে Base64-এনকোড করা ছবির ডেটা।

ইমেইল অ্যাটাচমেন্ট (MIME): ইমেইল অ্যাটাচমেন্ট MIME প্রোটোকলে পাঠানোর জন্য Base64-এনকোড করা হয়।

JSON API: বাইনারি ডেটা (ছবি, ফাইল, ক্রিপ্টোগ্রাফিক সিগনেচার) JSON-এ পাঠাতে হলে অবশ্যই Base64-এনকোড করতে হয়, কারণ JSON শুধু টেক্সট সামলাতে পারে।

HTTP বেসিক অথেন্টিকেশন: Authorization হেডার ক্রেডেনশিয়াল পাঠায় Base64(username:password) আকারে। এটা একা যথেষ্ট নিরাপদ নয় — HTTPS তখনও প্রয়োজন।

JWT টোকেন: JSON Web Token তিনটা Base64URL-এনকোড করা অংশ নিয়ে গঠিত (হেডার, পেলোড, সিগনেচার), যেগুলো ডট দিয়ে আলাদা করা।

ডেটাবেজ স্টোরেজ: টেক্সট-ভিত্তিক স্টোরেজ ফরম্যাটে (যেমন কিছু NoSQL ডেটাবেজ বা কনফিগ ফাইল) সংরক্ষিত বাইনারি ব্লব প্রায়ই Base64-এনকোড করা থাকে।

Base64 বনাম Base64URL

স্ট্যান্ডার্ড Base64 ব্যবহার করে + আর / চিহ্ন, যেগুলো URL-এর মধ্যে বিশেষ অর্থ বহন করে। Base64URL এই দুটোকে - আর _ দিয়ে প্রতিস্থাপন করে, যাতে এনকোড করা ডেটা URL-নিরাপদ হয়। JWT টোকেন Base64URL ব্যবহার করে। = প্যাডিং অক্ষরটাও প্রায়ই Base64URL-এ বাদ দেওয়া হয়।

নিরাপত্তা নিয়ে একটা কথা

Base64 কোনো এনক্রিপশন নয়। যে কেউ Base64-এনকোড করা ডেটা পেলে যেকোনো Base64 ডিকোডার দিয়ে সেটা সাথে সাথে ডিকোড করে ফেলতে পারবে। সংবেদনশীল তথ্য "লুকানোর" জন্য Base64 ব্যবহার করবেন না — সেজন্য প্রকৃত এনক্রিপশন ব্যবহার করুন।

টুলটা কীভাবে ব্যবহার করবেন

এনকোড ফিল্ডে টেক্সট পেস্ট করলে সাথে সাথে তার Base64 রূপ পাবেন, অথবা ডিকোড ফিল্ডে একটা Base64 স্ট্রিং পেস্ট করলে আসল টেক্সট ফিরে পাবেন — দুটো দিকই আপনি টাইপ করার সাথে সাথে লাইভ আপডেট হয়। কোনো JWT-র পেলোড দ্রুত পরীক্ষা করতে, একটা ডেটা URI আসলে কী ধারণ করছে তা যাচাই করতে, বা URL প্যারামিটার বা JSON ফিল্ডের মতো টেক্সট-শুধু চ্যানেল দিয়ে নিরাপদে পাঠানোর জন্য কোনো মান তৈরি করতে এটা দারুণ কাজে দেয়।

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

Base64 বাইনারি ডেটাকে টেক্সটে রূপান্তর করে একটা সহজ প্রক্রিয়ার মধ্য দিয়ে। প্রথমে বাইনারি ডেটাকে ৩-বাইট, অর্থাৎ ২৪-বিটের খণ্ডে ভাগ করা হয়। প্রতিটা ২৪-বিট খণ্ডকে চারটা ৬-বিট গ্রুপে ভাগ করা হয়। প্রতিটা ৬-বিট মান, যা ০ থেকে ৬৩ পর্যন্ত হতে পারে, Base64 বর্ণমালায় খোঁজা হয়, যেখানে A=0, B=1, চলতে থাকে Z=25 পর্যন্ত, a=26 থেকে z=51, 0=52 থেকে 9=61, +=62 আর /=63। ইনপুট যদি ৩ বাইটের ঠিক গুণিতক না হয়, তাহলে শেষ গ্রুপ সম্পূর্ণ করতে = প্যাডিং অক্ষর যোগ করা হয়। যেহেতু ৩ বাইট হয়ে যায় ৪টা Base64 অক্ষর, তাই এনকোডিং ডেটার আকার প্রায় ৩৩ শতাংশ বাড়িয়ে দেয় — ১ মেগাবাইটের একটা বাইনারি ফাইল Base64-এ এনকোড করলে হয়ে যায় প্রায় ১.৩৭ মেগাবাইটের টেক্সট।

ডেটা URI ও ইনলাইন ছবি

ওয়েবে Base64-এর সবচেয়ে দৃশ্যমান ব্যবহারগুলোর একটা হলো ডেটা URI, যা একটা ফাইলকে আলাদা ফাইল হিসেবে রেফারেন্স না করে সরাসরি HTML বা CSS-এ এমবেড করার সুযোগ দেয়, data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA... এমন একটা রূপে। এতে করে সেই রিসোর্সের জন্য আলাদা একটা HTTP রিকোয়েস্ট আর লাগে না, যা ছোট আইকন আর ছবির জন্য পারফরম্যান্স বাড়াতে পারে। তবে Base64 ডেটাকে যে পেজে এমবেড করা হয়েছে তা থেকে আলাদাভাবে ক্যাশে করা যায় না, আর প্রায় ৩৩ শতাংশ আকার বেড়ে যাওয়ার কারণে বড় ছবির জন্য এই পদ্ধতি অদক্ষ, যে কারণে এটা সাধারণত ছোট অ্যাসেটের জন্যই সংরক্ষিত থাকে।

JWT টোকেন ও Base64URL

JSON Web Token একটা বিশেষ রূপ ব্যবহার করে, যার নাম Base64URL, যা + আর / চিহ্ন — যেগুলো URL-এর ভেতরে বিশেষ অর্থ বহন করে — যথাক্রমে - আর _ দিয়ে প্রতিস্থাপন করে, আর সাধারণত = প্যাডিং সম্পূর্ণভাবে বাদ দেয়। একটা JWT দেখতে তিনটা ডট দিয়ে আলাদা করা অংশের মতো — হেডার, পেলোড আর সিগনেচার — প্রতিটাই একটা Base64URL-এনকোড করা ডেটার খণ্ড, যে কারণে একটা JWT আর কোনো অতিরিক্ত এস্কেপিং ছাড়াই সরাসরি একটা URL বা HTTP হেডারে নিরাপদে বসিয়ে দেওয়া যায়।

ইমেইলে Base64

ইমেইলের জন্য MIME স্ট্যান্ডার্ড ঠিক করে দেয় বার্তার মূল অংশ আর অ্যাটাচমেন্ট কীভাবে প্রেরণের জন্য এনকোড করা উচিত। টেক্সট-ভিত্তিক কনটেন্ট সাধারণত quoted-printable নামে একটা ভিন্ন পদ্ধতি ব্যবহার করে, আর বাইনারি অ্যাটাচমেন্ট ব্যবহার করে Base64। আপনি যখন কোনো ইমেইলে একটা PDF অ্যাটাচ করেন, আপনার ইমেইল ক্লায়েন্ট সেটা পাঠানোর আগে Base64-এ এনকোড করে নেয়, আর প্রাপকের ক্লায়েন্ট সেটা আবার আসল ফাইলে ডিকোড করে ফেলে — দুই পক্ষের কাছেই পুরো ব্যাপারটা অদৃশ্যভাবে ঘটে যায়।

ব্যক্তিগত ও তাৎক্ষণিক

এনকোডিং আর ডিকোডিং সম্পূর্ণভাবে আপনার ব্রাউজারে চলে, জাভাস্ক্রিপ্টের বিল্ট-ইন btoa আর atob ফাংশন ব্যবহার করে, তাই ফলাফল আসে তাৎক্ষণিকভাবে, আর আপনি যা এনকোড বা ডিকোড করেন তার কিছুই কখনো কোথাও পাঠানো হয় না।

Base64 FAQ

What is Base64?
Base64 is an encoding scheme that converts binary data into ASCII text using 64 characters (A-Z, a-z, 0-9, +, /). It is used to safely transmit binary data through text-only channels like email or JSON.
Is Base64 encryption?
No. Base64 is an encoding, not encryption. Anyone can decode a Base64 string instantly. Do not use it to hide sensitive data.
What is Base64 used for?
Embedding images in HTML/CSS (data URIs), encoding email attachments (MIME), storing binary data in JSON, transmitting credentials in HTTP Basic Authentication, and encoding binary data in URLs.