وقتی یک فایل نصب، تصویر دیسک یا بسته نرم‌افزاری دانلود می‌کنید، یک سؤال مهم این است که آیا همان فایل منتشرشده توسط منبع رسمی به دست شما رسیده است. مقدار هش مانند اثر انگشت دیجیتال فایل است: با تغییر محتوا معمولاً عوض می‌شود. بااین‌حال، هش فقط وقتی معنا دارد که مقدار مرجع را از منبع قابل اعتماد گرفته باشید. در این راهنما روش عملی SHA-256 در ویندوز و محدودیت آن را می‌بینید. برای باز کردن پیوندهای ناشناس با احتیاط، خطرهای اسکن کد QR ناشناس را نیز بررسی کنید.

خلاصه کلیدی
  • تابع هش، محتوای فایل را به رشته‌ای با طول مشخص تبدیل می‌کند.
  • به صفحه رسمی دانلود همان محصول، نسخه و معماری سیستم بروید.
  • PowerShell را باز کنید و دستور Get-FileHash را برای مسیر کامل فایل اجرا کنید.
  • در macOS می‌توان از فرمان shasum -a 256 /path/to/file استفاده کرد.

هش فایل چیست و چه چیزی را ثابت می‌کند؟

تابع هش، محتوای فایل را به رشته‌ای با طول مشخص تبدیل می‌کند. برای SHA-256 این رشته در نمایش معمول، ۶۴ نویسه شانزده‌شانزدهی دارد. اگر هش فایل شما دقیقاً با مقدار رسمی یکسان باشد، این تطابق شاهدی قوی است که فایل در مسیر دریافت تغییر نکرده است؛ اما به‌تنهایی امن بودن برنامه را ثابت نمی‌کند.

دو فایل با محتوای متفاوت معمولاً هش متفاوتی دارند. تغییر یک بایت، مقدار خروجی را عوض می‌کند. بنابراین مقایسه هش برای تشخیص دانلود ناقص، خراب شدن فایل یا جایگزینی آن مفید است. این روش به نام فایل وابسته نیست: تغییر نام بدون تغییر محتوا، هش را عوض نمی‌کند. همچنین اندازه یکسان دو فایل به معنی محتوای یکسان نیست؛ هش آزمون دقیق‌تری برای آن است.

محدودیت اصلی در منبع مقدار مرجع است. اگر هم فایل و هم مقدار SHA-256 را از یک صفحه نامعتبر بگیرید، تطابق آن‌ها فقط نشان می‌دهد آن صفحه دو چیز سازگار در اختیار شما گذاشته است. برای بررسی اصالت، مقدار مرجع باید از وب‌سایت رسمی یا کانال مستقل و مورد اعتماد سازنده باشد. امضای دیجیتال معتبر می‌تواند لایه بررسی دیگری اضافه کند، ولی خود آن هم باید درست اعتبارسنجی شود.

مقدار مرجع SHA-256 را از کجا پیدا کنیم؟

به صفحه رسمی دانلود همان محصول، نسخه و معماری سیستم بروید. سازندگان گاهی کنار لینک دانلود، فایلی با پسوند checksum یا متنی با عنوان SHA-256 منتشر می‌کنند. مقدار را برای همان نسخه و همان فایل بردارید؛ هش نسخه قدیمی یا بسته زبان دیگر با دانلود فعلی یکسان نخواهد بود.

نشانی سایت را با دقت ببینید. شباهت ظاهری دامنه، تبلیغ در نتایج جست‌وجو یا یک پست در انجمن به‌تنهایی مرجع رسمی نمی‌سازد. اگر صفحه رسمی مقدار هش منتشر نکرده، از عددی که در سایت‌های ناشناس پیدا می‌کنید برای اعلام «اصالت تأیید شد» استفاده نکنید. می‌توانید به روش‌های دیگری مثل امضای ناشر، بسته رسمی فروشگاه نرم‌افزار یا بررسی راهنمای سازنده رجوع کنید.

