using log4net; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; namespace DSWeb.Common.Helper { public static class MD5Helper { static ILog log = LogManager.GetLogger(typeof(MD5Helper)); public static string GetMD5HashFromBytes(byte[] arr) { try { MD5 md5 = new MD5CryptoServiceProvider(); byte[] retVal = md5.ComputeHash(arr); StringBuilder sb = new StringBuilder(); for (int i = 0; i < retVal.Length; i++) { sb.Append(retVal[i].ToString("x2")); } return sb.ToString(); } catch (Exception ex) { log.Error("计算文件MD5错误"); log.Error(ex.Message); log.Error(ex.StackTrace); throw new Exception("GetMD5HashFromFile() fail,error:" + ex.Message); } } public static string GetMD5HashFromFile(string fileName) { try { FileStream file = new FileStream(fileName, System.IO.FileMode.Open); MD5 md5 = new MD5CryptoServiceProvider(); byte[] retVal = md5.ComputeHash(file); file.Close(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < retVal.Length; i++) { sb.Append(retVal[i].ToString("x2")); } return sb.ToString(); } catch (Exception ex) { throw new Exception("GetMD5HashFromFile() fail,error:" + ex.Message); } } } }