CRC-32B হ্যাশ কোড ক্যালকুলেটর
প্রকাশিত: ১৭ ফেব্রুয়ারী, ২০২৫ এ ৬:৩১:৪২ PM UTC
হ্যাশ কোড ক্যালকুলেটর যা টেক্সট ইনপুট বা ফাইল আপলোডের উপর ভিত্তি করে একটি হ্যাশ কোড গণনা করতে CRC-32B (সাইক্লিক রিডানডেন্সি চেক 32 বিট, B ভেরিয়েন্ট) হ্যাশ ফাংশন ব্যবহার করে।CRC-32B Hash Code Calculator
সাইক্লিক রিডানডেন্সি চেক (CRC) হল একটি ত্রুটি-শনাক্তকারী কোড যা সাধারণত কাঁচা ডেটাতে দুর্ঘটনাজনিত পরিবর্তন সনাক্ত করতে ব্যবহৃত হয়। যদিও এটি টেকনিক্যালি একটি ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন নয়, CRC-32 কে প্রায়শই হ্যাশ বলা হয় কারণ এটি পরিবর্তনশীল-দৈর্ঘ্যের ইনপুট থেকে একটি নির্দিষ্ট-আকারের আউটপুট (32 বিট) তৈরি করতে পারে। এই পৃষ্ঠায় উপস্থাপিত সংস্করণটি হল CRC-32B ভেরিয়েন্ট, যা আসলে PHP ভাষার একটি অদ্ভুত বৈশিষ্ট্য যা বিটগুলিকে উল্টে দেয় (মূল CRC-32-তে লিটল-এন্ডিয়ান বনাম বিগ-এন্ডিয়ান)।
সম্পূর্ণ প্রকাশ: আমি এই পৃষ্ঠায় ব্যবহৃত হ্যাশ ফাংশনের নির্দিষ্ট বাস্তবায়ন লিখিনি। এটি পিএইচপি প্রোগ্রামিং ভাষার সাথে অন্তর্ভুক্ত একটি স্ট্যান্ডার্ড ফাংশন। আমি কেবল সুবিধার জন্য এখানে সর্বজনীনভাবে উপলব্ধ করার জন্য ওয়েব ইন্টারফেসটি তৈরি করেছি।
CRC-32B হ্যাশ অ্যালগরিদম সম্পর্কে
আমি গণিতবিদ নই, তবে আমি এই হ্যাশ ফাংশনটি একটি সহজ উপমা দিয়ে ব্যাখ্যা করার চেষ্টা করব। অনেক ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশনের বিপরীতে, এটি কোনও বিশেষ জটিল অ্যালগরিদম নয়, তাই এটি সম্ভবত ঠিক থাকবে ;-)
কল্পনা করুন আপনি ডাকযোগে একটি চিঠি পাঠাচ্ছেন, কিন্তু আপনি চিন্তিত যে প্রাপকের কাছে পৌঁছানোর আগেই এটি ক্ষতিগ্রস্ত হতে পারে। চিঠির বিষয়বস্তুর উপর ভিত্তি করে, আপনি একটি CRC-32 চেকসাম গণনা করেন এবং খামে তা লিখে রাখেন। প্রাপক যখন চিঠিটি পান, তখন তিনি চেকসামটিও গণনা করতে পারেন এবং দেখতে পারেন যে এটি আপনার লেখার সাথে মেলে কিনা। যদি তা হয়, তাহলে চিঠিটি ক্ষতিগ্রস্ত হয়নি বা পথে পরিবর্তিত হয়নি।
CRC-32 যেভাবে এটি করে তা চার ধাপের একটি প্রক্রিয়া:
ধাপ ১: কিছু অতিরিক্ত স্থান যোগ করুন (প্যাডিং)
- বার্তার শেষে CRC একটু অতিরিক্ত জায়গা যোগ করে (যেমন বাক্সে বাদাম প্যাক করা)।
- এটি আরও সহজে ত্রুটিগুলি সনাক্ত করতে সাহায্য করে।
ধাপ ২: জাদুর শাসক (বহুপদী)
- CRC-32 তথ্য পরিমাপের জন্য একটি বিশেষ "ম্যাজিক রুলার" ব্যবহার করে।
- এই রুলারটিকে বাম্প এবং খাঁজের একটি প্যাটার্ন হিসেবে ভাবুন (এটি বহুপদী, কিন্তু সেই শব্দটি নিয়ে চিন্তা করবেন না)।
- CRC-32 এর জন্য সবচেয়ে সাধারণ "রুলার" হল একটি স্থির প্যাটার্ন।
ধাপ ৩: রুলার স্লাইড করা (বিভাগ প্রক্রিয়া)
- এখন CRC বার্তাটির উপর দিয়ে রুলারটি স্লাইড করে।
- প্রতিটি স্থানে, এটি পরীক্ষা করে যে বাম্প এবং খাঁজগুলি সারিবদ্ধ কিনা।
- যদি তারা লাইন আপ না করে, CRC একটি নোট তৈরি করে (এটি সহজ XOR ব্যবহার করে করা হয়, যেমন সুইচগুলি চালু বা বন্ধ করা)।
- এটি শেষ না হওয়া পর্যন্ত সুইচগুলো স্লাইডিং এবং উল্টাতে থাকে।
ধাপ ৪: চূড়ান্ত ফলাফল (চেকসাম)
- পুরো বার্তা জুড়ে রুলারটি স্লাইড করার পরে, আপনার কাছে একটি ছোট সংখ্যা (32 বিট দীর্ঘ) অবশিষ্ট থাকবে যা মূল ডেটা উপস্থাপন করে।
- এই নম্বরটি বার্তার জন্য একটি অনন্য আঙুলের ছাপের মতো।
- এটি CRC-32 চেকসাম।
পৃষ্ঠায় উপস্থাপিত সংস্করণটি হল CRC-32B ভেরিয়েন্ট, যা বেশিরভাগই একটি PHP অদ্ভুততা যা বিট অর্ডারকে অন্যত্র পরিবর্তন করে (লিটল-এন্ডিয়ান বনাম বিগ-এন্ডিয়ান)। আপনার সম্ভবত এই সংস্করণটি কেবল তখনই ব্যবহার করা উচিত যদি আপনার বিশেষভাবে এটি ব্যবহার করে এমন অন্য PHP অ্যাপ্লিকেশনের সাথে সামঞ্জস্যের প্রয়োজন হয়।
অন্যান্য ভেরিয়েন্টের জন্যও আমার কাছে ক্যালকুলেটর আছে: