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

برخی از کاربردهای هش:

جلوگیری از داده تکراری:فرض کنید یک سایت بارگزاری و نگهداری از فایل دارید،برای جلوگیری از بارگزاری از فایلهای تکراری چه میکنید؟ نام فایل را چک میکنید؟ خوب به راحتی با تغییر نام فایل میشود این اعتبار سنجی را بی اثر کرد.در اینجا هش به کمک میاد.کافیست هش هر فایل را با هش فایلهای ذخیره شده  مقایسه کنید و اگر هش مشابه وجود داشت یعنی این فایل قبلا بارگزاری شده است،این روش مبنای IPFS(فضای ذخیره سازی بین سیاره ای ) و NFT(توکن های غیر مثلی ) میباشد.

 

اعتبار سنجی فایل: حتما در هنگام دانلود برخی از نرم افزار ها از سایتهای اصلی در کنار نام فایل برای دانلود به کدهای رمز شده ای با نام MD5  یا SHA256  در جلوی نام فایل بر خورده اید.خوب این ها کدهای هش فایل مورد نظر در الگوریتم های MD5  و SHA256  میباشد.حتما میپرسید فایده ان چیست؟جواب خیلی راحت و مفید است.چنانچه شما فایل مشابه از سایتهای غیر اصلی و توزیع کنندهنرم افزار دانلود میکنید میتوانید با مقایسه هش سایت اصلی و خروجی هش نرم افزار های هش فایل (در اینترنت بسیار زیاد است) متوجه شوید که فایل اصلی میباشد و یا تغییری در ان ایجاد شده (ماننده اضافه شدن تروجان ها به فایلها برای تخریب اطلاعات)

 

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

 

جلوگیری از تغییر دستی بانک اطلاعاتی:این روشی هست که پایه و اساس بلاک چین میباشد و با هش کردن اطلاعات تراکنش ها و بلاک ها از تغییر آنها جلوگیری میشود تا اطلاعات همیشه امن و صحیح ذخیره گردند.این روش در آشنایی و پیاده سازی بلاک چین کامل توضیح داده شده است.

 

 

ویژگی های رمزنگاری توابع هش:

  • قطعی و ثابت :

یعنی اینکه هر بار که یک مقدار ورودی خاص را به توابع بدهید فقط یک رشته هش شده به شما بدهد .یا به عبارت دیگر همیشه Hash(A) =Hash(A) میباشد.

  • محاسبات سریع :

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

  • غیرقابل بازگشت :

یعنی اینکه با داشتن Hash(A) نمیتوان A را محاسبه کرد .(البته بانکهای اطلاعاتی برای حروف و کلمات و اعداد برای الگوریتم های معروف و پرکاربد وجود دارد،اما در بلاک چین همچنان از هش استفاده میشود و همچنان امن هستند که در مبانی بلاک چین دلیل آن توضیح داده شده است)

  • تغییر کوچک تغییر بزرگ:

این ویژگی بیان میکند که اگر یک تغییر کوچک در ورودی دهید تغییرات زیادی را در مقدار هش شده مشاهده خواهید کرد.

با توجه به توضیحات بالا:

هش یک تابع برای رمزگزاری یک طرفه(بدون بازگشت) اطلاعات میباشد که همیشه برای ورودی یکسان خروجی یکسان برمیگرداند و بدون توجه به طول ورودی ،طول خروجی همیشه ثابت است(البته در بیشتر الگوریتم ها).