مقدار مرجع را کامل کپی کنید و فاصله یا نویسه اضافی را حذف کنید. برخی صفحه‌ها نام فایل را کنار هش در یک خط می‌نویسند؛ فقط بخش مربوط به هش را با خروجی خود مقایسه کنید. راهنمای مایکروسافت برای بررسی فایل ISO ویندوز نمونه‌ای از انتشار مقدار SHA-256 مرجع برای یک فایل مشخص است.

در ویندوز با PowerShell چگونه هش بگیریم؟

PowerShell را باز کنید و دستور Get-FileHash را برای مسیر کامل فایل اجرا کنید. نمونه ساده این است: Get-FileHash -Path "C:\Downloads\example.iso" -Algorithm SHA256. مسیر نمونه را با مسیر واقعی فایل خود عوض کنید. خروجی ستون Hash را با مقدار رسمی، نویسه‌به‌نویسه مقایسه کنید.

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

طبق مستندات رسمی Get-FileHash، الگوریتم پیش‌فرض SHA-256 است، اما نوشتن صریح -Algorithm SHA256 ابهام را کم می‌کند. همین مستندات هشدار می‌دهد MD5 و SHA-1 برای کاربردهای امنیتی در برابر برخورد مقاوم نیستند. اگر سازنده SHA-256 داده، با همان الگوریتم محاسبه کنید؛ مقایسه خروجی الگوریتم‌های متفاوت بی‌معنی است.

مقایسه دو رشته هش روی نمایشگر کامپیوتر
مقایسه دو رشته هش روی نمایشگر کامپیوتر

در macOS و لینوکس چه دستوری به کار می‌رود؟

در macOS می‌توان از فرمان shasum -a 256 /path/to/file استفاده کرد. در بسیاری از توزیع‌های لینوکس فرمان sha256sum /path/to/file در دسترس است. خروجی معمولاً شامل مقدار هش و نام فایل است. مانند ویندوز، باید مقدار هش را با مرجع رسمی همان فایل مقایسه کنید.

اگر مسیر فایل فاصله دارد، آن را داخل نقل‌قول مناسب پوسته قرار دهید. در macOS می‌توانید فایل را به Terminal بکشید تا مسیر آن درج شود. در لینوکس نیز تکمیل خودکار مسیر با کلید Tab احتمال خطای تایپی را کمتر می‌کند. اجرای دستور هش، برنامه را نصب یا اجرا نمی‌کند؛ این یک بررسی محتوا قبل از استفاده است. البته فایل بسیار بزرگ ممکن است چند لحظه تا چند دقیقه برای خوانده شدن زمان ببرد.

نام خروجی فرمان در دو سیستم متفاوت است، ولی الگوریتم SHA-256 یکسان است. اگر یک فایل واحد را در چند سیستم بدون تغییر بررسی کنید، مقدار باید یکسان باشد. تفاوت خروجی معمولاً یعنی فایل واقعاً یکسان نیست، مسیر اشتباه انتخاب شده، یا متن مرجع به نسخه دیگری تعلق دارد. قبل از دانلود دوباره، این احتمال‌های ساده را بررسی کنید.

اگر هش‌ها برابر نبودند چه کنیم؟

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

تفاوت حتی یک نویسه به معنی تطابق نداشتن است؛ لازم نیست حدس بزنید اختلاف «کوچک» قابل قبول است. گاهی سازنده فایل را بدون تغییر نام به‌روزرسانی کرده، ولی مقدار هش صفحه قدیمی مانده است. در این حالت باید از پشتیبانی یا اطلاعیه رسمی درباره نسخه فعلی مطمئن شوید. اعلام قطعی آلودگی فایل از صرف نابرابری هش درست نیست، چون خطای دریافت یا انتخاب نسخه هم ممکن است.

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

آیا برابر بودن هش یعنی فایل کاملاً امن است؟

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

برای نمونه، سایتی مخرب می‌تواند هم فایل دست‌کاری‌شده و هم هش همان فایل را منتشر کند. شما تطابق می‌بینید، اما اصالت سازنده تأیید نشده است. در مقابل، اگر هش را از کانال رسمی مستقل گرفته‌اید و با دانلود یکسان است، احتمال تغییر در مسیر انتقال کمتر می‌شود. این تفاوت دقیقاً علت اهمیت منبع checksum است.

