PDA

View Full Version : Encrypt كردن كلمه عبور



kohyar
دوشنبه 04 خرداد 1388, 17:45 عصر
با سلام به همه دوستان
من يك اينترانت با asp.net 2005 , sql server 2000 طراحي كردم ولي ميخوام كلمات عبور كاربران را كه تو بانك اس كيو ال ذخيره مي كنم بصورت اينكريپت شده باشه كه حتي اگر كسي به بانك دسترسي پيدا كرد نتونه از پسورد كاربران سر در بياره ولي موقع ورود كاربران با decrypt كردن بتونم پسورد رو چك كنم
نمي دونم كه آيا دات نت كامپوننت خاصي براي اين كار داره البته اينم بگم من از كامپوننت login پيش فرض asp.net 2005 استفاده نكردم
ممنون ميشم اگه كسي مثالي در اين رابطه داره واسم بذاره

milade
دوشنبه 04 خرداد 1388, 18:12 عصر
سلام دوست عزیز

شما میتونید از کتابخونه System.Security.Cryptography استفاده کنید که کلاسهای زیاد و متقارن و نامتقارنی هم داره که بنا بر نیاز خودتون استفاده کنید

شایع ترینشون Md5 و Sha1 هست که بحث شده
پس میمونه یه جستجو کوچیک !

موفق باشید

kohyar
دوشنبه 04 خرداد 1388, 18:44 عصر
دوست عزيز ميشه بيشتر توضيح بدبد
من اين namespace رو using كردم ولي نتونستم ازش استفاده كنم
ميشه بيشتر توضيح بديد

milade
دوشنبه 04 خرداد 1388, 21:49 عصر
MD5 :

MD5CryptoServiceProvider hashcode = new MD5CryptoServiceProvider();
byte[] pass = null;
byte[] passresult = null;
StringBuilder strpass = new StringBuilder();
pass = Encoding.ASCII.GetBytes(t_p.Text);
passresult = hashcode.ComputeHash(pass);
var m = 15 - pass.Length;
for (int i = 0; i <= pass.Length + (m); i++) {
strpass.Append(passresult(i).ToString("x"));
}

strpass همون رمز هست و اینکه از MD5 فقط میتونی به صورت مقایسه ای استفاده کنی و نمیتونی رمز اصلی رو به دست بیاری

Sha1 :

byte[] data = new byte[DATA_SIZE];
byte[] result;

SHA1 sha = new SHA1CryptoServiceProvider();
// This is one implementation of the abstract class SHA1.
result = sha.ComputeHash(data);

Sha1 هم مثل Md5

( اطلاعات بیشتر = جستجو )

موفق باشید