You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|