PDA

View Full Version : سوال: مقايسه پسورد هاش شده با پسورد وارد شده



fayagh
یک شنبه 22 بهمن 1391, 17:05 عصر
سلام دوستان
من پسوردي که از کاربر ميگيرمو به صورت هاش شده درون بانک ثبت ميکنم
حالا چجوري بايد با پسوردي که وارد ميکنه براي لاگين مقايسه کنم
من از کد زير استفاده ميکنم ولي خطا ميگيره


SqlConnection conn = new SqlConnection(GetConnectionString());

Byte[] originalPassword;
Byte[] hashedPassword;
MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider();
UTF8Encoding encoder = new UTF8Encoding();
originalPassword = encoder.GetBytes(txtPass.Text);
hashedPassword = md5Hasher.ComputeHash(originalPassword);

SqlDataAdapter myCommand = new SqlDataAdapter("Select * from users where uname = N'" + txtUserName.Text + "'and pass = hashedPassword", conn);

morteza_mokhtari
یک شنبه 22 بهمن 1391, 17:23 عصر
سلام دوست عزیز شما برای اینکار بهتر از jquery sha256 استفاده بکنید نه از کد سمت سرور .مزیتش اینه که اگه در حین انتقال اطلاعات از کلاینت به سرور اگه اطلاعات شنود بشه به اصل رمز دست رسی نخواهد داشت.من برای مثال بالا توضیح میدم شما برای ثبت نام کاربر باید اطلاعات رو هش بکنید و تویه جدول ذخیره بکنید و وقتی هم که کاربر لاگین میکنه هم رمز عبور رو هش بکنید و توسط یک دستور select به پسورد های هش شده در داخل جدول مقایسه کنید به همین راحتی.موفق باشید

fayagh
یک شنبه 22 بهمن 1391, 17:32 عصر
منم همونکارو کردم
مشکلم مقايسه است
چجوري بايد مقايسه کنم
وقتي مقايسه ميکنم ميگه اين بصورت آرايه است ولي داخل بانکت به صورت رشته است
چيکار کنم؟

fayagh
یک شنبه 22 بهمن 1391, 18:36 عصر
دوستان حل شد


SqlConnection conn = new SqlConnection(GetConnectionString());
string password = FormsAuthentication.HashPasswordForStoringInConfig File(txtPass.Text.Trim(), "md5");
SqlDataAdapter myCommand = new SqlDataAdapter("select * from users where uname=@user and pass=@pass", conn);
myCommand.SelectCommand.Parameters.AddWithValue("@user", txtUserName.Text);
myCommand.SelectCommand.Parameters.AddWithValue("@pass", password);


راستي براي اينکارها پاک يادت نره :لبخند:


using System.Security.Cryptography;
using System.Text;
using System.Web.Security;