← সব টুল

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

ব্রাউজারে তাৎক্ষণিকভাবে Base64 এনকোড ও ডিকোড করুন। জানুন Base64 কী, কেন এটি আকার ৩৩% বাড়ায় এবং কেন এটি এনক্রিপশন নয়, এনকোডিং মাত্র।

Base64 কী এবং কেন এটি বিদ্যমান

Base64 একটি বাইনারি-থেকে-টেক্সট এনকোডিং স্কিম। এটি কাঁচা বাইট নেয় - সেই ধরনের ডেটা যা ছবি, আর্কাইভ, ক্রিপ্টোগ্রাফিক কী, বা অন্য যেকোনো কিছু তৈরি করে যা সাধারণ পাঠযোগ্য টেক্সট নয় - এবং সেগুলোকে 64টি প্রিন্টযোগ্য অক্ষরের একটি ছোট, নিরাপদ বর্ণমালা ব্যবহার করে পুনর্লিখন করে: 26টি বড় হাতের অক্ষর A-Z, 26টি ছোট হাতের অক্ষর a-z, দশটি সংখ্যা 0-9, এবং দুটি অতিরিক্ত চিহ্ন, সাধারণত + এবং /। শেষে প্যাডিংয়ের জন্য একটি সমান চিহ্ন ব্যবহার করা হয়। যেহেতু এটি যে প্রতিটি অক্ষর তৈরি করে তা সাধারণ ASCII, ফলাফলটি এমন সিস্টেমের মধ্য দিয়ে যেতে পারে যা শুধুমাত্র টেক্সট পরিচালনা করার জন্য ডিজাইন করা হয়েছিল।

এটিই Base64 আবিষ্কারের সম্পূর্ণ কারণ। অনেক পুরনো প্রোটোকল - ইমেইল হলো ক্লাসিক উদাহরণ - ধরে নেয় যে তারা যে কন্টেন্ট বহন করে তা টেক্সট। আপনি যদি তাদের কাঁচা বাইনারি দেন, কিছু বাইট বিকৃত, স্ট্রিপড, বা কন্ট্রোল ক্যারেক্টার হিসেবে ব্যাখ্যা করা হয়, এবং ডেটা দূষিত হয়ে পৌঁছায়। Base64 বাইটগুলোকে এমন একটি রূপে রূপান্তরিত করে সমস্যাটি এড়িয়ে যায় যা যেকোনো টেক্সট-নিরাপদ চ্যানেল অক্ষত রেখে পাস করবে। মূল ডেটা তারপর অন্য দিকে ঠিক ঠিক পুনর্গঠন করা যেতে পারে।

বাইনারি ডেটার একটি বিমূর্ত উজ্জ্বল প্রবাহ গাঢ় ইন্ডিগোতে সায়ান ও গোল্ড আলো সহ একটি টেক্সট ক্যারেক্টার স্ট্রিমে রূপান্তরিত হচ্ছে
Base64 কাঁচা বাইটকে একটি নিরাপদ, টেক্সট-বান্ধব ক্যারেক্টার স্ট্রিমে পুনর্গঠন করে।

রূপান্তরটি কীভাবে কাজ করে

যান্ত্রিকভাবে, Base64 ইনপুটকে তিন বাইটের খণ্ডে গ্রুপ করে - যা 24 বিট - এবং তারপর সেই একই 24 বিটকে ছয় বিট করে চারটি গ্রুপে পুনরায় কাটে। ছয় বিট 64টি সম্ভাব্য মান উপস্থাপন করতে পারে, যে কারণে বর্ণমালায় ঠিক 64টি অক্ষর আছে। তাই ইনপুটের তিন বাইট সবসময় আউটপুটের চার অক্ষর হয়ে যায়। যখন ইনপুট দৈর্ঘ্য তিনের একটি পরিষ্কার গুণিতক না হয়, এনকোডার শেষ গ্রুপটিকে এক বা দুটি = অক্ষর দিয়ে প্যাড করে যাতে একটি ডিকোডার জানতে পারে প্রকৃত ডেটা কোথায় শেষ হয়।

এই চার-প্রতি-তিন অনুপাতই বিখ্যাত সাইজ পেনাল্টির উৎসও: Base64 আউটপুট মূল ডেটার চেয়ে প্রায় 33% বড়। যদি এনকোড করা টেক্সট নির্দিষ্ট-প্রস্থের লাইনে মোড়ানো হয়, যেমনটি ইমেইল স্ট্যান্ডার্ড প্রায়ই দাবি করে, তাহলে লাইন ব্রেকের জন্য আপনি তার উপরে আরও কয়েক শতাংশ দিচ্ছেন। এই ওভারহেড সামঞ্জস্যতার মূল্য, এবং বেশিরভাগ ব্যবহারের জন্য এটি একটি ন্যায্য লেনদেন।

