Mohammad Rabiee
Mohammad Rabiee
خواندن ۲ دقیقه·۳ سال پیش

آشنایی با محبوب‌ترین الگوریتم‌های Hashing

در مقاله ی گذشته که درباره ی انواع روش های مختلف رمزنگاری اطلاعات صحبت کردیم با الگوریتم های برگشت ناپذیر آشنا شدیم وآموختیم که داده های ما اصطلاً Hash میشوند و به هیچ عنوان قبل بازگشت به متن اصلی نیستند.
از جمله الگوریتم های Hashing که در رمزنگاری از آنها استفاده میشود میتوان به عناوین زیر اشاره نمود که در این مقاله به بررسی آنها میپردازیم.
✓ SHA1
 ✓ SHA256
✓ MD5  
الگوریتم SHA یکی از الگوریتم های Hashing است. SHA دارای انواع مختلف از قبیل SHA1 و SHA256 است.

SHA1

اثبات شده است که الگوریتم SHA1 به ازای رشته های ورودی های متفاوت ممکن است خروجی مشابهی داشته باشد. همانطور که گفته شد الگوریتم های Hashing رشته هایی برگشت ناپذیر ایجاد میکنند و صرفا قابل تطبیق با رشته اصلی هستند؛ اگر یک الگوریتم از دو رشته ورودی مختلف Hash های مشابهی تولید کند آن گاه طبیعتا هر دو رشته  اصلی با Hash مطابق خواهد بود و قابل تایید میباشد و این نقص میتواند خطراتی به همراه داشته باشد. از این رو این الگوریتم به پایان نقش خود در اکثر سیستم های اطلاعاتی رسیده است.

الگوریتم SHA256

یکی از پرکاربردترین و ایمن ترین الگوریتم های Hashing است. قطعه کد #C عملیات Hashing و Verify این الگوریتم در ذیل آورده شده است.

https://gist.github.com/rabieedev1996/c71536e0462ca85ecd310c5a270a81de

قطعه کد فوق با وجود استفاده از الگوریتم SHA256 از نهایت اطمینان برخوردار نیست. از این رو در اکثر موارد ابتدا داده اصلی را Hash و سپس آن را با استفاده از الگوریتم RSA، و کلید خصوصی Sign میکنند تا در هنگام تبادل اطلاعات و یا دسترسی افراد غیر مجاز از امنیت بالاتری برخوردار باشد. پس از توضیحات الگوریتم RSA در مقاله ی بعد به این مورد باز خواهیم گشت.

الگوریتم MD5

این الگوریتم نیز یکی دیگر از الگوریتم های Hashing است. از آنجایی که سابقه شکستن MD5 وجود دارد، استفاده از آن توصیه نمیشود و جزو الگوریتم های رو به منسوخ شدن است. قطعه کد سیشارپ این الگوریتم مشابه با SHA256 است و به جای کلاسهای مربوط به SHA از کلاسهای MD5 استفاده میشود.
در این مقاله با الگوریتم هایی که با استفاده از عملیات Hashing اطلاعات ما را رمزنگاری می کنند آشنا شدیم. در مقاله بعد به معرفی الگوریتم هایی خواهیم پرداخت که با استفاده از روش های رمزنگاری متقارن و نامتقارن داده های ما را Encryption میکنند.


در ادامه مباحث رمزنگاری میتوانید به مقالات ذیل مراجعه نمایید.

همچنین میتوانید این مقاله را در وبسایت آموزشی من به آدرس زیر مشاهده نمایید.

https://classicode.org/B-97

برای پیگیری آموزش ها و مقالات بیشتر، به صفحه لینکدین و وبسایت من سر بزنید.

www.classicode.org

www.linkedin.com/in/mrabiee1996

هشینگshahashingmd5sha256
محمد ربیعی هستم،یک توسعه دهنده نرم افزارهای BackEnd
شاید از این پست‌ها خوشتان بیاید