ویرگول
ورودثبت نام
علی اکبر ظهور
علی اکبر ظهور
خواندن ۴ دقیقه·۳ سال پیش

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

امروز میخوام به شما بهترین و امن ترین هش ها ( hash function ) برای رمز نگاری وب رو معرفی کنم و هر کدوم رو برای شما مقایسه کنم . اگر برنامه نویس وب هستید این مطلب برای شما مناسبه .

موضوع چیه ؟

اگر برنامه نویسی وب انجام میدید ( مخصوصا بک اند ) , مجبورید که اطلاعات کاربر رو از سمت فرانت دریافت کنید و اون ها رو رمز نگاری کنید . چرا باید این کار رو انجام بدید ؟ برای اینکه جلوی هکر ها رو بگیرید تا به اطلاعات کاربران شما دسترسی پیدا نکنن .

معمولا برنامه نویس ها از الگوریتم های مختلفی برای رمز نگاری استفاده میکنن و هر کدوم هم به نظر خودشون مناسب هست , ولی من با توجه به ترند های جهانی امروز میخوام بهتون بگم که کدوم روش رمز نگاری نسبتا امن تر هستش .

شما برای رمز نگاری کردن اطلاعات کاربران نیاز به هش فانکشن ها دارید . . .

هَش فانکشن Hash Function چیست ؟

به زبان خیلی ساده , هش فانکشن ها , تابع هایی هستند که اطلاعات رو دریافت میکنن و اون ها رو رمز نگاری میکنن . مثلا ۱۲۳ میشه khj@#%jksjdf@$(jdkj .

یک هش فانکشن باید خاصیت های زیر رو داشته باشه :

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

این ها به طور کلی خاصیت های یک هش فانکشن هستن , ولی معمولا هش ها طول ثابتی دارن که اون ها رو قابل هک میکنه و معمولا هم کاریش نمیشه کرد .

بهترین هش فانکشن ها

چندین هش فانکشن وجود داره که با وجود آسیب پذیری های گزارش شده , باز هم امنیت رو برقرار میکنن وتا حد زیادی قابل قبول هستن . به طور کلی هیچ روش رمز نگاری ایده آلی وجود نداره که غیر قابل هک باشه . چند تا از هش فانکشن های معروف رو معرفی کنم و اگر دوست داشتین مطالب رو عمیق تر یاد بگیرین با سرچ شروع به یادگیری کنید .

رمز نگاری MD5

این نوع هش فانکشن رمز های ۱۲۸ بیتی تولید میکنه که در چند سال گذشته با آسیب پذیری هایی که از این هش فانکشن پیدا شد دیگه امنیت سابق رو نداره , ولی هنوز هم برای انتقال فایل ها از این هش فانکشن استفاده میکنن .

خوانواده sha

عبارت SHA مخفف Secure Hash Algorithm هستش و خانواده sha معمولا بین هش فانکشن ها در تمام زبان های برنامه نویسی معروف هستن و تا حد قابل قبولی عملیات رمز نگاری رو انجام میدن و من سه تا از بهترین ها رو معرفی میکنم .

1 - SHA1

این یکی از اولین الگوریتم های رمز نگاری این حوزه بوده و در عین حال خیلی هم خوب عمل کرده ( البته تا جایی که من اطلاع دارم ) . این نوع هش فانکشن , هش هایی با طول ۱۶۰ بیت تولید میکنه و به طور خیلی جالبی از md5 نا امن تره !

2 - SHA2

شاید بگم که این نوع الگوریتم , بهترین روش رمز نگاری محسوب میشه . sha2 انواع مختلفی داره که معروف ترین اون ها sha256 هستش که نسبت به md5 و sha1 امنیت خیلی بیشتری داره , به جای استفاده از md5 و sha1 , از این نوع الگوریتم استفاده کنید .

از نظر سریع بودن , باید بگم که به طور کلی این الگوریتم , ۲۰ درصد از md5 و sha1 کند تره !‌ ولی به نظر من ارزش امنیت رو داره . و این الگوریتم , هش هایی با طول ۲۵۶ بیت تولید میکنه .


به طور کلی این چند مدل رمز نگاری خیلی محبوب و ایمن هستن و در حال حاضر خیلی استفاده میشن . ولی شما میتونید دنبال چیز های جدید تر و بهتر برای جایگزین کردن باشید . اگر میخواین نحوه استفاده کردن از این هش فانکشن ها رو یاد بگیرید , میتونید یه سرچ ریز بزنید . معمولا زبان های برنامه نویسی به طور پیشفرض این هش فانکشن ها رو داخل خودشون دارن و نیازی به ایمپورت نیست .

نتیجه گیری

من متخصص رمز نگاری نیستم و فقط دانسته هام رو به اشتراک گذاشتم . اگر این نوشته مشکلی داشت شما آزاد به انتقاد هستید و میتونید که ایراد کار رو بگیرید . دونستن این مدل از اطلاعات خیلی میتونه به برنامه نویس ها کمک کنه و من هم میخواستم با انتشار دادن این مطلب , کمکی به برنامه نویس ها کرده باشم.


سالم و سلامت باشید . . .


رمز نگاریبرنامه نویسیهشhashبک اند
محتوای کاربردی در زمینه برنامه نویسی و مهندسی نرم افزار تولید میکنم و سعی میکنم تا تجربیات خودم رو مطرح کنم . صفحه لینکدین من : https://www.linkedin.com/in/aliakbarzohour/
شاید از این پست‌ها خوشتان بیاید