Miklix

ماشین حساب کد هش CRC-32C

منتشر شده: ۱۷ فوریهٔ ۲۰۲۵ ساعت ۱۸:۴۵:۳۷ (UTC)

ماشین حساب کد هش که از تابع هش CRC-32C (Cyclic Redundancy Check 32 bit, C variant) برای محاسبه کد هش بر اساس ورودی متن یا آپلود فایل استفاده می کند.

این صفحه ماشینی از انگلیسی ترجمه شد تا در دسترس هر چه بیشتر مردم باشد. متأسفانه، ترجمه ماشینی هنوز یک فناوری کامل نشده است، بنابراین ممکن است خطاهایی رخ دهد. در صورت تمایل می توانید نسخه اصلی انگلیسی را در اینجا مشاهده کنید:

CRC-32C Hash Code Calculator

بررسی افزونگی چرخه ای (CRC) یک کد تشخیص خطا است که معمولاً برای تشخیص تغییرات تصادفی داده های خام استفاده می شود. در حالی که از نظر فنی یک تابع هش رمزنگاری نیست، CRC-32 به دلیل توانایی آن در تولید خروجی با اندازه ثابت (32 بیت) از ورودی با طول متغیر، اغلب به عنوان هش نامیده می شود. نسخه ارائه شده در این صفحه، نوع CRC-32C است، که یک نسخه جدیدتر و "هوشمندتر" (تشخیص خطا بهتر) است که اغلب در CPUهای مدرن (از طریق SSE 4.2) به سخت افزار تسریع می شود.

افشای کامل: من پیاده سازی خاصی از تابع هش مورد استفاده در این صفحه را ننوشتم. این یک تابع استاندارد است که در زبان برنامه نویسی PHP گنجانده شده است. من فقط رابط وب را ایجاد کردم تا برای راحتی در اینجا در دسترس عموم قرار دهم.


هش کد جدید را محاسبه کنید

داده های ارسال شده یا فایل های آپلود شده از طریق این فرم تنها تا زمانی که برای تولید کد هش درخواستی طول می کشد، در سرور نگهداری می شوند. بلافاصله قبل از بازگرداندن نتیجه به مرورگر شما حذف می شود.

داده های ورودی:



متن ارسالی دارای کد UTF-8 است. از آنجایی که توابع هش بر روی داده‌های باینری کار می‌کنند، نتیجه متفاوت از زمانی است که متن در کدگذاری دیگری باشد. اگر نیاز به محاسبه هش یک متن در یک رمزگذاری خاص دارید، باید به جای آن یک فایل آپلود کنید.



درباره الگوریتم هش CRC-32C

من یک ریاضیدان نیستم، اما سعی می کنم این تابع هش را با یک قیاس ساده توضیح دهم. برخلاف بسیاری از توابع هش رمزنگاری، این یک الگوریتم پیچیده نیست، بنابراین احتمالاً مشکلی ندارد ;-)

تصور کنید نامه‌ای را از طریق پست می‌فرستید، اما نگران هستید که قبل از رسیدن به دست گیرنده، آسیب ببیند. بر اساس محتوای نامه، یک CRC-32 را محاسبه می‌کنید و آن را روی پاکت می‌نویسید. هنگامی که گیرنده نامه را دریافت می کند، سپس می تواند مبلغ چک را نیز محاسبه کند و ببیند آیا با آنچه شما نوشته اید مطابقت دارد یا خیر. اگر اینطور باشد، نامه در طول مسیر آسیبی ندیده یا تغییر نکرده است.

روشی که CRC-32 این کار را انجام می دهد یک فرآیند چهار مرحله ای است:

مرحله 1: اضافه کردن مقداری فضای اضافی (بالشتک)

  • CRC کمی فضای اضافی در انتهای پیام اضافه می کند (مانند بسته بندی بادام زمینی در یک جعبه).
  • این به آن کمک می کند تا خطاها را راحت تر تشخیص دهد.

مرحله 2: خط کش جادویی (چند جمله ای)

  • CRC-32 از یک "خط کش جادویی" ویژه برای اندازه گیری داده ها استفاده می کند.
    • این خط کش را مانند الگوی برآمدگی ها و شیارها در نظر بگیرید (این چند جمله ای است، اما نگران آن کلمه نباشید).
    • رایج ترین "خط کش" برای CRC-32 یک الگوی ثابت است.

مرحله 3: کشیدن خط کش (فرایند تقسیم)

  • اکنون CRC خط کش را روی پیام می کشاند.
    • در هر نقطه، بررسی می کند که آیا برآمدگی ها و شیارها در یک راستا قرار دارند.
    • اگر در یک ردیف قرار نگیرند، CRC یادداشت می‌کند (این کار با استفاده از XOR ساده، مانند روشن یا خاموش کردن کلیدها انجام می‌شود).
    • به لغزش و چرخاندن سوئیچ ها ادامه می دهد تا به انتهای آن برسد.

مرحله 4: نتیجه نهایی (چک جمع)

  • پس از کشیدن خط کش در کل پیام، یک عدد کوچک (طول 32 بیت) برای شما باقی می ماند که نشان دهنده داده های اصلی است.
    • این شماره مانند یک اثر انگشت منحصر به فرد برای پیام است.
    • این چکسام CRC-32 است.

نسخه ارائه شده در صفحه، نوع CRC-32C است که باید نوع ارجح باشد، به خصوص اگر از CPU استفاده می کنید که دارای شتاب سخت افزاری است (SSE 4.2 و جدیدتر) و نیازی به سازگاری با انواع دیگر ندارید.

من ماشین حساب برای انواع دیگر نیز دارم:

در Bluesky به اشتراک بگذاریددر فیسبوک به اشتراک بگذاریددر لینکدین به اشتراک بگذاریددر Tumblr به اشتراک بگذاریددر X به اشتراک بگذاریددر لینکدین به اشتراک بگذاریدپین در پینترست

میکل بنگ کریستنسن

درباره نویسنده

میکل بنگ کریستنسن
مایکل خالق و صاحب miklix.com است. او بیش از 20 سال تجربه به عنوان یک برنامه نویس حرفه ای کامپیوتر / توسعه دهنده نرم افزار دارد و در حال حاضر به طور تمام وقت برای یک شرکت بزرگ فناوری اطلاعات اروپایی مشغول به کار است. هنگامی که وبلاگ نویسی نمی کند، اوقات فراغت خود را صرف مجموعه وسیعی از علایق، سرگرمی ها و فعالیت ها می کند، که ممکن است تا حدی در موضوعات مختلف پوشش داده شده در این وب سایت منعکس شود.