সম্পর্কিত নোটে, আমি আপনার জন্য তৈরি করা সালিসত ভিত্তিক রূপান্তরকরণের জন্য এখানে একটি বেস রূপান্তরকারী। উপভোগ করুন!
https://convert.zamicol.com/
প্যাডিং চরিত্রগুলি কী কী?
প্যাডিং অক্ষর দৈর্ঘ্যের প্রয়োজনীয়তা মেটাতে এবং কোনও অর্থ বহন করতে সহায়তা করে।
প্যাডিংয়ের দশমিক উদাহরণ:
স্বেচ্ছাসেবী প্রয়োজনীয়তা অনুসারে সমস্ত স্ট্রিং দৈর্ঘ্যে 8 টি অক্ষর হওয়া উচিত, 640 সংখ্যাটি পূর্ববর্তী 0 এর প্যাডিং অক্ষর হিসাবে ব্যবহৃত হয় যার অর্থ নেই, "00000640" carry
বাইনারি এনকোডিং
বাইটের দৃষ্টান্ত: বাইটটি পরিমাপের ডি-ফ্যাক্টো স্ট্যান্ডার্ড ইউনিট এবং কোনও এনকোডিং স্কিম অবশ্যই বাইটের সাথে সম্পর্কিত হতে পারে।
বেস 256 এই দৃষ্টান্তে ঠিক ফিট করে। একটি বাইট বেস 256 এর একটি অক্ষরের সমান।
বেস 16 , হেক্সাডেসিমাল বা হেক্স প্রতিটি অক্ষরের জন্য 4 বিট ব্যবহার করে। একটি বাইট দুটি বেস 16 অক্ষর উপস্থাপন করতে পারে।
বেস 646 বেস 256 এবং বেস 16 এর বিপরীতে বাইটের দৃষ্টান্তে (বা বেস 32 নয়) সমানভাবে খাপ খায় না। সমস্ত বেস 64 অক্ষর একটি পূর্ণ বাইটের 2 টি বিট, 6 বিটগুলিতে উপস্থাপিত হতে পারে।
আমরা বেস 64 হিসাবে এনকোডিং বনাম বাইট প্যারাডিজমকে ভগ্নাংশ হিসাবে উপস্থাপন করতে পারি: প্রতি বাইটে 8 বিটের চেয়ে বেশি অক্ষর 6 বিট । এই ভগ্নাংশটি হ্রাস করা 4 বাইটের বেশি 3 বাইট।
এই অনুপাত, প্রতি 4 বেস64 অক্ষরের জন্য 3 বাইট, বেস 64 এনকোড করার সময় আমরা যে নিয়মটি অনুসরণ করতে চাই তা হ'ল। বেস 64৪ এনকোডিংটি কেবল বেস 16 এবং বেস 256 এর বিপরীতে 3 বাইট বান্ডিল দিয়েও পরিমাপের প্রতিশ্রুতি দিতে পারে যেখানে প্রতিটি বাইট নিজের নিজের মতো করে দাঁড়াতে পারে।
সুতরাং প্যাডিং চরিত্রগুলি ব্যতীত এনকোডিং ঠিকঠাক কাজ করতে পারলেও প্যাডিংকে কেন উত্সাহ দেওয়া হচ্ছে?
যদি কোনও স্ট্রিমটির দৈর্ঘ্য অজানা থাকে বা কোনও ডেটা স্ট্রিম কখন শেষ হয় ঠিক তা জানতে সহায়ক হতে পারে, প্যাডিং ব্যবহার করুন। প্যাডিংয়ের অক্ষরগুলি স্পষ্টভাবে যোগাযোগ করে যে extra অতিরিক্ত স্পটগুলি খালি থাকতে হবে এবং কোনও দ্বিধাগ্রস্থতার বিধান রয়েছে। এমনকি প্যাডিংয়ের সাথে দৈর্ঘ্য অজানা থাকলেও আপনি জানতে পারবেন আপনার ডেটা স্ট্রিমটি কোথায় শেষ হয়।
একটি পাল্টা উদাহরণ হিসাবে, JOSE এর মতো কিছু মান প্যাডিং অক্ষরগুলিকে মঞ্জুরি দেয় না। এই ক্ষেত্রে, যদি কোনও কিছু অনুপস্থিত থাকে তবে কোনও ক্রিপ্টোগ্রাফিক স্বাক্ষর কাজ করবে না বা অন্যান্য বেস বেস 64 অক্ষরগুলি অনুপস্থিত হবে ("।" এর মতো)। যদিও দৈর্ঘ্য সম্পর্কে অনুমানগুলি তৈরি করা হয় নি, প্যাডিংয়ের প্রয়োজন নেই কারণ কিছু ভুল থাকলে এটি কেবল কাজ করে না।
আর বেস 64৪ আরএফসি ঠিক এটাই বলেছে,
কিছু পরিস্থিতিতে, বেস-এনকোডড ডেটাতে প্যাডিং ("=") এর ব্যবহার প্রয়োজন হয় না বা ব্যবহৃত হয় না। সাধারণ ক্ষেত্রে, যখন পরিবহিত তথ্যের আকার সম্পর্কে অনুমান করা যায় না, প্যাডিংয়ের সঠিক ডিকোডড ডেটা পাওয়া যায়।
[...]
বেস 64৪ এর প্যাডিং স্টেপ [...] যদি ভুলভাবে প্রয়োগ করা হয় তবে এনকোডড ডেটার অ-উল্লেখযোগ্য পরিবর্তনের দিকে পরিচালিত করবে। উদাহরণস্বরূপ, যদি ইনপুটটি বেস 64 এনকোডিংয়ের জন্য কেবল একটি অক্টেট হয় তবে প্রথম চিহ্নের সমস্ত ছয়টি বিট ব্যবহৃত হয়, তবে পরবর্তী চিহ্নের প্রথম দুটি বিটই ব্যবহৃত হয়। এই প্যাড বিটগুলি অবশ্যই এনকোডারদের অনুসারে শূন্যে সেট করতে হবে যা নীচের প্যাডিংয়ের বিবরণে বর্ণিত। যদি এই সম্পত্তিটি ধরে না রাখে তবে বেস-এনকোডড ডেটার কোনও প্রথাগত উপস্থাপনা নেই এবং একাধিক বেস-এনকোড স্ট্রিংগুলি একই বাইনারি ডেটাতে ডিকোড করা যায়। যদি এই সম্পত্তি (এবং এই দস্তাবেজে আলোচিত অন্যরা) ধরে রাখে তবে একটি প্রৌon় এনকোডিং নিশ্চিত হয়।
প্যাডিং আমাদের কোনও হারানো বিটের প্রতিশ্রুতি দিয়ে বেস 64 এনকোডিংটি ডিকোড করতে দেয়। প্যাডিং ছাড়া তিনটি বাইট বান্ডলে পরিমাপের সুস্পষ্ট স্বীকৃতি আর নেই। প্যাডিং ছাড়াই আপনি সাধারণত আপনার স্ট্যাকের অন্য কোথাও, যেমন টিসিপি, চেকসাম বা অন্যান্য পদ্ধতির অতিরিক্ত তথ্য ছাড়াই মূল এনকোডিংয়ের সঠিক প্রজননের গ্যারান্টি দিতে পারবেন না।
উদাহরণ
এখানে আরএফসি 4648 ( http://tools.ietf.org/html/rfc4648#section-8 ) ফর্মের উদাহরণ এখানে দেওয়া হয়েছে
"BASE64" ফাংশনের অভ্যন্তরের প্রতিটি অক্ষর একটি বাইট (বেস 256) ব্যবহার করে। আমরা তখন বেস 64 এ অনুবাদ করি।
BASE64("") = "" (No bytes used. 0%3=0.)
BASE64("f") = "Zg==" (One byte used. 1%3=1.)
BASE64("fo") = "Zm8=" (Two bytes. 2%3=2.)
BASE64("foo") = "Zm9v" (Three bytes. 3%3=0.)
BASE64("foob") = "Zm9vYg==" (Four bytes. 4%3=1.)
BASE64("fooba") = "Zm9vYmE=" (Five bytes. 5%3=2.)
BASE64("foobar") = "Zm9vYmFy" (Six bytes. 6%3=0.)
এখানে একটি এনকোডার রয়েছে যার সাথে আপনি চারপাশে খেলতে পারেন: http://www.motobit.com/util/base64-decoder-encoder.asp