PDA

View Full Version : به رمز در آوردن پسورد login



mohandesan
جمعه 03 اسفند 1386, 14:37 عصر
من یه سایت نوشتم که پس از اینکه کاربر فرم عضویت را پر می کنه پسورد به صورت رمزدر می اید و لی موقع login کردن تا همون پسورد ذخیره شده را وارد می کنم می گه پسورد اشتباه است آیا به خاطر اینه که پسورد به صورت رمز شده ذخیره شده؟ در ضمن از الگوریتم رمزنگاری MD5استفاده کردم به نظرتون مشکلش چیه؟؟؟؟؟؟

fereshte22
جمعه 03 اسفند 1386, 15:00 عصر
سلام
من خودم این مشکل را داشتم که با استفاده از tolower به صورت زیر حل شد


hashpass = System.Web.Security.FormsAuthentication.HashPasswo rdForStoringInConfigFile(txtpass.Text.ToLower, "md5")

هم موقع ثبت پسورد و هم موقع لوگین

mahdi_farhani
شنبه 04 اسفند 1386, 00:10 صبح
با Tolower یه مقدار از امنیت سیستم کم میکنید ، حداقل برای پسورد استفاده نکنید .
اونم که اشتباه میزنه ، بستگی به خیلی از موارد داره ، شاید فاصله ای جایی زیادی خورده ، یا حواست نبوده حروف کوچک بزرگ را اشتباه میزنی و ........
شما برای تست میتونی از عدد استفاده کنی ، اگر عدد درست جواب داد بری سراغ حروف کوچیک ، بعد بزرگ ، بعدشم ترکیب عدد ، حروف کوچیک و بزرگ و سیمبل ها

mohandesan
شنبه 04 اسفند 1386, 08:36 صبح
دوست عزیز اتفاقا پسورد را عدد می دم ولی می گه اشتباهه

mahdi_farhani
شنبه 04 اسفند 1386, 10:33 صبح
کدتو میشه بزاری ؟هم زمان Login و هم زمان ساخت Hashcode

mohandesan
یک شنبه 05 اسفند 1386, 18:45 عصر
جناب fereshte22 این کد را هم گذاشتم ولی باز هم می گه پسورد اشتباه است
می شه دقیق تر بگیر بیشترتوضیح بدین ممنون می شم

fereshte22
یک شنبه 05 اسفند 1386, 20:36 عصر
من خودم وقتی مقادیر را هش شده را موقع لوگین و موقع ثبت چک کردم دیدم که بعضی مواقع با حروف کوچک و بعضی مواقع با حروف بزرگ بود و با استفاده از tolower این مشکل حل شد
شما هم کدهاتون را اینجا بگذارید و هم اینکه مقادیر هش شده را در هر دو حالت چک کنید ببینید چه فرقی با هم دارند

chaalesh
سه شنبه 07 اسفند 1386, 11:09 صبح
1- ابتدا یک کلاس به برنامه اضافه کردم بنام : Crypt.cs
2- کد زیر رو برای این کلاس نوشتم


publicclassCrypt
{
public Crypt()
{
}
publicstaticbyte[] Md5Crypt(string str)
{
byte[] HashedDataBytes = newbyte[16];
UTF8Encoding Encoder = newUTF8Encoding();
MD5CryptoServiceProvider MD5Hasher = newMD5CryptoServiceProvider();
HashedDataBytes = MD5Hasher.ComputeHash(Encoder.GetBytes(str));
return HashedDataBytes;
}
}

3- فیلد پسوردم رو توی دیتا بیس به شکل زیر تعریف کردم

[strUserPassword] [binary] (16) NOT NULL
4-هنگام ثبت نام و یا لوگین پسورد شخص را ابتدا با دستور زیر کد کرده سپس برای ثبت یا مقایسه به دیتا بیس فرستادم

crptedpass=
Crypt.Md5Crypt(strUserPassword);

chaalesh
سه شنبه 07 اسفند 1386, 11:12 صبح
اگه درباره این کد سوالی بود - بپرسید

online_mansoor2007
دوشنبه 13 اسفند 1386, 00:53 صبح
من یه سایت نوشتم که پس از اینکه کاربر فرم عضویت را پر می کنه پسورد به صورت رمزدر می اید و لی موقع login کردن تا همون پسورد ذخیره شده را وارد می کنم می گه پسورد اشتباه است آیا به خاطر اینه که پسورد به صورت رمز شده ذخیره شده؟ در ضمن از الگوریتم رمزنگاری MD5استفاده کردم به نظرتون مشکلش چیه؟؟؟؟؟؟

سلام .
دوست عزیر شما در موقع ذخیره پسورد اونا رمز می کنی . آیا در زمانی که رمزا چک می کنی باز هم اونا رمز می کنی . منظورم اینکه چون رمزت MD5 ذخیره شده برای چک کردنش هم باید قبل از چک کردن رمزی که کاربر وارد می کنه رو MD5 کنی بعد با رمز موجود توی جدول مقایسه کنی . (برداشت من از سوالت این بود ) ضمنن بعضی ها عادت دارند وقتی یه چیزی تایپ می کنن بعدش المی یه space هم می زنن . شما space نزدی ؟ بالاخره اونم یه کاراکتر حساب می شه !!!!!!!