برای فایل اجرایی ویندوز، اطلاعات امضای دیجیتال و نام ناشر نیز قابل بررسی است، اما وجود یک امضا به‌تنهایی کافی نیست. باید اعتبار گواهی، زنجیره اعتماد و تعلق آن به ناشر مورد انتظار بررسی شود. اگر از کار با این جزئیات مطمئن نیستید، دانلود مستقیم از منبع رسمی و به‌روز نگه داشتن سیستم انتخاب ساده‌تری است. درباره حساب مهمان و محدود کردن دسترسی در ویندوز نیز راهنمای جداگانه‌ای داریم؛ این موضوع با اعتبار فایل فرق دارد.

چه اشتباه‌هایی نتیجه مقایسه را گمراه می‌کند؟

مقایسه هش دو نسخه متفاوت، استفاده از الگوریتم اشتباه و گرفتن مقدار مرجع از سایت نامعتبر، خطاهای رایج‌اند. استخراج فایل فشرده هم محتوای قابل هش را عوض می‌کند؛ باید همان فایل دانلودشده را با checksum منتشرشده برای همان بسته مقایسه کنید، مگر اینکه سازنده خلاف آن گفته باشد.

گاهی صفحه رسمی برای چند معماری، مثل ۶۴ بیتی و ARM، چند مقدار کنار هم می‌گذارد. انتخاب ردیف اشتباه باعث نابرابری می‌شود. همچنین برخی دانلودها پس از باز کردن مرورگر به نامی با شماره تکراری ذخیره می‌شوند و فرد فایل قدیمی را هش می‌گیرد. مسیر کامل خروجی Get-FileHash را ببینید تا مطمئن شوید همان فایل مدنظر است.

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

چه زمانی بررسی هش ارزش دارد؟

برای تصویرهای دیسک، فایل‌های نصب سیستم‌عامل، بسته‌های بزرگ و نرم‌افزارهایی که سازنده checksum رسمی منتشر می‌کند، بررسی هش اقدام مفیدی است. برای فایل‌های کوچک هم ممکن است کاربرد داشته باشد، اما شرط اصلی وجود مقدار مرجع معتبر است. در نبود آن، محاسبه هش به‌تنهایی اصالت را روشن نمی‌کند.

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

در سازمان، ممکن است رویه رسمی برای توزیع نرم‌افزار وجود داشته باشد. آن رویه و راهنمای سازنده را در اولویت قرار دهید. اگر فایل را از پیام‌رسان یا ایمیل دریافت کرده‌اید و فرستنده صرفاً یک هش در همان پیام داده، تطابق نشان نمی‌دهد پیام یا فایل واقعاً از ناشر اصلی است. در چنین وضعی تأیید از کانال رسمی مستقل ضروری‌تر از محاسبه دوباره است.

جمع‌بندی

برای بررسی فایل دانلودشده، SHA-256 آن را با ابزار محلی محاسبه و با مقدار رسمی همان نسخه مقایسه کنید. نابرابری یعنی فایل را تا روشن شدن علت اجرا نکنید. برابری، یکسان بودن محتوا با مرجع را پشتیبانی می‌کند، اما امن بودن نرم‌افزار یا اعتبار منبعی نامطمئن را ثابت نمی‌کند.

سوالات متداول
آیا برای محاسبه هش باید فایل را باز کنم؟

خیر. ابزارهایی مانند Get-FileHash فایل را می‌خوانند و مقدار را بدون اجرای برنامه محاسبه می‌کنند.

چرا SHA-256 را به MD5 ترجیح می‌دهند؟

SHA-256 برای کاربرد امنیتی مناسب‌تر است. مستندات PowerShell نیز MD5 و SHA-1 را به دلیل ضعف در برابر برخورد برای این کاربرد توصیه نمی‌کند.

اگر سایت رسمی هش منتشر نکرده چه کنم؟

عدد یک سایت ناشناس را مرجع قطعی نگیرید. از کانال رسمی، امضای معتبر یا روش توزیع مورد اعتماد سازنده استفاده کنید.

منابع
نوشته قبلی