//计算文件的MD5码
public static string GetFileMD5(string path)
{
string ret = "";
FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
byte[] md5byte = md5.ComputeHash(fs);
int i, j;
foreach (byte b in md5byte)
{
i = Convert.ToInt32(b);
j = i >> 4;
ret += Convert.ToString(j, 16);
j = ((i << 4) & 0x00ff) >> 4;
ret += Convert.ToString(j, 16);
}
return ret;
}
//字符串加密
public static string GetStringMD5(string str, int size)
{
string ret = "";
if (size == 32)
{
byte[] b = System.Text.Encoding.Default.GetBytes(str);
b = new MD5CryptoServiceProvider().ComputeHash(b);
for (int i = 0; i < b.Length; i++)
{
ret += b[i].ToString("x").PadLeft(2, '0');
}
}
else if (size == 16)
{
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
ret = BitConverter.ToString(md5.ComputeHash(System.Text.UTF8Encoding.Default.GetBytes(str)), 4, 8);
ret = ret.Replace("-", "");
}
return ret;
}