PDA

View Full Version : سوال: تغییر رمز عبور کاربران



30yavash
شنبه 28 دی 1387, 17:46 عصر
من سیستم کد گذاری password کاربرانم رو SHA1 انتخاب کردم.
حالا یه ساختم که مدیر بتونه بدون دونستن رمز عبور قبلی کاربر،رمزش رو تغییر بده.
مشکلم اینجاست که چطور باید رمز عبور رو ایجاد و ذخیره کنم؟
ASP.net ظاهرا فقط از کد گذاری SHA1 به تنهایی استفاده نمی کنه علاوه بر فیلد Password ، فیلد دیگری با نام PasswordSalt در جدول aspnet_Membership وجود داره.

30yavash
یک شنبه 29 دی 1387, 19:04 عصر
یعنی کسی نمی دونه چطور باید بدون دونستن رمز عبور قبلی کاربر،رمزش رو تغییر بده.

alihassanabadi
دوشنبه 30 دی 1387, 13:09 عصر
سلام وقتی پسورد رو رمز میکنی دیگه هیچ راه برگشتی واسه دونستن پسورد نداری
حتی خود مدیر هم نمیتونه بفهمه فقط یه راه هست اونم اینه که مثلا یه فیلد آی دی برا کاربر بزاری اگه پسورد رو فرامش کرد شماره ای دی رو واسش ارسال کنی تا بتونه با id وارد سیستم بشه
رمز عبور رو اینجوری تولید کن
string str=FormsAuthentication.HashPasswordForStoringInCo nfigFile(txtpassword.Text,"md5");
میتونی به جای md5 بنویسی sha1
الان دیگه پسورد تبدیل شده اگه ذخیره بشه دیگه هیچ راهی نداری
حالا میخوای چک کنی که کاربر معتبر هست یا نه
دوباره textرو با sha1 رمز میکنی با فیلدی که قبلا رمز شده و ذخیره شده چک میکنی اگه برابر بود کاربر معتبر میباشد
مییخوای تو پایگاه داده ذخیره بشه؟
تو چه پایگاهی با sql بلدم
:بامزه:

naeeme
دوشنبه 30 دی 1387, 16:21 عصر
PasswordSalt برای این هست که اگه دو کاربر یک زمر عبور برای خودشون انتخاب کرده باشن، مقدار هش شده رمزعبورشون برابر نشه.
نمی دونم membership از چه ترکیبی استفاده می کنه اما در کل رمز عبور رو با PasswordSalt ترکیب می کنن و بعد این ترکیب رو هش می کنن. به همین دلیل امکان اینکه دوتا رمزعبور مشابه دارای هش های یکسان باشند رو تقریبا محال می کنه.

برای تغییر رمز هم کافیه یه رمز عبور جدید با یه الگوریتم رندم بسازین و با PasswordSalt ترکیب کنین و بعد هش کنین و رمز عبور جدید رو به کاربر اعلام کنین( سوالتون همین بود؟)

30yavash
دوشنبه 30 دی 1387, 18:39 عصر
سلام وقتی پسورد رو رمز میکنی دیگه هیچ راه برگشتی واسه دونستن پسورد نداری
حتی خود مدیر هم نمیتونه بفهمه فقط یه راه هست اونم اینه که مثلا یه فیلد آی دی برا کاربر بزاری اگه پسورد رو فرامش کرد شماره ای دی رو واسش ارسال کنی تا بتونه با id وارد سیستم بشه
رمز عبور رو اینجوری تولید کن
string str=FormsAuthentication.HashPasswordForStoringInCo nfigFile(txtpassword.Text,"md5");
میتونی به جای md5 بنویسی sha1
الان دیگه پسورد تبدیل شده اگه ذخیره بشه دیگه هیچ راهی نداری
حالا میخوای چک کنی که کاربر معتبر هست یا نه
دوباره textرو با sha1 رمز میکنی با فیلدی که قبلا رمز شده و ذخیره شده چک میکنی اگه برابر بود کاربر معتبر میباشد
مییخوای تو پایگاه داده ذخیره بشه؟
تو چه پایگاهی با sql بلدم
:بامزه:

سلام.ممنون از پاسختون.
طریقه تولید با FormsAuthentication.HashPasswordForStoringInConfig File رو بلدم ولی مشکل رابطه بین فیلد Password و PasswordSalt هست.
مثلا اگر من پسورد رو به صورت زیر تولید کنم و توی دیتابیس(SQL) ذخیره کنم ، کار نمی کنه.


string str=FormsAuthentication.HashPasswordForStoringInCo nfigFile("mypassword","sha1");

سیستمی که طراحی کردم روی شبکه داخلی کار می کنه و کلا بخش Forgot Password رو غیر فعال کردم.می خوام به جای اون مدیر بتونه در صورت نیاز رمز عبور کاربر رو به رمز عبور دلخواه خودش تغییر بده بدون اینکه کاری به رمز عبور قبلی داشته باشه.

به صورت خلاصه :
اگر من به خوام رمز عبور کاربر رو تغییر بدم فیلد Password و SaltPassword رو چه طوری باید مقدار دهی کنم.

30yavash
دوشنبه 30 دی 1387, 18:43 عصر
PasswordSalt برای این هست که اگه دو کاربر یک زمر عبور برای خودشون انتخاب کرده باشن، مقدار هش شده رمزعبورشون برابر نشه.
نمی دونم membership از چه ترکیبی استفاده می کنه اما در کل رمز عبور رو با PasswordSalt ترکیب می کنن و بعد این ترکیب رو هش می کنن. به همین دلیل امکان اینکه دوتا رمزعبور مشابه دارای هش های یکسان باشند رو تقریبا محال می کنه.

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

milade
سه شنبه 01 بهمن 1387, 09:25 صبح
سلام
اینو ببین :
http://74.125.77.132/search?q=cache:JWZ81ys9CJ0J:forums.asp.net/p/1350876/2758205.aspx+change+password+membership+site:asp.n et&hl=fa&ct=clnk&cd=4&lr=lang_en|lang_fa

30yavash
سه شنبه 01 بهمن 1387, 23:25 عصر
سلام
اینو ببین :
http://74.125.77.132/search?q=cache:JWZ81ys9CJ0J:forums.asp.net/p/1350876/2758205.aspx+change+password+membership+site:asp.n et&hl=fa&ct=clnk&cd=4&lr=lang_en|lang_fa
احسنت بر شما دوست عزیز.
راه حل خیلی جالبی بود.
خوشمان آمد!

sena123
چهارشنبه 02 بهمن 1387, 11:57 صبح
احسنت بر شما دوست عزیز.
راه حل خیلی جالبی بود.
خوشمان آمد!

30yavash
چهارشنبه 02 بهمن 1387, 18:41 عصر
احسنت بر شما دوست عزیز.
راه حل خیلی جالبی بود.
خوشمان آمد!
پسرم تشکر کردن که دیگه کپی پیست کردن نداره!!