الگوریتم هش یک تابع ریاضی پیچیده است که یک ورودی از داده ها را به یک خروجی از داده های دیگر تبدیل میکند.
برای انجام این کار شرایطی وجود دارد که عبارت اند:
- داده ی ورودی می تواند هر طول دلخواهی داشته باشد
- برای هر ورودی خروجی یکسان و منحصربفرد تولید می شود.
- یک تابع یک طرفه می باشد. یعنی هیچ الگوریتمی وجود ندارد که بتواند داده ی اولیه را از خروجی یک تابع هش استخراج نماید.
- کوچکترین تغییر در داده ی ورودی آنچنان تغییر فاحشی در خروجی تولید می کند که تقریبا تمامی کاراکترهای خروجی عوض خواهند شد
هشینگ پسورد (Password hashing) چیست و چرا در وب سایت ها از آن استفاده می شود؟
هر کاربری که برای اولین بار در وب سایت ثبت نام کرده است و پسوردی را برای خود تعیین کرده است، آن پسورد بصورت هش شده، برای وی ثبت و نگهداری خواهد شد. به این روش، هشینگ پسورد یا Password hashing در وب سایت گفته می شود.
هشینگ پسورد در یک وب سایت، بدلیل بالا بردن امنیت آن وب سایت صورت می گیرد.
مکانیزم لاگین در وب سایت هایی که از هشینگ پسورد استفاده می کنند:
هر بار که کاربری که قبلا در وب سایت ثبت نام کرده است، می خواهد لاگین کند. پسورد وارد شده مجددا بصورت هش در می آید و سپس با مقدار هش شده ی داخل پایگاه داده مقایسه می شود تا اطمینان حاصل گردد که پسورد بصورت صحیح وارد شده است یا خیر.
مکانیزم رفع مشکل کاربرانی که پسورد خود را فراموش کرده اند
در این وب سایت ها، در هنگام کلیک بر روی لینک یا دکمه ی “پسورد خود را فراموش کرده ام”، یک لینک تجدید پسورد (Password Reset) به ایمیل کاربر ارسال می گردد و کاربر از این طریق می تواند پسورد جدیدی را برای خود در وب سایت مذکور ثبت کند. البته پسورد جدید بازهم بصورت هش شده در پایگاه داده ی آن وب سایت ذخیره خواهد شد.