PDA

View Full Version : سوال: رخدادن خطا در ذخیره داده تبدیل شده به MD5، در بانک اطلاعاتی



Ali0Boy
چهارشنبه 12 بهمن 1390, 19:25 عصر
سلام دوستان من با کد زیر یک پسوردی رو تبدیل به MD5 کردم ولی وقتی خواستم دخیره کنم در بانک خطای زیر رو داد؛ فیلد داده ی مربوط به بانکم نیز از نوع binary است.

کد:


string pw = txtPswA1.Text;
MD5 md5 = new MD5CryptoServiceProvider();
byte[] result = md5.ComputeHash(System.Text.Encoding.Unicode.GetBy tes(pw));

cmd.CommandText = "insert into tbl_User([username],[password],[email],[telphone],[usertype])values('" + txtUsnA1.Text + "'," + result + ",'" + txtEmail.Text + "','" + txtTelphone.Text + "','" + drpdTypeUs.Text + "')";
cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
con.Close();


تصویر خطا در ضمینه می باشد. لطفا راهنمایی کنید.

fakhravari
چهارشنبه 12 بهمن 1390, 23:55 عصر
با سلام
توی عکس به نظر نمیرسه خطا از md5 باشه از این روش استفاده کنید.
گفته Syntax خرابه

public static string Hashin_Md5(string Text)
{
try
{ return FormsAuthentication.HashPasswordForStoringInConfig File(Text, "MD5"); }
catch { return "Error MD5"; }
}


Label1.Text = Hashin_Md5(TextBox1.Text);

Ali0Boy
پنج شنبه 13 بهمن 1390, 09:25 صبح
دوست عزیز آقای فخراوری من این روش رو هم تست کردم ولی هر چه گشتم نتوستم کلاس یا هدری که مربوط به FormsAuthentication هست رو پیدا کنم. چون به FormsAuthentication خطا می دهد. آیا هدر یا کلاس خاصی داره؟

fakhravari
پنج شنبه 13 بهمن 1390, 12:04 عصر
using System.Web.Security;
using System.Security.Cryptography;

public static string Hashin_SHA1(string Text)
{
try
{ return FormsAuthentication.HashPasswordForStoringInConfig File(Text, "SHA1"); }
catch { return "Error SHA1"; }
}

rahmatr
پنج شنبه 13 بهمن 1390, 15:34 عصر
مشکل شما در دادن مقدار به cmd.CommandText است.
متغییر result آرایه ای از byte است و شما از اون در رشته string استفاده کردید. با این کار دارید از result.ToString استفاده میکنید نه خود result.

از پارامترها (http://msdn.microsoft.com/en-us/library/yy6y35y8.aspx) استفاده کنید مشکل حل می شود.

Ali0Boy
پنج شنبه 13 بهمن 1390, 15:50 عصر
ممنون از تمامی دوستان مخصوصا از آقای fakhravari (http://barnamenevis.org/member.php?128926-fakhravari) که مشکلم رو حل کرد. دوست عزیز rahmatr (http://barnamenevis.org/member.php?30638-rahmatr) من در بانکم نوع دادم binary بود و اینجا هم byte بود البته با انواع نوع ها تست کردم ولی بازهم ذخیره نمی شد.
اگر هم تبدیل به string می کردم یکسری کاراکتر ویژه داشت که از بین می روفت و یا به جای آنها یکسری علائم ناشناس می گذاشت. ولی راه حل fakhravari خیلی عالی بود. من هم به هم پیشنهاد می کنم.
ممنون از تمامی اساتید. :تشویق: :بوس: :لبخند: