Base64 এনকোডার ও ডিকোডার

টেক্সট ও ফাইলকে Base64-এ রূপান্তর করুন এবং উল্টোটাও। Unicode সঠিকভাবে সামলায়, URL-নিরাপদ base64url সমর্থন করে, আর ভুল ইনপুট কেন ব্যর্থ হলো তা ঠিকঠাক জানায়।

ব্রাউজারেই চলেসাইন-আপ লাগে নাকিছুই আপলোড হয় না

Base64 আউটপুট

Base64 এনকোড / ডিকোড কীভাবে ব্যবহার করবেন

  1. এনকোড বা ডিকোড বেছে নিন।
  2. আপনার ইনপুট লিখুন বা পেস্ট করুন। টাইপ করার সাথে সাথে ফলাফল আপডেট হয়।
  3. URL, JWT ও ফাইলনামের জন্য URL-নিরাপদ টিক দিন, এতে - ও _ ব্যবহার হবে; চাইলে = প্যাডিং বাদ দিন।
  4. ছবি বা ফন্ট এমবেড করতে ফাইল এনকোড করুন ক্লিক করুন এবং data URI হিসেবে আউটপুট টিক দেওয়া রাখুন।
  5. ফলাফল কপি করুন, অথবা অদলবদল দিয়ে উল্টো দিকে আবার ইনপুট দিন।

Base64 কীভাবে কাজ করে

Base64 বাইনারি ডেটাকে ৬৪টি প্রিন্টযোগ্য ASCII অক্ষর দিয়ে প্রকাশ করে: A-Z, a-z, 0-9, + ও /। ইনপুটের প্রতি ৩ বাইট ৪টি অক্ষরে পরিণত হয়, তাই এনকোড করা ডেটা প্রায় ৩৩% বড় হয়। ইনপুটের দৈর্ঘ্য ৩-এর গুণিতক না হলে আউটপুটের শেষে এক বা দুটি = চিহ্ন প্যাডিং হিসেবে বসে। Base64 একটি এনকোডিং, এনক্রিপশন নয়: যে কেউ এটি ডিকোড করতে পারে।

স্ট্যান্ডার্ড Base64 বনাম base64url

URL ও ফাইল পাথে + ও / অক্ষরের বিশেষ অর্থ আছে। RFC 4648 §5-এর URL-নিরাপদ বর্ণমালা এগুলোর বদলে - ও _ ব্যবহার করে এবং সাধারণত প্যাডিং বাদ দেয়। JWT, অনেক OAuth প্যারামিটার ও কিছু ক্লাউড API base64url ব্যবহার করে। এখানকার ডিকোডার দুটি বর্ণমালাই স্বয়ংক্রিয়ভাবে গ্রহণ করে।

Unicode ও btoa()-এর সমস্যা

ব্রাউজারে btoa("café") কাজ করে, কিন্তু btoa("日本") ত্রুটি দেয়, কারণ btoa শুধু Latin-1 গ্রহণ করে। সঠিক পদ্ধতি হলো আগে টেক্সটকে UTF-8 বাইটে এনকোড করা, যা এই টুল করে। JavaScript-এ: btoa(String.fromCharCode(...new TextEncoder().encode(text))), অথবা Node.js-এ Buffer.from(text).toString('base64')।

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

  • CSS বা HTML-এ ছোট ছবি ও ফন্টের জন্য data URI
  • HTTP Basic অথেন্টিকেশন হেডার (user:password এনকোড করা)
  • JSON payload ও ইমেইলে (MIME) বাইনারি অ্যাটাচমেন্ট
  • Kubernetes Secrets, যা মানগুলো Base64 হিসেবে সংরক্ষণ করে

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

Base64 কি এনক্রিপশন?
না। Base64 একটি কী-বিহীন, উল্টানো যায় এমন এনকোডিং। যে কেউ এটি ডিকোড করতে পারে, তাই পাসওয়ার্ড বা সিক্রেট লুকাতে কখনো এটি ব্যবহার করবেন না।
আমার Base64 ডিকোড হচ্ছে না কেন?
সাধারণ কারণগুলো হলো বর্ণমালার বাইরের অক্ষর (প্রায়ই কপি করার সময় আসা একটি বাড়তি কোট বা লাইন ব্রেক), কেটে যাওয়া স্ট্রিং, অথবা Base64 নয় এমন টেক্সট মিশে যাওয়া। ত্রুটির বার্তায় প্রথম সমস্যার অবস্থান দেখানো হয়।
ডিকোড করা আউটপুট অর্থহীন দেখাচ্ছে। কেন?
ডেটা সম্ভবত টেক্সট নয়, বাইনারি, যেমন একটি ছবি, কমপ্রেস করা ফাইল বা এনক্রিপ্টেড বাইট। টুলটি এটি শনাক্ত করে, hex dump দেখায় এবং আসল বাইটগুলো ডাউনলোড করতে দেয়।
= প্যাডিং কি লাগবেই?
এটিসহ অনেক ডিকোডার প্যাডিং ছাড়াই কাজ করে, কারণ দৈর্ঘ্য দেখেই বোঝা যায় কত বাইট বাকি। কিছু কঠোর ডিকোডারে এটি লাগে। JWT ও বেশিরভাগ base64url ব্যবহারে প্যাডিং বাদ দেওয়া হয়।
আমার ফাইল কি আপলোড হয়?
না। ব্রাউজারের File API দিয়ে ফাইলগুলো লোকালি পড়া ও এনকোড করা হয়। কিছুই সার্ভারে পাঠানো হয় না।

সম্পর্কিত টুল