یک جمع کنترلی نتیجه اجرای یک الگوریتم به نام تابع هش رمزنگاری بر روی یک قطعه داده، معمولاً یک فایل است. مقایسه چکسومهایی که از نسخه فایل خود تولید میکنید، با نسخه ارائهشده توسط منبع فایل، به شما کمک میکند تا مطمئن شوید که نسخه شما از فایل واقعی و بدون خطا است.
یک جمع کنترلی گاهی اوقات یک جمع هش نامیده می شود و کمتر اوقات یک مقدار هش، کد هش یا به سادگی هش نامیده می شود.
یک مثال ساده از جمع بازرسی
ایده یک چکسوم یا تابع هش رمزنگاری ممکن است پیچیده به نظر برسد و احتمالاً ارزش تلاش را ندارد، اما ما میخواهیم شما را در غیر این صورت متقاعد کنیم! درک یا ایجاد جمعهای چک واقعاً چندان سخت نیست.
بیایید با یک مثال ساده شروع کنیم، امیدواریم قدرت چکسامها برای اثبات تغییر چیزی را نشان دهیم. چک جمع MD5 برای عبارت زیر یک رشته طولانی از کاراکترها است که آن جمله را نشان می دهد.
این یک آزمایش است.
120EA8A25E5D487BF68B5F7096440019
برای اهداف ما در اینجا، آنها اساساً با یکدیگر برابر هستند. با این حال، ایجاد حتی یک تغییر جزئی، مانند حذف فقط دوره، یک جمعبندی کاملاً متفاوت ایجاد میکند.
این یک آزمایش است
CE114E4501D2F4E2DCEA3E17B546F339
همانطور که میبینید، حتی یک تغییر جزئی در فایل، یک چکسوم بسیار متفاوت ایجاد میکند، و کاملاً واضح است که یکی با دیگری برابر نیست.
Ceckssum Use Case
فرض کنید یک بهروزرسانی نرمافزار بزرگ را دانلود کردهاید، مانند یک سرویس پک. این احتمالاً یک فایل بزرگ است که دانلود آن چند دقیقه یا بیشتر طول میکشد.
پس از دانلود، چگونه متوجه می شوید که فایل به درستی دریافت شده است؟ اگر در حین انتقال چند بیت از بین رفته باشد و فایلی که در حال حاضر روی رایانه خود دارید دقیقاً همان چیزی نباشد که در نظر گرفته شده است، چه؟ اعمال به روز رسانی برای برنامه ای که دقیقاً به روشی نیست که توسعه دهنده آن را ایجاد کرده است، احتمالاً برای شما مشکلات بزرگی ایجاد می کند.
اینجاست که مقایسه چکسامها میتواند خیال شما را راحت کند. با فرض اینکه وبسایتی که فایل را از آن دانلود کردهاید، دادههای چکسوم را در کنار فایلی که باید دانلود شود ارائه میکند، میتوانید از یک ماشینحساب چکسوم استفاده کنید (به «محاسبهای جمعبندی چک» در زیر مراجعه کنید) تا از فایل دانلود شدهتان یک چکسوم تولید کنید.
برای مثال، بگوییم که وبسایت برای فایلی که دانلود کردهاید، چکسوم MD5:5a828ca5302b19ae8c7a66149f3e1e98 را ارائه میکند. سپس از ماشینحساب چکسوم خود استفاده میکنید تا با استفاده از همان تابع هش رمزنگاری، MD5 در این مثال، روی فایل روی رایانهتان، یک چکسوم تولید کنید. آیا جمع بندی ها مطابقت دارند؟ عالی! شما می توانید بسیار مطمئن باشید که این دو فایل یکسان هستند.
آیا جمعهای چک مطابقت ندارند؟ این می تواند به معنای هر چیزی باشد، از این واقعیت که شخصی بدون اینکه شما بدانید، دانلود را با چیزی مخرب جایگزین کرده است، تا دلیلی نه چندان شوم مانند اینکه شما فایل را باز کرده و تغییر داده اید، یا اتصال شبکه قطع شده است و دانلود فایل تمام نشده است.دوباره سعی کنید فایل را دانلود کنید و سپس یک چک جمع جدید در فایل جدید ایجاد کنید و سپس دوباره مقایسه کنید.
Checksums همچنین برای تأیید اینکه فایلی که از جایی غیر از منبع اصلی دانلود کردهاید، در واقع یک فایل معتبر است و بهطور مخرب یا غیرقانونی از نسخه اصلی تغییر نکرده است مفید است. فقط هش را که ایجاد میکنید با هش موجود از منبع فایل مقایسه کنید.
ماشین حساب های چکی
ماشین حساب های چک ابزاری هستند که برای محاسبه جمع های چک استفاده می شوند. تعداد زیادی از آنها وجود دارد که هر کدام مجموعه متفاوتی از توابع هش رمزنگاری را پشتیبانی می کنند.
یکی از گزینه های رایگان عالی Microsoft File Checksum Integrity Verifier است که به اختصار FCIV نامیده می شود. این فقط از توابع هش رمزنگاری MD5 و SHA-1 پشتیبانی می کند، اما اینها در حال حاضر محبوب ترین هستند. برای یک آموزش کامل، بخش ما را در مورد چگونگی تأیید یکپارچگی فایل در ویندوز با FCIV ببینید. Microsoft File Checksum Integrity Verifier یک برنامه خط فرمان است، اما استفاده از آن بسیار آسان است.
همچنین می توانید از برنامه certutil تعبیه شده در ویندوز استفاده کنید. این نیز یک ابزار خط فرمان است، اما استفاده از آن برای اعتبارسنجی جمعبندی چک MD5 فایلها به همان اندازه آسان است. آن مقاله همچنین نحوه انجام همین کار را در لینوکس با md5sum شرح می دهد.
یکی دیگر از ماشینحسابهای چکسوم رایگان عالی برای ویندوز IgorWare Hasher است و کاملاً قابل حمل است، بنابراین نیازی به نصب چیزی ندارید (اما برای باز کردن بستهبندی برنامه به یک فایل بازکننده RAR نیاز دارید). اگر با ابزارهای خط فرمان راحت نیستید، این ابزار احتمالاً انتخاب بهتری است. از MD5 و SHA-1 و همچنین CRC32 پشتیبانی می کند. میتوانید از آن برای یافتن مجموع بررسی متن و فایلها استفاده کنید.
JDigest یک ماشین حساب چکسوم منبع باز است که در ویندوز و همچنین در macOS و Linux کار میکند.
از آنجایی که همه ماشینحسابهای چکسوم از همه توابع هش رمزنگاری ممکن پشتیبانی نمیکنند، مطمئن شوید که هر ماشینحسابای که برای استفاده انتخاب میکنید، از تابع هش پشتیبانی میکند که جمع کنترلی همراه با فایلی که دانلود میکنید را تولید میکند.
سوالات متداول
آیا همه چک جمع ها منحصر به فرد هستند؟
بله. فقط فایلهایی که یکسان هستند دارای چکسوم یکسان هستند. تغییر هر چیزی غیر از نام فایل منجر به یک چکسوم متفاوت میشود.
چگونه ماشینحسابهای چکسوم جمعهای چک را محاسبه میکنند؟
ماشینگرهای مجموع بررسی از تعدادی الگوریتم از جمله بررسی برابری طولی، جمع کنترلی فلچر، Adler-32 و بررسیهای افزونگی چرخهای (CRC) استفاده میکنند.
چگونه می توانم چندین چک جمع را به طور همزمان تأیید کنم؟
میتوانید با استفاده از دستور MD5 جمعبندی چند فایل را بهطور همزمان دریافت کنید. ترمینال را باز کنید و md5 و سپس نام هر فایل (با فاصله از هم جدا شده) را تایپ کنید، سپس Enter را فشار دهید.