using System.IO;
using System.Security.Cryptography;
using System.Text;

namespace ET
{
	public static class MD5Helper
	{
		public static string FileMD5(string filePath)
		{
			byte[] retVal;
            using (FileStream file = new FileStream(filePath, FileMode.Open))
            {
	            MD5 md5 = MD5.Create();
				retVal = md5.ComputeHash(file);
			}
			return retVal.ToHex("x2");
		}

		public static string StringMD5(string str)
		{
			byte[] retVal = Encoding.GetEncoding("UTF-8").GetBytes(str);
			byte[] hashValue = MD5.Create().ComputeHash(retVal);
			StringBuilder tmp = new StringBuilder();
			foreach (byte i in hashValue)
			{
				tmp.Append(i.ToString("x2"));
			}
			return tmp.ToString();
		}
	}
}