Base64 শুধুমাত্র টেক্স্ট হ্যান্ডেল করতে পারে এমন জায়গায় বাইট পরিবহনের জন্য বিদ্যমান, তাই এটি ডেটা URLs, মেইল সংযুক্তি, JSON Web Tokens, এবং যেকোনো কনফিগারেশন ফরম্যাটে পাওয়া যায় যার একটি একক স্ট্রিং মানের মধ্যে একটি সম্পূর্ণ নথি রাখতে হয়।
বাগ যেটি বেশিরভাগ ব্রাউজার Base64 টুলস আছে
ব্রাউজারের বিল্ট-ইন btoa ফাংশন U+00FF এর উপরের যেকোনো কোড
পয়েন্টকে প্রত্যাখ্যান করে। আপনার JSON-এ এক্সেন্ট যুক্ত অক্ষর,
মুদ্রা চিহ্ন, বা ইমোজি এসে মাত্র, btoa ত্রুটি ফেলে, তাই
অনেক দ্রুত Base64 টুল প্রকৃত পৃথিবীর টেক্স্ট স্পর্শ করলেই
ভেঙে পড়ে।
JSON to Base64 কনভার্টার ব্যবহার করা
এই টুল প্রথমে UTF-8 বাইটে এনকোড করে, যেটি অন্য সব ভাষা এবং সব সার্ভার করে, তাই ফলাফল একই নথির জন্য ব্যাকএন্ড যা উৎপাদন করত তার সাথে মেলে। এনকোডিং
{"name":"café","price":"₹500","clef":"𝄞"}
একটি Base64 স্ট্রিং তৈরি করে যা ব্রাউজারের নিজস্ব স্ট্যান্ডার্ড
atov এবং TextDecoder এর মাধ্যমে ডিকোড হয়ে মূল নথিতে ফিরে আসে:
café, ₹500 এবং সংগীত চিহ্ন �� সব অক্ষুণ্ণ থাকে, সেই শেষ
অক্ষর সহ, যার জন্য JavaScript-এ একটি সারোগেট জোড়া এবং UTF-8-এ
চার বাইট প্রয়োজন।
তিনটি ব্যর্থতা, আলাদাকৃত
ডিকোডিং তিনটি সত্যিকারের ভিন্ন উপায়ে ভুল হতে পারে, এবং সবকিছু “অবৈধ ইনপুট” হিসাবে একসাথে ফেলে দেওয়া আপনি কোনটি দেখছেন তা লুকিয়ে রাখে:
- একদমই Base64 নয়। Base64 বর্ণমালার বাইরের একটি অক্ষর সরাসরি
নামকরণ করা হয়:
This is not Base64: "!" is not a Base64 character, অবস্থান সহ। - বৈধ Base64, কিন্তু বাইট টেক্স্ট নয়। স্ট্রিং বাইট হিসাবে ভালোভাবে ডিকোড হয়, কিন্তু সেই বাইটগুলি বৈধ UTF-8 নয়, যার মানে সাধারণত আপনার কোনো বাইনারি ফাইলের Base64 আছে নথির নয়।
- বৈধ টেক্স্ট, কিন্তু JSON নয়। Base64 একটি স্ট্রিংয়ে নিখুঁতভাবে ডিকোড হয়েছে, এবং সেই স্ট্রিং একটি JSON নথি নয়, সেই ধরনের বার্তা দিয়ে রিপোর্ট করা হয় যেটি ফরম্যাটার এবং ভ্যালিডেটর ভাঙা JSON-এর জন্য দেয়।
কোন ফরম্যাট গ্রহণ করে
ডিকোডিং data: URL প্রিফিক্স, Base64 টেক্স্টের ভিতরে লাইন ব্রেক,
এবং URL নিরাপদ বর্ণমালা সহ্য করে যা + এবং /-এর পরিবর্তে - এবং
_ ব্যবহার করে। ব্রাউজারের নেটওয়ার্ক ট্যাব থেকে কপি করা একটি
ডেটা URL সরাসরি পেস্ট করুন; প্রিফিক্স স্বয়ংক্রিয়ভাবে সরিয়ে ফেলা হয়।
এটি কি এনক্রিপশন
না। Base64 একটি এনকোডিং, সাইফার নয়। যেকোনো ভাষায় একটি লাইন কোড দিয়ে যেকোনো ব্যক্তি এটি ডিকোড করতে পারে, অন্য দিকে এই একই টুলে পেস্ট করাসহ। এটি বাইটকে শুধুমাত্র টেক্স্ট চ্যানেল দিয়ে নিরাপদে পরিবহনযোগ্য করার জন্য, তাদের গোপন রাখার জন্য নয়।