1 #region MD5 2 ///3 /// 16位MD5加密 4 /// 5 /// 6 ///7 public static string MD5Encrypt16(string strByMd5) 8 { 9 var md5 = new MD5CryptoServiceProvider();10 string t2 = BitConverter.ToString(md5.ComputeHash(Encoding.Default.GetBytes(strByMd5)), 4, 8);11 t2 = t2.Replace("-", "");12 return t2;13 }14 15 /// 16 /// 32位MD5加密17 /// 18 /// 19 ///20 public static string MD5Encrypt32(string strByMd5)21 {22 string cl = strByMd5;23 string pwd = "";24 MD5 md5 = MD5.Create(); //实例化一个md5对像25 // 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择 26 byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl));27 // 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得28 for (int i = 0; i < s.Length; i++)29 {30 // 将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符 31 pwd = pwd + s[i].ToString("X");32 }33 return pwd;34 }35 36 public static string MD5Encrypt64(string strByMd5)37 {38 string cl = strByMd5;39 //string pwd = "";40 MD5 md5 = MD5.Create(); //实例化一个md5对像41 // 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择 42 byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl));43 return Convert.ToBase64String(s);44 }45 #endregion46 47 #region 对文件进行MD5处理48 /// 49 /// 对文件流进行MD5加密50 /// 51 public static string MD5Stream(Stream stream)52 {53 MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();54 md5.ComputeHash(stream);55 byte[] b = md5.Hash;56 md5.Clear();57 StringBuilder sb = new StringBuilder(32);58 for (int i = 0; i < b.Length; i++)59 {60 sb.Append(b[i].ToString("X2"));61 }62 return sb.ToString();63 }64 65 ///66 /// 对文件进行MD5加密67 /// 68 public static string MD5Stream(string filePath)69 {70 using (FileStream stream = File.Open(filePath, FileMode.Open))71 {72 return MD5Stream(stream);73 }74 }75 76 #endregion77 78 ///79 /// 获取MD5值(对字节数组进行MD5)80 /// 81 /// 82 ///83 public static string GetMd5(byte[] fileBytes)84 {85 var MD5 = System.Security.Cryptography.MD5.Create().ComputeHash(fileBytes);86 //将md5byte[]数组转换为字符串87 var str_md5 = Convert.ToBase64String(MD5);88 return str_md5;89 }