سلام به دوستان عزیز
آیا رمزنگاری MD5 کاملا ایمن هست برای رمزنگاری پسورد کاربران ؟
یا شما نوع دیگه رو پیشنهاد میکنید ؟
البته خود دات نت کور یه DataProtectionProvider داره که فهمیدم چیز جالبی نیست و دردسر هایی داره
الگوریتم های رمزنگاری زیادی در سی شارپ و سایر زبانهای برنامه نویسی وجود داره که شما میتونید برای ایمن کردن رمز عبور از اون استفاده کنید. الگوریتم MD5 یک نمونه از اونها هست که یک الگوریتم برگشت ناپذیر هم هست. یعنی هیچ روشی برای برگشت رمز عبور در این الگوریتم وجود نداره و میشه گفت از نظر ایمنی خوب هست. اما الگوریتم های بهتری هم وجود داره.
بعضی از الگوریتم های رمزنگاری که در سی شارپ میشه از اونها استفاده کرد :
الگوریتم های بالا همه در رمزنگاری پسورد میشه استفاد کرد. ولی دقت کنید که هرچی الگوریتم تعداد کاراکتر بیشتری رو تولید کنه (مثلا SHA512 که 128 کاراکتر تولید میکنه) برای نگهداری توی دیتابیس هم فضای بیشتری رو نیاز دارید.
اطلاعات بیشتر و تست الگوریتمها
اگر شما پروژه Asp.net Core دارید و از Identity استفاده می کنید رمزنگاری آیدنتیتی کاملا متفاوت هست و از الگوریتم های هوشمند استفاده می کنه. به این معنی که شما اگر مثلا رمز عبور رو 123456 قرار بدید یک رشته هش شده در دیتابیس برای این رمز ایجاد میکنه. اما اگر شخص دیگه ای هم 123456 قرار بده یک الگوریتم هش شده متفاوت تولید میکنه. حتی اگر شما رمزتون رو تغییر بدید و بعد از مدتی دوباره 123456 قرار بدید اون رشته اولیه رو تولید نمیکنه و از این رو بسیار امن و غیرقابل بازگردانی هست.
ممنون از توضیحات کامل تون
نتیجه به این صورت شد که کلا از الگوریتم های رمزنگاری استفاده نکردم چون از امنیت شون مطمئن نبودم
مورد بعدی اینکه خود آیدنتیتی قابلیت رمزنگاری پسورد رو داره اما من جداول کاربران و... رو متناسب با نیاز خودم پیاده سازی کردم در نتیجه نمیشد از امکان خود آیدنتیتی برا پسورد جدول user استفاده کرد
و اینکه از امکان IDataProtection استفاده کردم که خود دات نت کور داره این رو و پسورد رو با یه کلید و نام هش میکنه در 134 کاراکتر و جالب اینه که هر بار یه کد جدید تولید میکنه که با قبلی شباهتی نداره و کاربری که میخوا وارد سایت شه دیگه رمزی که زده رو هش نمیکنیم چون متفاوت میشه با اونی که در دیتابیس هست، بلکه خود این DataProtection اون پسورد هش شده کاربر رو در دیتابیس میاد و Unprotect میکنه که از هش خارج میشه و با رمزی که کاربر وارد کرده مقایسه میشه
استفاده نکردن از هش در رمز عبور یا دیتای مهم، اشتباه بزرگی هست. حتما استفاده کنید.
الگوریتم های هش اینجوری هست که هر دیتایی بهشون بدی اون رو توی یه پروتوکل قرار میدن و نتیجه اش میشه پسورد هش شده. این پروتوکل ها ثابت هست و به عنوان کلید در نظر گرفته میشه.
واسه همینه که وقتی کاربر لاگین میکنه، پسورد وارد شده مجدد توی این پروتوکل قرار میگیره و نتیجه اش با مقدار توی دیتابیس چک میشه و در صورت یکی بودن لاگین انجام میشه.
پس برای یه عبارت خاص نباید هربار یه هش جدید تولید بشه.
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
56
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
96
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1031
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
426
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1347
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4796
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
205
- پاسخ :
1
|
تاریخ :
1403/07/26
- ساعت :
09:00:00 PM
- بازدید :
116
- پاسخ :
0
|
تاریخ :
1403/05/16
- ساعت :
09:57:00 AM
- بازدید :
395
- پاسخ :
2
|
تاریخ :
1403/06/25
- ساعت :
11:39:00 PM
- بازدید :
562
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
56
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
96
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1031
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
426
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
930
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1347
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4796
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1157
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
595
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
205
- پاسخ :
1
|