PDA

View Full Version : سوال: hash کردن رمز عبور



itgirl20
چهارشنبه 19 اسفند 1388, 09:09 صبح
سلام خسته نباشید
من واسه hash کردن پسورد در بانک SQL سوال داشتم که چطور کدش در C# نوشته میشه؟
می تونین کمکم کنید :افسرده:ممنون میشم

mdssoft
چهارشنبه 19 اسفند 1388, 09:48 صبح
اینجا (http://mds-soft.persianblog.ir/post/104/)رو ببین

Vahid_moghaddam
چهارشنبه 19 اسفند 1388, 09:58 صبح
public string GetMD5(string input)
{
string hashed = "";

ASCIIEncoding encode = new ASCIIEncoding();
Encoding encode2 = Encoding.UTF8;
byte[] inputPasswordBytes;

inputPasswordBytes = encode2.GetBytes(input);

byte[] hash;
MD5 md5 = new MD5CryptoServiceProvider();
hash = md5.ComputeHash(inputPasswordBytes);

System.Text.StringBuilder sb = new StringBuilder();

foreach (byte outputbyte in hash)
sb.Append(outputbyte.ToString("x2").ToUpper());
hashed = sb.ToString();
return hashed;
}


برای اطلاعات بیشتر به System.Security.Cryptography مراجعه کنید
در سایت هم خیلی زیاد در این مورد بحث شده.

mehdi.mousavi
چهارشنبه 19 اسفند 1388, 19:45 عصر
سلام.
آقای وحید مقدم، MD5 مدتهاست که منقرض شده و نباید ازش استفاده کرد (براساس SDL). بهتره از SHA1 یا دیگر الگوریتمهای Hashing استفاده کنید.

برای اطلاعات بیشتر به SDL رجوع کنید.

موفق باشید.

Vahid_moghaddam
چهارشنبه 19 اسفند 1388, 21:42 عصر
private static string GetSHA1(string strPlain)
{
UnicodeEncoding UE = new UnicodeEncoding();
byte[] HashValue, MessageBytes = UE.GetBytes(strPlain);
SHA1Managed SHhash = new SHA1Managed();
string strHex = "";

HashValue = SHhash.ComputeHash(MessageBytes);
foreach (byte b in HashValue)
{
strHex += String.Format("{0:x2}", b);
}
return strHex;
} /* GetSHA1 */

private static string GetSHA256(string strPlain)
{
UnicodeEncoding UE = new UnicodeEncoding();
byte[] HashValue, MessageBytes = UE.GetBytes(strPlain);
SHA256Managed SHhash = new SHA256Managed();
string strHex = "";

HashValue = SHhash.ComputeHash(MessageBytes);
foreach (byte b in HashValue)
{
strHex += String.Format("{0:x2}", b);
}
return strHex;
} /* GetSHA256 */