PDA

View Full Version : رمز نگاری در web application



papa_fal
شنبه 04 شهریور 1385, 18:04 عصر
با سلام به دوستان


private void Button1_Click(object sender, System.EventArgs e)
{ string pass=userpass.Text;
System.Security.Cryptography .MD5CryptoServiceProvider p=new System.Security.Cryptography.MD5CryptoServiceProvi der();
byte[]cpass=p.Gethash(System.Text.Encoding.ASCII.GetByte s(pass));
/////////
}


من در برنامه web application خود می خواستم که از رمز نگاری استفاده کنم.

من برای رمز نگاری قبلا این name space را اضافه کرده ام .


using System.Security.Cryptography;

و لی برای تابع GetHashCode خطا می گیرد!!!



c:\inetpub\wwwroot\encription1\WebForm1.aspx.cs(57 ): No overload for method 'GetHashCode' takes '1' arguments



و اگر هم از تابع GetHash استفاده کنم آن را نمی شناسد!!!
آیا باید از name space دیگری استفاده کنم؟؟؟


c:\inetpub\wwwroot\encription1\WebForm1.aspx.cs(57 ): 'System.Security.Cryptography.MD5CryptoServiceProv ider' does not contain a definition for 'Gethash'

ممنون می شم که منو راهنمایی کنید

mahdi_negahi
شنبه 04 شهریور 1385, 21:54 عصر
userpass.Text.GetHashCode()

همین کافی است GetHashCode به شما یک عدد می دهد

ببین اینها به دردتان می خورد

private void btnCompute_Click(object sender, System.EventArgs e)
{
if (txtHash.Text.Trim() != "")
{
// Generate bytes for the input string
byte[] inputData = ASCIIEncoding.ASCII.GetBytes(txtHash.Text);

// Display the hash value in textbox
txtMDS.Text = ASCIIEncoding.ASCII.GetString(new
MD5CryptoServiceProvider().ComputeHash(inputData)) ;

txtSHAl.Text = ASCIIEncoding.ASCII.GetString(new
SHA1Managed().ComputeHash(inputData));

txtSHA256.Text = ASCIIEncoding.ASCII.GetString(new
SHA256Managed().ComputeHash(inputData));

txtSHA384.Text = ASCIIEncoding.ASCII.Getstring(new
SHA384Managed().ComputeHash(inputData));

txtSHA512.Text = ASCIIEncoding.ASCII.Getstring(new
SHA512Managed().ComputeHash(inputData));
}
}


و البته تابع ComputeMD5


byte[] ComputeMD5(byte [] input)
{
MD5CryptoServiceProvider md5Provider = new MD5CryptoServiceProvider();
return md5Provider.ComputeHash(input);
}

mahdi_negahi
شنبه 04 شهریور 1385, 22:00 عصر
توضیح بدهم که Trim تابعی است که فضای خالی اول و آخر کلمه را حذف میکند

reza_rad
یک شنبه 05 شهریور 1385, 11:03 صبح
به اینجا هم نگاهی بندازید :
http://barnamenevis.org/forum/showthread.php?t=48019&highlight=md5

manager
پنج شنبه 23 شهریور 1385, 13:50 عصر
پاسخ آقا مهدی کامل و درست هست.. شما برای استفاده از MD5CryptoServiceProvider باید از متد ComputeHash استفاده کنید. فضای نامی رو که استفاده کرده بودید نیز کاملا صحیح هست.

papa_fal
شنبه 25 شهریور 1385, 13:02 عصر
ممنونم از شما
بله من تابع computehash را به کار بردم .درست کار کرد.حالا سوالم اینه که چطور می تونم txtMDS.Text را که رمز شده برگردانم و کلمه اصلی را ببینم.من از دوباره همان تابع را به کار بردم.ولی طبیعتا بازم رمز کرد. و رمز را باز نکرد! ممنون میشم که در این مورد نیز منو راهنمایی کنید.
با تشکر

reza_rad
شنبه 25 شهریور 1385, 15:03 عصر
ممنونم از شما
بله من تابع computehash را به کار بردم .درست کار کرد.حالا سوالم اینه که چطور می تونم txtMDS.Text را که رمز شده برگردانم و کلمه اصلی را ببینم.من از دوباره همان تابع را به کار بردم.ولی طبیعتا بازم رمز کرد. و رمز را باز نکرد! ممنون میشم که در این مورد نیز منو راهنمایی کنید.
با تشکر

چرا می خواهید برگردونید به حالت اول؟!!!
شما پسورد رو md5 شده بریزین توی DB . بعد هم هر وقت موقع لاگین پسورد ورودی رو md5 کنید و با مقدار داخل جدول مقایسه کنید.اگه درست بود لاگین کنید...
نیاز به برگردوندن کد نیست.

Behrouz_Rad
شنبه 25 شهریور 1385, 15:51 عصر
نیاز به برگردوندن کد نیست.
تصحیح منظور:
یعنی نمی تونی عبارتی رو که با الگوریتم MD5 کدگذاری کردی، Decode کنی...!

reza_rad
شنبه 25 شهریور 1385, 16:02 عصر
تصحیح منظور:
یعنی نمی تونی عبارتی رو که با الگوریتم MD5 کدگذاری کردی، Decode کنی...!

البته...:)
چون اگه میشد که دیگه سه سوت سایت می رفت رو هوا...
و دیگه md5 هم فایده نداست...

ممنون بهروز جان

manager
شنبه 25 شهریور 1385, 16:03 عصر
اصلا خصوصیت Hash کردن اینه که نشه اون رو دوباره دیکد کرد !!!!

titbasoft
شنبه 25 شهریور 1385, 16:54 عصر
حالا سوالم اینه که چطور می تونم txtMDS.Text را که رمز شده برگردانم و کلمه اصلی را ببینم
دوست خوبم با کمی دقت به پست 4 به راحتی به این (http://barnamenevis.org/forum/showthread.php?t=15710)تاپیک می رسیدید. این رو به این خاطر عرض می کنم که گاها با کمی توجه بیشتر با سرعت بیشتری به اطلاعات ارزنده ای خواهید رسید.

papa_fal
شنبه 25 شهریور 1385, 20:16 عصر
از همه ممنونم.
حقیقتا من همیشه به سایت دسترسی ندارم.شاید در روز 3 ساعت.بقیه ساعات نمی تونم وارد بشم .به همین خاطر در این مدت کم فقط وقت می کنم که یک پستی بذارم.
از توضیحات همه شما ممنونم