Base64 হলো একটি বাইনারি-টু-টেক্সট এনকোডিং স্কিম যা ৬৪টি প্রিন্টযোগ্য ASCII অক্ষর ব্যবহার করে বাইনারি ডেটা উপস্থাপন করে। এটি ডিজাইন করা হয়েছিল শুধুমাত্র টেক্সট পরিচালনা করে এমন সিস্টেমের মাধ্যমে — যেমন ইমেইল (MIME), HTTP হেডার এবং XML — বাইনারি ডেটা নিরাপদে পরিবহনের জন্য। "Base64" নামটি এনকোডিং অ্যালফাবেটে ব্যবহৃত ৬৪টি অক্ষর থেকে এসেছে।
এনকোডিং কাজ করে ইনপুটের তিনটি বাইট (২৪ বিট) নিয়ে সেগুলোকে চারটি ৬-বিট গ্রুপে বিভক্ত করার মাধ্যমে। প্রতিটি ৬-বিট মান Base64 অ্যালফাবেটের একটি অক্ষরে ম্যাপ হয়। ইনপুটের দৈর্ঘ্য তিনের গুণিতক না হলে, প্যাডিং অক্ষর (=) যোগ করা হয় যাতে আউটপুট অক্ষরের সংখ্যা চারের গুণিতক হয়। ফলাফলটি মূল ডেটার চেয়ে প্রায় ৩৩% বড় কিন্তু প্লেইন টেক্সট হিসেবে নিরাপদে পাঠানো যায়।
এই টুলটি কেন ব্যবহার করবেন?
এই এনকোডার Unicode টেক্সট সঠিকভাবে পরিচালনা করে, স্ট্যান্ডার্ড ও URL-safe উভয় ভেরিয়েন্ট সমর্থন করে এবং সম্পূর্ণভাবে আপনার ব্রাউজারে এনকোড করে — আপনার ডেটা কখনো আপনার মেশিন ছাড়ে না।
⚡
তাৎক্ষণিক এনকোডিং
আপনি টাইপ করার সাথে সাথে ফলাফল দেখা যায়। কোনো বাটনে ক্লিক করতে হবে না, সার্ভারের প্রতিক্রিয়ার জন্য অপেক্ষা করতে হবে না।
🔗
URL-safe টগল
একটি ক্লিকে স্ট্যান্ডার্ড (+/) এবং URL-safe (-_) এনকোডিংয়ের মধ্যে স্যুইচ করুন। URL-safe ভেরিয়েন্টের জন্য প্যাডিং স্বয়ংক্রিয়ভাবে সরানো হয়।
🔒
সম্পূর্ণ ক্লায়েন্ট-সাইড
সমস্ত এনকোডিং নেটিভ btoa API এবং TextEncoder ব্যবহার করে আপনার ব্রাউজারে স্থানীয়ভাবে হয়। কোনো সার্ভারে কিছুই পাঠানো হয় না।
🎛️
Unicode সমর্থন
এনকোডিংয়ের আগে encodeURIComponent ব্যবহার করে ইমোজি, CJK অক্ষর এবং যেকোনো UTF-8 টেক্সট সহ পূর্ণ Unicode সঠিকভাবে পরিচালনা করে।
এই Base64 এনকোডার অনলাইন কীভাবে ব্যবহার করবেন
কোনো অ্যাকাউন্ট নেই, ইনস্টল নেই, আপলোড নেই — টেক্সট পেস্ট করুন এবং এনকোড করা আউটপুট তাৎক্ষণিকভাবে দেখা যাবে।
1
আপনার টেক্সট পেস্ট বা টাইপ করুন
ইনপুট ফিল্ডে ক্লিক করুন এবং যেকোনো টেক্সট পেস্ট করুন — প্লেইন স্ট্রিং, JSON পেলোড, API কী, ইমেইল ঠিকানা বা যেকোনো UTF-8 কন্টেন্ট। আপনি টাইপ করার সাথে সাথে এনকোডিং আপডেট হয়।
2
আপনার ভেরিয়েন্ট বেছে নিন
MIME, HTTP Basic Auth এবং সাধারণ ব্যবহারের জন্য Standard (RFC 4648) বেছে নিন। JWT টোকেন, কোয়েরি স্ট্রিং প্যারামিটার, ফাইলনাম এবং যেখানে + বা / URL পার্সিং ভেঙে দিতে পারে সেখানে URL-safe বেছে নিন।
3
আউটপুট কপি করুন
একটি ক্লিকে Base64 স্ট্রিং আপনার ক্লিপবোর্ডে পাঠাতে Copy ক্লিক করুন। আউটপুটটি সরাসরি আপনার কোড, কনফিগ ফাইল বা API রিকোয়েস্টে পেস্ট করার জন্য প্রস্তুত।
4
আপনার অ্যাপ্লিকেশনে ব্যবহার করুন
এনকোড করা স্ট্রিং যেখানে প্রয়োজন সেখানে পেস্ট করুন — Authorization হেডার, ডেটা URI, JSON ফিল্ড, পরিবেশ ভেরিয়েবল বা Kubernetes সিক্রেট। URL-safe আউটপুটের জন্য প্যাডিং ইতিমধ্যে সরানো হয়েছে।
Base64 অ্যালফাবেট
Base64 ৬৪টি অক্ষর ব্যবহার করে: বড় হাতের A–Z (মান ০–২৫), ছোট হাতের a–z (২৬–৫১), সংখ্যা ০–৯ (৫২–৬১), এবং মান ৬২ ও ৬৩-এর জন্য দুটি বিশেষ অক্ষর। স্ট্যান্ডার্ড RFC 4648 ভেরিয়েন্ট + এবং / ব্যবহার করে; URL-safe ভেরিয়েন্ট URL এবং ফাইলনামে দ্বন্দ্ব এড়াতে সেগুলোকে - এবং _ দিয়ে প্রতিস্থাপন করে।
A–Z
0–25
ABCDEFGHIJKLMNOPQRSTUVWXYZ
a–z
26–51
abcdefghijklmnopqrstuvwxyz
0–9
52–61
0123456789
+, /
62–63
স্ট্যান্ডার্ড RFC 4648 — URL ও ফাইলনামে ব্যবহার এড়িয়ে চলুন
-, _
62–63
URL-safe ভেরিয়েন্ট (RFC 4648 §5) — URL ও ফাইলনামে নিরাপদ
স্ট্যান্ডার্ড বনাম URL-safe Base64
স্ট্যান্ডার্ড Base64 অ্যালফাবেট + এবং / ব্যবহার করে যা URL ও ফাইল পাথে বিশেষ অক্ষর। URL-safe ভেরিয়েন্ট এগুলো - এবং _ দিয়ে প্রতিস্থাপন করে এবং সাধারণত প্যাডিং = অক্ষর বাদ দেয়। JWT টোকেন, কোয়েরি স্ট্রিংয়ের ডেটা, ফাইলনাম এবং যে কোনো প্রসঙ্গে যেখানে + বা / ভুল ব্যাখ্যা হতে পারে সেখানে URL-safe এনকোডিং ব্যবহার করুন।
ইনপুট
স্ট্যান্ডার্ড
URL-safe
Man
TWFu
TWFu
Hello
SGVsbG8=
SGVsbG8
A
QQ==
QQ
1+1=2
MSsxPTI=
MSsxPTI
সাধারণ ব্যবহারের ক্ষেত্র
ইমেইল অ্যাটাচমেন্ট (MIME)
SMTP ৭-বিট ASCII টেক্সটের জন্য ডিজাইন করা হয়েছিল। MIME স্ট্যান্ডার্ড ইমেইল বার্তায় বাইনারি অ্যাটাচমেন্ট (ছবি, PDF, এক্সিকিউটেবল) নিরাপদে এম্বেড করতে Base64 এনকোডিং ব্যবহার করে।
ডেটা URI
data:image/png;base64,... ডেটা URI ব্যবহার করে ছবি, ফন্ট এবং অন্যান্য সম্পদ সরাসরি HTML বা CSS-এ এম্বেড করুন — ছোট রিসোর্সের জন্য অতিরিক্ত HTTP রিকোয়েস্ট দূর করে।
API পেলোড
REST API প্রায়ই JSON-এ এম্বেড করার সময় বাইনারি ফিল্ড (ফাইল আপলোড, ক্রিপ্টোগ্রাফিক কী, সার্টিফিকেট) Base64-এনকোড করা প্রয়োজন করে, কারণ JSON-এ কোনো বাইনারি টাইপ নেই।
কনফিগারেশন ফাইল
Kubernetes সিক্রেট, পরিবেশ ভেরিয়েবল এবং CI/CD কনফিগারেশন সাধারণত এস্কেপিং সমস্যা এড়াতে বাইনারি সিক্রেট ও সার্টিফিকেট Base64 স্ট্রিং হিসেবে সংরক্ষণ করে।
HTTP Basic Auth
HTTP Authorization: Basic হেডার ক্রেডেনশিয়াল Base64(username:password) হিসেবে এনকোড করে। এটি এনক্রিপশন নয় — এটি কেবল হেডারে পরিবহনের জন্য এনকোডিং প্রদান করে।
JWT টোকেন
JSON Web Token হেডার ও পেলোড সেগমেন্ট এনকোড করতে URL-safe Base64 (base64url) ব্যবহার করে, যা টোকেনটিকে এস্কেপিং ছাড়াই URL ও HTTP হেডারে ব্যবহার নিরাপদ করে।
Base64 কখন ব্যবহার করবেন না
Base64 একটি ট্রান্সপোর্ট এনকোডিং, নিরাপত্তা ব্যবস্থা নয়। এগুলো হলো সবচেয়ে সাধারণ অপব্যবহার যা প্রোডাকশনে বাস্তব সমস্যা তৈরি করে:
✕
নিরাপত্তা বা এনক্রিপশনের জন্য নয়
Base64 সহজেই বিপরীত করা যায় — ডিকোড করতে কোনো কী বা পাসওয়ার্ড প্রয়োজন হয় না। যে কেউ একটি Base64 স্ট্রিং দেখে সেকেন্ডের মধ্যে ডিকোড করতে পারে। এনক্রিপশন, হ্যাশিং বা অ্যাক্সেস কন্ট্রোলের বিকল্প হিসেবে কখনো Base64 ব্যবহার করবেন না।
✕
কমপ্রেশনের জন্য নয়
Base64 আউটপুটের আকার ~৩৩% বাড়ায়। এটি কমপ্রেশনের বিপরীত। পেলোডের আকার কমাতে এটি ব্যবহার করবেন না — পরিবর্তে gzip, Brotli বা zstd ব্যবহার করুন।
✕
বাইনারি ফাইল স্টোরেজের জন্য নয়
ডাটাবেস বা JSON API-তে Base64 হিসেবে বড় বাইনারি ফাইল সংরক্ষণ করলে উল্লেখযোগ্য স্টোরেজ ও মেমরি নষ্ট হয়। অবজেক্ট স্টোরেজ (S3, R2, Cloudflare) ব্যবহার করুন এবং সরাসরি বাইনারি সার্ভ করুন।
কোড উদাহরণ
জনপ্রিয় ভাষা ও পরিবেশে একটি স্ট্রিং Base64-এনকোড করার পদ্ধতি:
JavaScript (browser)
// Standard Base64
const encoded = btoa(unescape(encodeURIComponent(text)))
// URL-safe Base64 (no padding)
const urlSafe = btoa(unescape(encodeURIComponent(text)))
.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '')
অনলাইনে বেশ কয়েকটি Base64 এনকোডার আছে। দৈনন্দিন ডেভেলপার ব্যবহারের জন্য মূল পার্থক্যকারী বিষয়গুলো হলো গোপনীয়তা, সঠিকতা এবং ভেরিয়েন্ট সমর্থন।
সম্পূর্ণ ব্যক্তিগত — কোনো সার্ভার নেই
এই এনকোডার নেটিভ btoa API এবং TextEncoder ব্যবহার করে সম্পূর্ণভাবে আপনার ব্রাউজারে চলে। আপনার টেক্সট কখনো কোনো সার্ভারে পাঠানো হয় না — API কী, টোকেন ও সিক্রেটের জন্য নিরাপদ।
Unicode-সঠিক এনকোডিং
অনেক অনলাইন Base64 টুল নীরবে non-ASCII ইনপুট নষ্ট করে। এই টুলটি UTF-8 বাইটে এনকোড করার মাধ্যমে ইমোজি, CJK, আরবি এবং সমস্ত UTF-8 টেক্সট সহ পূর্ণ Unicode সঠিকভাবে পরিচালনা করে।
এক জায়গায় উভয় ভেরিয়েন্ট
বেশিরভাগ টুল শুধুমাত্র স্ট্যান্ডার্ড Base64 অফার করে। এই এনকোডার স্বয়ংক্রিয় প্যাডিং পরিচালনা সহ স্ট্যান্ডার্ড (+/) এবং URL-safe (-_) উভয় ভেরিয়েন্ট প্রদান করে — কোনো ম্যানুয়াল অক্ষর প্রতিস্থাপনের প্রয়োজন নেই।
সচরাচর জিজ্ঞাসা
Base64 কি এনক্রিপশনের মতো?
না। Base64 একটি এনকোডিং স্কিম, এনক্রিপশন নয়। এটি যে কেউ সহজেই বিপরীত করতে পারে — ডিকোড করতে কোনো কী বা পাসওয়ার্ড প্রয়োজন হয় না। সংবেদনশীল ডেটা সুরক্ষিত করতে কখনো Base64 ব্যবহার করবেন না। সেই উদ্দেশ্যে সঠিক এনক্রিপশন (AES, RSA) ব্যবহার করুন।
Base64 আউটপুট কেন = বা == দিয়ে শেষ হয়?
Base64 ৩ বাইটের (২৪ বিট) গ্রুপে কাজ করে, ৪টি Base64 অক্ষর তৈরি করে। ইনপুটের দৈর্ঘ্য ৩-এর গুণিতক না হলে, আউটপুটের দৈর্ঘ্য ৪-এর গুণিতক করতে প্যাডিং অক্ষর (=) যোগ করা হয়। একটি = মানে শেষ গ্রুপে ২ বাইট ছিল; দুটি == মানে ১ বাইট ছিল।
URL-safe Base64 কী?
URL-safe Base64 (RFC 4648 §5 তে সংজ্ঞায়িত) + কে - দিয়ে এবং / কে _ দিয়ে প্রতিস্থাপন করে যাতে এনকোড করা স্ট্রিং percent-encoding ছাড়াই URL, ফাইলনাম এবং HTTP হেডারে ব্যবহার করা যায়। এটি সাধারণত প্যাডিং = অক্ষরও বাদ দেয়।
Base64 ফাইলের আকার কতটুকু বাড়ায়?
Base64 এনকোডিং আকার প্রায় ৩৩% বাড়ায়। প্রতি ৩ বাইট ইনপুট ৪টি আউটপুট অক্ষরে পরিণত হয়। ১ MB ফাইলের জন্য Base64 আউটপুট প্রায় ১.৩৭ MB হবে। এই ওভারহেডের কারণেই Base64 শুধুমাত্র প্রয়োজনে ব্যবহার করা হয় (যেমন টেক্সট প্রোটোকলে বাইনারি এম্বেড করা)।
এই টুল দিয়ে কি বাইনারি ফাইল এনকোড করতে পারব?
এই টুল টেক্সট স্ট্রিং এনকোড করে (যেগুলো UTF-8 বাইট হিসেবে বিবেচিত হয়)। যেকোনো বাইনারি ফাইল (ছবি, PDF, এক্সিকিউটেবল) এনকোড করতে একটি ল্যাঙ্গুয়েজ লাইব্রেরি বা CLI টুল ব্যবহার করুন যা র' বাইট পড়ে, তারপর সেগুলো Base64 এনকোডারে দেয়।
btoa() এবং Buffer.from().toString('base64') এর মধ্যে পার্থক্য কী?
btoa() একটি ব্রাউজার বিল্ট-ইন যা Latin-1 স্ট্রিংয়ে কাজ করে; প্রথমে UTF-8 বাইটে (encodeURIComponent ব্যবহার করে) এনকোড না করলে non-ASCII অক্ষরের জন্য এরর ছুঁড়বে। Node.js-এ Buffer.from(text).toString('base64') সরাসরি UTF-8 স্ট্রিং পরিচালনা করে এবং সার্ভারে পছন্দের পদ্ধতি।
Base64 কি বাইনারি ফাইলের সাথে কাজ করে?
এই টুল টেক্সট স্ট্রিংকে UTF-8 বাইট হিসেবে Base64-এ এনকোড করে। বাইনারি ফাইলের (ছবি, PDF, এক্সিকিউটেবল) জন্য র' বাইট পড়ে এমন একটি CLI টুল বা ল্যাঙ্গুয়েজ লাইব্রেরি ব্যবহার করুন। ব্রাউজারে, FileReader.readAsDataURL() ব্যবহার করুন যা Base64-এনকোড করা বাইনারি কন্টেন্ট সহ একটি ডেটা URI ফেরত দেয়।
এনকোডিংয়ের জন্য কি কোনো আকারের সীমা আছে?
এই টুলটি কোনো সার্ভার-সাইড সীমা ছাড়াই সম্পূর্ণভাবে ব্রাউজারে চলে। ব্যবহারিক সীমা আপনার ব্রাউজারের মেমরির উপর নির্ভর করে। খুব বড় ইনপুটের (কয়েক MB-এর বেশি) জন্য base64 (Linux/macOS) বা certutil -encode (Windows) এর মতো একটি CLI টুল আরো দক্ষ।