کد هش Hash Code چیست و چه کاربردی دارد؟

  • هش مانند اثر انگشت عمل می‌کند.
  • کدهایی هستند بر اساس الگوریتمهایی که با محاسبات بر روی فایل ها تولید می شوند.
  • عنی طبق یک سری الگوریتم هایی که بر روی فایلها محاسبات انجام میدهند برای آنها یک کد یکتایی (Unique) تولید می کنند.
  • این کد در صورتی که حتی یک bit از آن فایل عوض شود، تغییر می‌کند.
  • چون هیچ دو فایلی Hash کدی همانند هم ندارند (مگر آنکه هردو یک فایل باشند ولی با نامهای متفاوت و یا مکان‌های متفاوتی) بنابر این، می‌توان Hash کدها را همانند اثر انگشت ما انسانها دانست.
  • معکوس پذیر نیست.

هش که (Hash, Hash Code, Digest, Message Digest هم نامیده می شود) را می توان به صورت اثر انگشت دیجیتالی یک داده در نظر گرفت. با این روش شما می توانید رشته ای اندازه-ثابت (fixed length) از یک داده به دست آورید که با روش های ریاضی به صورت “یک طرفه” رمزنگاری شده است

منظور از “یک طرفه” این مفهوم است که قابل برگشت نمی باشد

برای مثال فرض کنید فرمول ما X+2 باشد ! و برای ورودی مانند ۳ خروجی ما برابر ۵ خواهد بود

حال اگر شما ۵ را در اختیار داشته باشید می توانید مقدار اولیه را به راحتی با فرمول معکوس Y-2 بدست آورید !

در روش های “یک طرفه” این امکان وجود ندارد …

کشف رشته اصلی از رشته هش آن (عملیات معکوس) به صورت کارا تقریبا غیر ممکن است. نکته دیگر اینکه هر داده یک رشته هش شده کاملا منحصر به فرد ایجاد می کند .

 

Hash Code چه کاربردی دارد؟
یکی از مهمترین کاربرد های آن، اطمینان از کامل و سالم بودن فایل دانلود شده می‌باشد. اگر فایلی ناقص دانلود شده باشد و یا حتی از لحاظ ظرفیت یکی باشند ولی کد Hash آنها با هم متفاوت باشد، نشان از درست نبودن عمل دانلود می‌باشد و یا حتی در حالاتی خاص ویروسی شدن فایل می‌تواند باعث تغییر Hash Code شود.

MD۵ یا اثر انگشت فایلها چیست ؟ 


آیا می دانید در دنیای کامپیوتر هر فایل دارای یک اثر انگشت منحصر به فرد است این اثر انگشت MD۵ Checksum یا ام دی ۵ یا Message-Digest algorithm ۵ یا کد هش /hash code نامیده می شود MD۵ معمولا در سایت های دانلود نرم افزار دیده می شود به دلیل اینکه هر تغییر کوچک و بزرگ در فایل یا برنامه سبب تغییر کلی MD۵ یا اثر انگشت آن می شود.

استفاده های فراوان MD۵ Checksum
از اثر انگشت فایل استفاده های بسیاری می شود
مثلا برای تست صحت فایل ها: برای اینکه بفهمیم در هنگام انتقال فایل ها آیا تغییری در اثر خطا یا عوض شدن با فایلی مخرب ایجاد شده است از md۵ استفاده می شود اثر انگشت هر فایل با ام دی ۵ یک کد با طول ثابت (۳۲ کاراکتر) است مثلا اگر MD۵ یا اثرانگشت فایلی به بزرگی ۱۰۰ مگابایت را با اثر انگشت فایلی به حجم چند کیلوبایت از نظر طول کد تولید شده مقایسه کنید یکسان است از این مطلب یک چیز مهم برداشت می شود : کد تولید شده توسط MD۵ یک طرفه است یعنی نمی توان از کد به فایل رسید این ویژگی باعث استفاده های بیشتری از MD۵ Check sum می شود مثلا بعضی برنامه نویسان برای چک کردن صحت یک رمز / پسورد از md۵ استفاده می کنند یا بعضی از انتی ویروس ها کد md۵ ویروس ها را در دیتابیس خود ذخیره کرده و در هنگام اسکن فایل اثر انگشت فایل را تولید و با پایگاه داده ی خود مقایسه می کنند که البته این روشهای استفاده پسندیده نیست و مثلا می توان با تغییری بسیار کوچک مثلا افزودن چند بیت بی مصرف به ویروس یا فایل مخرب کد MD۵ Checksum آن را تغییر داد
همچنین در سال ۲۰۰۷ گروهی از محققان شامل Arjen Lenstra روشی را شرح کردند که با آن می توان دو فایل با یک اثر انگشت تولید کرد ولی باید توجه داشت که مساوی شدن کد ام دی ۵ دوفایل یک در عدد ۳.۴ در ۱۰ به توان ۳۴ است. در ویکیپدیا و همچنین نرم افزار هایی به نام هایی چون md۵ crack یا MD۵CRK برای پیدا کردن رمز های کد شده توسط md۵ وجود دارند.

اما استفاده از md۵ برای کاربران اینترنت 
برای استفاده از md۵ برای چک کردن اینکه آیا فایل دانلود شده به صورت کامل است و اینکه فایل توسط ویروسی آلوده نشده و غیره باید در صفحه ی دانلود نرم افزار یا فایل به دنبال کد md۵ آن بگردید و بعد از دانلود و تولید کد md۵ با نرم افزاری که در ادامه توضیح داده شده است و چک کردن برابری دو کد تولید شده اگر برابر بود فایل کاملا درست بوده و اگر برابر نیودند معلوم می شود که یا فایل ناقص دانلود شده است یا یک فایل دیگر دانلود شده یا فایل تغییر یافته و توسط ویروسی آلوده شده است

بهترین نرم افزار تولید اثر انگشت فایل یا MD۵ Checksum 
چطور کد md۵ را تولید کنیم؟ در سیستم عامل های لینوکس ،یونیکس وغیره به جز ویندوز ابزارهایی برای تولید کد md۵ وجود دارد برای ویندوز نیز ابزارهای فروانی وجود دارد
با باز کردن این برنامه پنجره ی انتخاب فایل ظاهر می شود و با انتخاب فایل یا برنامه ی مورد نظر ، کد md۵ آن محاسبه شده و نمایش داده می شود
در صورتی که حجم فایل بالا باشد تولید کد کمی زمان می برد و در این زمان پنجره ی دیگری که میزان محاسبه ی کد را نمایش می دهد را دربر دارد همچنین می توانید با راست کلیک بر پنجره ی برنامه و انتخاب گزینه ی context menu Association می توان به راحتی و با راست کلیک روی هر فایلی کد MD۵ Checksum را تولید کرد.