Base64 এনকোডার ও ডিকোডার
টেক্সটকে Base64-এ এনকোড করুন বা Base64 থেকে টেক্সটে ডিকোড করুন। UTF-8 সচেতন, ASCII-র বাইরের অক্ষর সমর্থন করে।
- টেক্সট বা Base64 স্ট্রিং বাক্সে পেস্ট করুন।
- টেক্সটকে Base64-এ রূপান্তর করতে এনকোড ক্লিক করুন, বা Base64 থেকে টেক্সটে ফিরিয়ে আনতে ডিকোড ক্লিক করুন।
- যদি মানটি URL বা JWT-এ যায় তবে URL-নিরাপদ টিক দিন — এটি - এবং _ ব্যবহার করে এবং প্যাডিং বাদ দেয়।
- ফলাফল ক্লিপবোর্ডে রাখতে কপি ক্লিক করুন।
এটি কী করে?
Base64 নির্বিচারে বাইটকে 64টি প্রিন্টযোগ্য ASCII অক্ষর হিসাবে এনকোড করে, যাতে বাইনারি-অনিরাপদ ট্রান্সপোর্ট (JSON স্ট্রিং, URL, ইমেইল বডি, এনভায়রনমেন্ট ভেরিয়েবল, HTTP Basic auth) সেগুলো বিকৃতি ছাড়াই বহন করতে পারে। এই টুলটি UTF-8 ইনপুট সঠিকভাবে হ্যান্ডেল করে — এটি প্রথমে আপনার স্ট্রিংকে UTF-8 বাইটে এনকোড করে, তারপর সেই বাইটগুলিকে Base64-এনকোড করে, যাতে অ-ASCII অক্ষর পরিষ্কারভাবে রাউন্ড-ট্রিপ হয়। আউটপুট ইনপুটের চেয়ে প্রায় 33% বড় (প্রতি 3 বাইট 4টি অক্ষরে পরিণত হয়)।
উদাহরণ
টেক্সট "Hello, world!" এনকোড করা:
SGVsbG8sIHdvcmxkIQ== একই টেক্সটকে URL-নিরাপদ চালু করে এনকোড করা (প্যাডিং সরানো):
SGVsbG8sIHdvcmxkIQ ইমোজি টেক্সট "café ☕" এনকোড করা:
Y2Fmw6kg4piV আমার Base64 স্ট্রিং ডিকোড হচ্ছে না কেন?
- Standard বনাম URL-নিরাপদ অসঙ্গতি। - বা _ যুক্ত স্ট্রিংগুলি base64url, standard Base64 নয়। মেলানোর জন্য URL-নিরাপদ চেকবক্স টগল করুন।
- প্যাডিং অনুপস্থিত। একটি standard Base64 স্ট্রিংয়ের দৈর্ঘ্য 4-এর গুণিতক হতে হবে। SGVsbG8 ব্যর্থ হয়; SGVsbG8= কাজ করে। দৈর্ঘ্য 4 দ্বারা বিভাজ্য না হওয়া পর্যন্ত = দিয়ে প্যাড করুন।
- মানের ভিতরে হোয়াইটস্পেস এবং নিউলাইন। কিছু সিস্টেম 76 অক্ষরে \n দিয়ে Base64 মোড়ে। বেশিরভাগ ডিকোডার এটি সহ্য করে, কিন্তু কঠোরগুলি করে না। ডিকোড করার আগে হোয়াইটস্পেস সরান।
- ভুলবশত দুবার ডিকোড করা। U0dWc2JHOA== ডিকোড করলে SGVsbG8 পাওয়া যায়, যা নিজেই একটি Base64 স্ট্রিং। আপনার আউটপুট যদি আরও Base64-এর মতো দেখায়, আবার ডিকোড করুন।
- অ-UTF-8 বাইনারি ডেটা। যদি ডিকোড করা বাইটগুলি বৈধ UTF-8 না হয় (যেমন একটি PNG হেডার), টেক্সট হিসাবে ডিকোডিং ব্যর্থ হবে বা আবর্জনা দেখাবে। বাইনারির জন্য ফাইল-সচেতন Base64 টুল ব্যবহার করুন।
- স্মার্ট উদ্ধৃতি বা দৃশ্যমান ইলিপসিস। ওয়ার্ড প্রসেসর থেকে কপি করলে " কে কার্ল কোট দিয়ে প্রতিস্থাপন করতে পারে বা দীর্ঘ স্ট্রিংকে ইলিপসিস দিয়ে ছাঁটাই করতে পারে। প্রথমে একটি প্লেইন-টেক্সট এডিটরের মাধ্যমে পেস্ট করুন।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
standard Base64 এবং URL-নিরাপদ Base64-এর মধ্যে পার্থক্য কী?
Standard Base64 (RFC 4648) + এবং / ব্যবহার করে এবং = দিয়ে প্যাড করে। URL-নিরাপদ Base64 (base64url) + কে - দিয়ে এবং / কে _ দিয়ে প্রতিস্থাপন করে এবং সাধারণত প্যাডিং বাদ দেয় যাতে স্ট্রিংটি অপরিবর্তিতভাবে URL পাথ বা কোয়েরি প্যারামিটার হিসাবে টিকে থাকে। JWT-গুলি base64url ব্যবহার করে। আউটপুট URL-এ গেলে URL-নিরাপদ চেকবক্স নির্বাচন করুন।
এই টুলটি কি ইমোজি এবং অ-ASCII টেক্সট সঠিকভাবে হ্যান্ডেল করে?
হ্যাঁ। ইনপুট প্রথমে UTF-8 বাইট হিসাবে এনকোড করা হয়, তারপর সেই বাইটগুলি Base64-এনকোড করা হয়। ডিকোডিং উভয় ধাপ বিপরীত করে। এজন্যই "café" পেস্ট করে ফলাফল ডিকোড করলে আপনি "café" ফিরে পান, mojibake নয়। অনেক পুরানো Base64 টুল Latin-1 ধরে নেয় এবং ASCII-র বাইরে যেকোনো কিছু নষ্ট করে।
আমি কি একটি ছবির মতো বাইনারি ফাইল বা PDF এনকোড করতে পারি?
এই পৃষ্ঠাটি শুধু টেক্সট এনকোড করে। একটি ফাইল Base64-এনকোড করতে, এটি বাইনারি হিসাবে পড়ে এমন একটি টুলে ফাইলটি ড্রপ করুন (বা FileReader.readAsDataURL সহ ব্রাউজার কনসোল ব্যবহার করুন)। এই টুলটি স্ট্রিং এনকোড করার জন্য — ক্রেডেনশিয়াল, কনফিগ বা JSON ফিল্ড এম্বেড করার সাধারণ ব্যবহারের ক্ষেত্রে।
আমার ডিকোড করা আউটপুট কেন আবর্জনার মতো দেখায়?
সাধারণত ইনপুটটি শুরুতে Base64 ছিল না, অথবা এটি URL-নিরাপদ Base64 ছিল যা standard হিসাবে ডিকোড করা হয়েছিল (বা বিপরীত)। URL-নিরাপদ চেকবক্স টগল করার চেষ্টা করুন। আরেকটি সাধারণ কারণ হল এমন একটি স্ট্রিং ডিকোড করা যা আসলে Base64-এনকোড করা বাইনারি, টেক্সট নয় — সেক্ষেত্রে বাইটগুলি বৈধ UTF-8 নয়।
= প্যাডিং কি গুরুত্বপূর্ণ?
Standard Base64 আউটপুটকে প্যাড করে যাতে এর দৈর্ঘ্য 4-এর গুণিতক হয়। বেশিরভাগ ডিকোডার প্যাডিং ছাড়াই ইনপুট গ্রহণ করে, কিন্তু কিছু কঠোর ডিকোডার তা প্রত্যাখ্যান করে। URL-নিরাপদ Base64 সাধারণত প্যাডিং বাদ দেয়। একটি ডিকোডার অভিযোগ করলে, দৈর্ঘ্য 4 দ্বারা বিভাজ্য না হওয়া পর্যন্ত = চিহ্ন যোগ করুন, বা সবগুলি সরিয়ে আবার চেষ্টা করুন।
আমি যে টেক্সট এনকোড বা ডিকোড করি তা কি আপনারা সংরক্ষণ করেন?
না। আপনি এখানে যে টেক্সট পেস্ট করেন তা আমরা সংরক্ষণ করি না। আপনি পৃষ্ঠা বন্ধ বা রিফ্রেশ করার মুহূর্তে আপনার ইনপুট বাতিল করা হয় — কিছুই রাখা হয় না, এবং আপনি কী এনকোড বা ডিকোড করেছেন তার কোনো রেকর্ড নেই। অতিরিক্ত আত্মবিশ্বাসের স্তর চাইলে আপনি আপনার ব্রাউজারের developer tools চেক করতে পারেন।