Miklix

CRC-32B হ্যাশ কোড ক্যালকুলেটর

প্রকাশিত: ১৭ ফেব্রুয়ারী, ২০২৫ এ ৬:৩১:৪২ PM UTC

হ্যাশ কোড ক্যালকুলেটর যা টেক্সট ইনপুট বা ফাইল আপলোডের উপর ভিত্তি করে একটি হ্যাশ কোড গণনা করতে CRC-32B (সাইক্লিক রিডানডেন্সি চেক 32 বিট, B ভেরিয়েন্ট) হ্যাশ ফাংশন ব্যবহার করে।

এই পৃষ্ঠাটি যতটা সম্ভব মানুষের কাছে পৌঁছানোর জন্য ইংরেজি থেকে মেশিন অনুবাদ করা হয়েছে। দুর্ভাগ্যবশত, মেশিন অনুবাদ এখনও একটি নিখুঁত প্রযুক্তি নয়, তাই ত্রুটি হতে পারে। আপনি যদি চান, আপনি এখানে মূল ইংরেজি সংস্করণটি দেখতে পারেন:

CRC-32B Hash Code Calculator

সাইক্লিক রিডানডেন্সি চেক (CRC) হল একটি ত্রুটি-শনাক্তকারী কোড যা সাধারণত কাঁচা ডেটাতে দুর্ঘটনাজনিত পরিবর্তন সনাক্ত করতে ব্যবহৃত হয়। যদিও এটি টেকনিক্যালি একটি ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন নয়, CRC-32 কে প্রায়শই হ্যাশ বলা হয় কারণ এটি পরিবর্তনশীল-দৈর্ঘ্যের ইনপুট থেকে একটি নির্দিষ্ট-আকারের আউটপুট (32 বিট) তৈরি করতে পারে। এই পৃষ্ঠায় উপস্থাপিত সংস্করণটি হল CRC-32B ভেরিয়েন্ট, যা আসলে PHP ভাষার একটি অদ্ভুত বৈশিষ্ট্য যা বিটগুলিকে উল্টে দেয় (মূল CRC-32-তে লিটল-এন্ডিয়ান বনাম বিগ-এন্ডিয়ান)।

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


নতুন হ্যাশ কোড গণনা করুন

এই ফর্মের মাধ্যমে জমা দেওয়া তথ্য বা আপলোড করা ফাইলগুলি সার্ভারে কেবল ততক্ষণ রাখা হবে যতক্ষণ অনুরোধ করা হ্যাশ কোড তৈরি করতে সময় লাগে। ফলাফল আপনার ব্রাউজারে ফেরত পাঠানোর আগেই এটি মুছে ফেলা হবে।

ইনপুট ডেটা:



জমা দেওয়া টেক্সটটি UTF-8 এনকোডেড। যেহেতু হ্যাশ ফাংশন বাইনারি ডেটার উপর কাজ করে, তাই ফলাফলটি অন্য এনকোডিংয়ে থাকা টেক্সটের ফলাফল থেকে ভিন্ন হবে। যদি আপনাকে একটি নির্দিষ্ট এনকোডিংয়ে একটি টেক্সটের হ্যাশ গণনা করতে হয়, তাহলে আপনার পরিবর্তে একটি ফাইল আপলোড করা উচিত।



CRC-32B হ্যাশ অ্যালগরিদম সম্পর্কে

আমি গণিতবিদ নই, তবে আমি এই হ্যাশ ফাংশনটি একটি সহজ উপমা দিয়ে ব্যাখ্যা করার চেষ্টা করব। অনেক ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশনের বিপরীতে, এটি কোনও বিশেষ জটিল অ্যালগরিদম নয়, তাই এটি সম্ভবত ঠিক থাকবে ;-)

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

CRC-32 যেভাবে এটি করে তা চার ধাপের একটি প্রক্রিয়া:

ধাপ ১: কিছু অতিরিক্ত স্থান যোগ করুন (প্যাডিং)

  • বার্তার শেষে CRC একটু অতিরিক্ত জায়গা যোগ করে (যেমন বাক্সে বাদাম প্যাক করা)।
  • এটি আরও সহজে ত্রুটিগুলি সনাক্ত করতে সাহায্য করে।