Base64 কোথায় আপনার সামনে আসে

একবার আপনি জানলে কী খুঁজতে হবে, Base64 প্রতিদিনের কম্পিউটিং-এ সর্বত্র দেখা যায়:

  • ডেটা URI। একটি ছোট ছবি বা ফন্ট সরাসরি HTML বা CSS-এ একটি data: URI দিয়ে এমবেড করা যেতে পারে, ফাইলের বিষয়বস্তু Base64 হিসেবে লেখা। ব্রাউজার এটিকে ইনলাইন ডিকোড করে, একটি আলাদা নেটওয়ার্ক অনুরোধ বাঁচিয়ে।
  • ইমেইল অ্যাটাচমেন্ট। MIME, যে স্ট্যান্ডার্ড ইমেইলকে ফাইল বহন করতে দেয়, বাইনারি অ্যাটাচমেন্টকে টেক্সট-শুধু মেইল সিস্টেমের মধ্য দিয়ে ক্ষতি ছাড়া সরাতে Base64-এর উপর নির্ভর করে।
  • HTTP বেসিক অথেন্টিকেশন। পরিচিত Authorization: Basic ... হেডার হলো শুধু একটি ইউজারনেম ও পাসওয়ার্ড কোলন দিয়ে যুক্ত করে Base64-এনকোড করা - যে কারণে বেসিক অথ সবসময় HTTPS-এর উপর দিয়ে চালানো আবশ্যক।
  • টোকেন ও কনফিগ। JSON Web Token, সার্টিফিকেট, SSH কী, এবং অগণিত কনফিগারেশন মান Base64 হিসেবে সংরক্ষিত বা প্রেরিত হয় যাতে তারা কপি-পেস্ট ও টেক্সট-ভিত্তিক স্টোরেজে টিকে থাকে।

এনকোডিং এনক্রিপশন নয়

এটিই বোঝার সবচেয়ে গুরুত্বপূর্ণ বিষয়, এবং এটি নতুন ও অভিজ্ঞ ডেভেলপার উভয়কেই ফাঁদে ফেলে। Base64 এনক্রিপশন নয় এবং কোনো নিরাপত্তা প্রদান করে না। এতে কোনো গোপন কী নেই, কোনো পাসওয়ার্ড নেই, এবং এতে গোপনীয় কিছু নেই। রূপান্তরটি সম্পূর্ণ সর্বজনীন ও সম্পূর্ণ বিপরীতযোগ্য: যে কেউ একটি Base64 স্ট্রিং দেখে সে এই টুলের মতো একটি টুল ব্যবহার করে এক সেকেন্ডে এটিকে মূল বাইটে ডিকোড করতে পারে।

তাই পাসওয়ার্ড, API কী, বা যেকোনো সংবেদনশীল মান লুকানোর জন্য Base64 একটি খারাপ জায়গা। যদি একটি স্ট্রিং শুধু এলোমেলো দেখায়, তার মানে এই নয় যে এটি সুরক্ষিত। এনক্রিপশন, বিপরীতে, একটি গোপন কী দিয়ে ডেটা রূপান্তরিত করে যাতে শুধুমাত্র সেই কী ধারণকারী কেউ এটি পড়তে পারে। এই দুটি ভিন্ন সমস্যা সমাধান করে: এনক্রিপশন গোপনীয়তা রক্ষা করে, Base64 সামঞ্জস্যতা রক্ষা করে। এগুলো প্রায়ই একসাথে ব্যবহৃত হয় - আপনি AES দিয়ে ডেটা এনক্রিপ্ট করতে পারেন এবং তারপর সিফারটেক্সট Base64-এনকোড করতে পারেন যাতে এটি একটি টেক্সট চ্যানেলের মধ্য দিয়ে যেতে পারে - কিন্তু একটি কখনো অন্যটির বিকল্প নয়।

একটি বিমূর্ত ছবি উজ্জ্বল অক্ষরের একটি প্রবাহমান স্ট্রিমে দ্রবীভূত হয়ে আবার পুনর্গঠিত হচ্ছে, সায়ান ও গোল্ড সহ ইন্ডিগো নেভি
এনকোডিং ও ডিকোডিং নিখুঁতভাবে বিপরীতযোগ্য - এবং কোনো গোপনীয়তা প্রদান করে না।

