امروز میخوام به شما بهترین و امن ترین هش ها ( hash function ) برای رمز نگاری وب رو معرفی کنم و هر کدوم رو برای شما مقایسه کنم . اگر برنامه نویس وب هستید این مطلب برای شما مناسبه .
اگر برنامه نویسی وب انجام میدید ( مخصوصا بک اند ) , مجبورید که اطلاعات کاربر رو از سمت فرانت دریافت کنید و اون ها رو رمز نگاری کنید . چرا باید این کار رو انجام بدید ؟ برای اینکه جلوی هکر ها رو بگیرید تا به اطلاعات کاربران شما دسترسی پیدا نکنن .
معمولا برنامه نویس ها از الگوریتم های مختلفی برای رمز نگاری استفاده میکنن و هر کدوم هم به نظر خودشون مناسب هست , ولی من با توجه به ترند های جهانی امروز میخوام بهتون بگم که کدوم روش رمز نگاری نسبتا امن تر هستش .
شما برای رمز نگاری کردن اطلاعات کاربران نیاز به هش فانکشن ها دارید . . .
به زبان خیلی ساده , هش فانکشن ها , تابع هایی هستند که اطلاعات رو دریافت میکنن و اون ها رو رمز نگاری میکنن . مثلا ۱۲۳ میشه khj@#%jksjdf@$(jdkj .
یک هش فانکشن باید خاصیت های زیر رو داشته باشه :
این ها به طور کلی خاصیت های یک هش فانکشن هستن , ولی معمولا هش ها طول ثابتی دارن که اون ها رو قابل هک میکنه و معمولا هم کاریش نمیشه کرد .
چندین هش فانکشن وجود داره که با وجود آسیب پذیری های گزارش شده , باز هم امنیت رو برقرار میکنن وتا حد زیادی قابل قبول هستن . به طور کلی هیچ روش رمز نگاری ایده آلی وجود نداره که غیر قابل هک باشه . چند تا از هش فانکشن های معروف رو معرفی کنم و اگر دوست داشتین مطالب رو عمیق تر یاد بگیرین با سرچ شروع به یادگیری کنید .
این نوع هش فانکشن رمز های ۱۲۸ بیتی تولید میکنه که در چند سال گذشته با آسیب پذیری هایی که از این هش فانکشن پیدا شد دیگه امنیت سابق رو نداره , ولی هنوز هم برای انتقال فایل ها از این هش فانکشن استفاده میکنن .
عبارت SHA مخفف Secure Hash Algorithm هستش و خانواده sha معمولا بین هش فانکشن ها در تمام زبان های برنامه نویسی معروف هستن و تا حد قابل قبولی عملیات رمز نگاری رو انجام میدن و من سه تا از بهترین ها رو معرفی میکنم .
این یکی از اولین الگوریتم های رمز نگاری این حوزه بوده و در عین حال خیلی هم خوب عمل کرده ( البته تا جایی که من اطلاع دارم ) . این نوع هش فانکشن , هش هایی با طول ۱۶۰ بیت تولید میکنه و به طور خیلی جالبی از md5 نا امن تره !
شاید بگم که این نوع الگوریتم , بهترین روش رمز نگاری محسوب میشه . sha2 انواع مختلفی داره که معروف ترین اون ها sha256 هستش که نسبت به md5 و sha1 امنیت خیلی بیشتری داره , به جای استفاده از md5 و sha1 , از این نوع الگوریتم استفاده کنید .
از نظر سریع بودن , باید بگم که به طور کلی این الگوریتم , ۲۰ درصد از md5 و sha1 کند تره ! ولی به نظر من ارزش امنیت رو داره . و این الگوریتم , هش هایی با طول ۲۵۶ بیت تولید میکنه .
به طور کلی این چند مدل رمز نگاری خیلی محبوب و ایمن هستن و در حال حاضر خیلی استفاده میشن . ولی شما میتونید دنبال چیز های جدید تر و بهتر برای جایگزین کردن باشید . اگر میخواین نحوه استفاده کردن از این هش فانکشن ها رو یاد بگیرید , میتونید یه سرچ ریز بزنید . معمولا زبان های برنامه نویسی به طور پیشفرض این هش فانکشن ها رو داخل خودشون دارن و نیازی به ایمپورت نیست .
من متخصص رمز نگاری نیستم و فقط دانسته هام رو به اشتراک گذاشتم . اگر این نوشته مشکلی داشت شما آزاد به انتقاد هستید و میتونید که ایراد کار رو بگیرید . دونستن این مدل از اطلاعات خیلی میتونه به برنامه نویس ها کمک کنه و من هم میخواستم با انتشار دادن این مطلب , کمکی به برنامه نویس ها کرده باشم.
سالم و سلامت باشید . . .