ধাপ ২: জাদুর শাসক (বহুপদী)

  • CRC-32 তথ্য পরিমাপের জন্য একটি বিশেষ "ম্যাজিক রুলার" ব্যবহার করে।
    • এই রুলারটিকে বাম্প এবং খাঁজের একটি প্যাটার্ন হিসেবে ভাবুন (এটি বহুপদী, কিন্তু সেই শব্দটি নিয়ে চিন্তা করবেন না)।
    • CRC-32 এর জন্য সবচেয়ে সাধারণ "রুলার" হল একটি স্থির প্যাটার্ন।

ধাপ ৩: রুলার স্লাইড করা (বিভাগ প্রক্রিয়া)

  • এখন CRC বার্তাটির উপর দিয়ে রুলারটি স্লাইড করে।
    • প্রতিটি স্থানে, এটি পরীক্ষা করে যে বাম্প এবং খাঁজগুলি সারিবদ্ধ কিনা।
    • যদি তারা লাইন আপ না করে, CRC একটি নোট তৈরি করে (এটি সহজ XOR ব্যবহার করে করা হয়, যেমন সুইচগুলি চালু বা বন্ধ করা)।
    • এটি শেষ না হওয়া পর্যন্ত সুইচগুলো স্লাইডিং এবং উল্টাতে থাকে।

ধাপ ৪: চূড়ান্ত ফলাফল (চেকসাম)

  • পুরো বার্তা জুড়ে রুলারটি স্লাইড করার পরে, আপনার কাছে একটি ছোট সংখ্যা (32 বিট দীর্ঘ) অবশিষ্ট থাকবে যা মূল ডেটা উপস্থাপন করে।
    • এই নম্বরটি বার্তার জন্য একটি অনন্য আঙুলের ছাপের মতো।
    • এটি CRC-32 চেকসাম।

পৃষ্ঠায় উপস্থাপিত সংস্করণটি হল CRC-32B ভেরিয়েন্ট, যা বেশিরভাগই একটি PHP অদ্ভুততা যা বিট অর্ডারকে অন্যত্র পরিবর্তন করে (লিটল-এন্ডিয়ান বনাম বিগ-এন্ডিয়ান)। আপনার সম্ভবত এই সংস্করণটি কেবল তখনই ব্যবহার করা উচিত যদি আপনার বিশেষভাবে এটি ব্যবহার করে এমন অন্য PHP অ্যাপ্লিকেশনের সাথে সামঞ্জস্যের প্রয়োজন হয়।

অন্যান্য ভেরিয়েন্টের জন্যও আমার কাছে ক্যালকুলেটর আছে:


ব্লুস্কাইতে শেয়ার করুনফেসবুকে শেয়ার করুনলিংকডইনে শেয়ার করুনটাম্বলারে শেয়ার করুনX-এ শেয়ার করুনলিংকডইনে শেয়ার করুনপিন্টারেস্টে পিন করুন

মিকেল ব্যাং ক্রিস্টেনসেন

লেখক সম্পর্কে

মিকেল ব্যাং ক্রিস্টেনসেন
মিকেল হলেন miklix.com এর স্রষ্টা এবং মালিক। একজন পেশাদার কম্পিউটার প্রোগ্রামার/সফ্টওয়্যার ডেভেলপার হিসেবে তার ২০ বছরেরও বেশি অভিজ্ঞতা রয়েছে এবং বর্তমানে তিনি একটি বৃহৎ ইউরোপীয় আইটি কর্পোরেশনে পূর্ণকালীন কর্মরত। ব্লগিং না করার সময়, তিনি তার অবসর সময় বিভিন্ন আগ্রহ, শখ এবং কার্যকলাপে ব্যয় করেন, যা কিছুটা হলেও এই ওয়েবসাইটে কভার করা বিভিন্ন বিষয়ের মধ্যে প্রতিফলিত হতে পারে।