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