Base64 এনকোডার ও ডিকোডার
টেক্সট ও ফাইলকে Base64-এ রূপান্তর করুন এবং উল্টোটাও। Unicode সঠিকভাবে সামলায়, URL-নিরাপদ base64url সমর্থন করে, আর ভুল ইনপুট কেন ব্যর্থ হলো তা ঠিকঠাক জানায়।
ব্রাউজারেই চলেসাইন-আপ লাগে নাকিছুই আপলোড হয় না
Base64 এনকোড / ডিকোড কীভাবে ব্যবহার করবেন
- এনকোড বা ডিকোড বেছে নিন।
- আপনার ইনপুট লিখুন বা পেস্ট করুন। টাইপ করার সাথে সাথে ফলাফল আপডেট হয়।
- URL, JWT ও ফাইলনামের জন্য URL-নিরাপদ টিক দিন, এতে
-ও_ব্যবহার হবে; চাইলে=প্যাডিং বাদ দিন। - ছবি বা ফন্ট এমবেড করতে ফাইল এনকোড করুন ক্লিক করুন এবং data URI হিসেবে আউটপুট টিক দেওয়া রাখুন।
- ফলাফল কপি করুন, অথবা অদলবদল দিয়ে উল্টো দিকে আবার ইনপুট দিন।
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 হিসেবে সংরক্ষণ করে