PDA

View Full Version : سوال: رمز گذاری به صورت Md5



Mohammad_1ta
چهارشنبه 11 اسفند 1389, 10:20 صبح
سلام دوستان،

برای قسمتی از برنامم، نیاز دارم یه textBox رو تبدیل کنم به md5.
من از کلاس زیر استفاده کردم:

using System.Security.Cryptography;


public string GetMD5Hashcode(string data)
{
if (string.IsNullOrEmpty(data))
throw new ArgumentNullException("data");
MD5CryptoServiceProvider MD5 = new MD5CryptoServiceProvider();
byte[] dataBytes = Encoding.Default.GetBytes(data);
byte[] encryptedBytes = MD5.ComputeHash(dataBytes);
StringBuilder hashCode = new StringBuilder(32);
foreach (byte b in encryptedBytes)
hashCode.Append(b.ToString("x2").ToUpperInvariant());
return hashCode.ToString();
}


string tabdilepass = GetMD5Hashcode(textBox20.Text);

الان این همونطوری که در PHP هست عمل میکنه،
یعنی جوابی که میگیرم برابر این هست:

md5("mytext");
تا اینجا مشکلی نیست. ولی من نیاز دارم که دو بار md5 بشه...
یعنی:

md5(md5("mytext"));

ولی جوابی که کد زیر بهم میده، با اونی که PHP میده یکی نیست !

string tabdilepass = GetMD5Hashcode(GetMD5Hashcode(textBox20.Text));

میشه بگین مشکل کجاست؟ :لبخندساده:

پیشاپیش متشکرم :خجالت:

Mohammad_1ta
چهارشنبه 11 اسفند 1389, 18:38 عصر
مشکلم برطرف شد... از یه تابع دیگه استفاده کردم:

public string Encrypt(string strToEncrypt)
{
UTF8Encoding ue = new UTF8Encoding();
byte[] bytes = ue.GetBytes(strToEncrypt);
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
byte[] hashBytes = md5.ComputeHash(bytes);
// Bytes to string

return System.Text.RegularExpressions.Regex.Replace
(BitConverter.ToString(hashBytes), "-", "").ToLower();
}



اگر میبینین این تاپیک اضافی هست، پاکش کنین :چشمک: