خانه / بلاگ / Hash Code چیست و چه کاربردی دارد؟

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

hashcode

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

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

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

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

استفاده های فراوان MD5 Checksum

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

اما استفاده از md5 برای کاربران اینترنت

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

بهترین نرم افزار تولید اثر انگشت فایل یا MD5 Checksum چطور کد md5 را تولید کنیم ؟ در سیستم عامل های لینوکس ،یونیکس وغیره به جز ویندوز ابزارهایی برای تولید کد md5 وجود دارد برای ویندوز نیز ابزارهای فروانی وجود دارد.

با باز کردن این برنامه پنجره ی انتخاب فایل ظاهر می شود و با انتخاب فایل یا برنامه ی مورد نظر ، کد md5 آن محاسبه شده و نمایش داده می شود
در صورتی که حجم فایل بالا باشد تولید کد کمی زمان می برد و در این زمان پنجره ی دیگری که میزان محاسبه ی کد را نمایش می دهد را دربر دارد همچنین می توانید با راست کلیک بر پنجره ی برنامه و انتخاب گزینه ی context menu Association می توان به راحتی و با راست کلیک روی هر فایلی کد MD5 Checksum را تولید کرد.

دوستداران و عشاق فایرفاکس هم می توانند از افزونه های فراوان فایرفاکس که دارای همچین امکانی هستند استفاده کنند .

نقد و بررسی

User Rating: ۲٫۰۳ ( ۲ votes)

درباره ی آریـان پــور

سلام . آریــان پور هستم . از نویسندگان میکروپـدیا .. علاقه مــند به برنامه نویسی و طراحی وب و شبکه ! دیدگاه ها و نظرات شما دوستان بررسی میشه و باعث دلگرمـی برای نوشتن مطالب بهتر و به روزتر . در تماس باشید با : aryanpour [at] micropedia [dot] ir با مـا همراه باشید ..

همچنین ببینید

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

میزان تقاضا برای ورود به رشته های تحصیلی مانند مهندسی نرم افزار، سخت افزار، آی …

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پاسخ عبارت زیر را وارد کنید: *