کد هش یکی از موارد امنیتی است که با مفهوم یکتایی اثر انگشت انسان برابری می نماید. در این مقاله تیم پی سی اسکریپت در خصوص مزایای کد هش صحبت خواهد نمود.
کد هش یا hash code چیست؟
همانطوری که تمامی انسان ها دارای اثر انگشت منحصر به فرد میباشند، تمامی فایلها نیز میتوانند به یک کد هش 32 رقمی اختصاص داد. که اختصاص آن نیز بر اساس الگوریتم خاص و برای هر فایل با هر سایز بصورت یک کد واحد و غیر تکراری ایجاد میگردد. هنگام ایجاد hash code برای یک فایل، کد بدست آمده به هیچ عنوان برای سایر فایل ها استفاده نخواهد شد و امکان تکرار آن نیز وجود ندارد و حتی در صورتی که 1 بیت فایل نیز تغییر کند، hash code ایجاد شده نیز 100 درصد تغییر خواهد کرد و امکان تکرار آن نیز وجود ندارد.
پس نتیجه میگیریم که تمامی فایل های دارای سایز یکسان و محتوای یکسان دارای یک کد واحد هش میباشند، که حتی در صورت تغییر نام نیز کد هش ایجاد شده تغییر نخواهد نمود، مگر آنکه محتوای آن تغییر پیدا کند. با این توضیح در مورد hash code فکر کنم کاربردهای این کد و کلا فلسفه وجودی آن برای شما قابل درک باشد.
نحوه عملکر کد هش:
به عنوان مثال شما در یک شرکت هاستینگ سایت خود را میزبانی نموده اید. بعد از اتمام سایت و یا در زمان های دلخواه در صورتی که شما دسترسی به سیستم دانلود فول را نداشته باشید، میتوانید از شرکت هاستینگ خود درخواست کنید که از هاست شما فول بک آپ تهیه کنند و لینک دانلود آنرا برای شما ارسال کنند.
از آنجایی که صحت فایل بک آپ گرفته شده بعد از دانلود بسیار مهم میباشد و احتمال دارد فایل هنگام دانلود قسمتی از اطلاعات را از دست بدهد و یا ناقص دانلود شود، نیاز هست که شما hash code فایل دانلود شده را با hash code فایل موجود در سرور مقایسه کنید تا اطمینان داشته باشید که بک آپ دانلود شده بصورت سالم میباشد. چرا که شما به هیچ عنوان در صورت عدم دسترسی به سرور امکان تست فایل های فول بک آپ را ندارید و ممکن است به همین دلیل در آینده به دلیل وجود فایل بک آپ ناقص دانلود شده یا مشکل دار تجارت شما به خطر بیافتد.
یکی از الگوریتم های کاربردی که معمولا اکثر فایل ها توسط این الگوریتم کدگذاری میگردد، الگوریتم MD5 میباشد. این الگوریتم که بهبود یافته نسخه قبل خود یعنی MD4 میباشد، از امینت مناسبی برخوردار میباشد و طراحی آن نیز بصورت 32 بیتی یکسان میباشد بدین شرایط که شما هر فایل، متن و … به این الگوریتم ارائه دهید، مقدار بازگشتی آن یک رشته 32 بیتی خواهد بود که به هیچ عنوان امکان کدگذاری برعکس آن نیز وجود نخواهد داشت.
روش تولید MD5 چگونه است؟
در تمامی زبان های برنامه نویسی و همچنین سیستم عامل های متفاوت روش های مختلفی برای تولید یک هش کد وجود دارد. البته هش کد های ایجاد شده بر اساس ورودی عمل میکند. پس روش ایجاد هش کد برای یک رشته کاراکتر میتواند بسیار ساده تر از ایجاد هش کد برای یک فایل 10 گیگا بایتی میباشد.
توابع بسیار زیادی بصورت آماده برای تمامی زبان های برنامه نویسی وجود دارد که شما میتوانید به هنگام ذخیره رشته کارکترهای خود آنها را تبدیل به هش کنید .
همچنین برخی از سایتها نیز وجود دارد که شما میتواند بصورت آنلاین از مبدل های آن جهت تولید هش کد استفاده کنید.
در سیستم عامل های مختلف نیز روش های گوناگونی برای ایجاد هش کد وجود دارد. به عنوان مثال در سیستم عامل لینوکس توزیع centos شما میتوانید با دستور ساده زیر برای فایل مدنظر خود یک هش کد از نوع MD5 ایجاد کنید.
1
|
md5sum yourfilename.zip
|
بعد از اجرای دستور فوق یک کد واحد 32 بیتی به شما ارائه خواهد شد که به عبارت دیگر اثر انگشت شناسایی فایل فوق میباشد.