এনকোড বনাম ডিকোড

দুটি দিক সাধারণ আয়না-প্রতিচ্ছবি। এনকোডিং আপনার মূল টেক্সট বা বাইনারি নিয়ে Base64 ক্যারেক্টার স্ট্রিং তৈরি করে। ডিকোডিং একটি Base64 স্ট্রিং নিয়ে ঠিক মূল বাইটগুলো পুনর্গঠন করে। আমাদের টুল উভয়ই সরাসরি আপনার ব্রাউজারে করে - আপনি যা টাইপ বা পেস্ট করেন তার কিছুই কখনো একটি সার্ভারে পাঠানো হয় না, তাই অপারেশনটি সম্পূর্ণভাবে লোকাল ও গোপনীয়। এটি আপনি যে টোকেন ডিবাগ করছেন তা ডিকোড করা বা এমবেড করতে চান এমন একটি স্নিপেট এনকোড করা নিরাপদ করে তোলে, আপনার ডেটা পেজ ছেড়ে না যেয়ে।

সম্পর্কিত রূপান্তরের জন্য, পার্সেন্ট-এনকোডিংয়ের জন্য আমাদের URL এনকোড/ডিকোড টুল দেখুন, অথবা একটি টোকেনের ভিতরে Base64 সেগমেন্ট পরীক্ষা করতে যখন প্রয়োজন হয় তখন JWT ডিকোডার দেখুন। আপনি এগুলো আমাদের বাকি ডেভেলপার টুল-এর পাশে খুঁজে পাবেন।

প্রায়শই জিজ্ঞাসিত প্রশ্ন

Base64 কি এনক্রিপশনের একটি রূপ?

না। Base64 একটি এনকোডিং, এনক্রিপশন নয়। এটি কোনো কী ব্যবহার করে না এবং যে কেউ এটি সম্পূর্ণভাবে বিপরীত করতে পারে, তাই এটি কোনো নিরাপত্তা প্রদান করে না। সংবেদনশীল ডেটা সুরক্ষিত করতে AES বা RSA-এর মতো প্রকৃত এনক্রিপশন ব্যবহার করুন।

Base64 কেন ডেটাকে বড় করে দেয়?

Base64 প্রতি তিন বাইট ইনপুটকে চার আউটপুট অক্ষরে পরিণত করে, যা সাইজে প্রায় 33% যোগ করে। যদি আউটপুটটি নির্দিষ্ট-দৈর্ঘ্যের লাইনে বিভক্ত করা হয়, লাইন ব্রেক তার উপরে আরও কয়েক শতাংশ যোগ করে।

Base64 কী কী অক্ষর ব্যবহার করে?

স্ট্যান্ডার্ড বর্ণমালা হলো 26টি বড় হাতের অক্ষর, 26টি ছোট হাতের অক্ষর, 0 থেকে 9 পর্যন্ত সংখ্যা, প্লাস প্লাস ও স্ল্যাশ চিহ্ন, শেষে প্যাডিংয়ের জন্য সমান চিহ্ন ব্যবহার করে।

আমি কি Base64-এ নিরাপদে পাসওয়ার্ড সংরক্ষণ করতে পারি?

না। Base64 শুধু ডেটা কেমন দেখায় তা পরিবর্তন করে, কে এটি পড়তে পারে তা নয়। যে কেউ এটি তাৎক্ষণিকভাবে ডিকোড করতে পারে। পাসওয়ার্ড একটি শক্তিশালী অ্যালগরিদম দিয়ে হ্যাশ করা উচিত, এবং গোপন তথ্য এনক্রিপ্ট করা উচিত।

এই Base64 টুলটি কি ব্যক্তিগত?

হ্যাঁ। এনকোডিং ও ডিকোডিং সম্পূর্ণভাবে আপনার ব্রাউজারে ঘটে। আপনি যা প্রবেশ করান তার কিছুই আপলোড বা কোনো সার্ভারে পাঠানো হয় না, তাই আপনার ডেটা আপনার নিজের ডিভাইসেই থাকে।

এনকোডিং ও ডিকোডিং-এর মধ্যে পার্থক্য কী?

এনকোডিং মূল টেক্সট বা বাইনারিকে একটি Base64 স্ট্রিং-এ রূপান্তরিত করে। ডিকোডিং তা বিপরীত করে, একটি Base64 স্ট্রিংকে ঠিক মূল বাইটে ফিরিয়ে দেয়। এগুলো আয়না অপারেশন।