通用工具--MD5值计算

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

    class Util
    {

        /// 
        /// 计算字符串MD5值
        /// 
        /// 
        /// 
        public static string md5(string source)
        {
            MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
            byte[] data = System.Text.Encoding.UTF8.GetBytes(source);
            byte[] md5Data = md5.ComputeHash(data, 0, data.Length);
            md5.Clear();

            string destString = "";
            for (int i = 0; i < md5Data.Length; i++)
            {
                destString += System.Convert.ToString(md5Data[i], 16).PadLeft(2, '0');
            }
            destString = destString.PadLeft(32, '0');
            return destString;
        }
        /// 
        /// 计算文件MD5值
        /// 
        /// 
        /// 
        public static string md5File(string file)
        {
            try
            {
                FileStream fs = new FileStream(file,FileMode.Open);
                MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
                byte[] retVal = md5.ComputeHash(fs);
                fs.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("md5file() fail, error: " + ex.Message);
            }
        }
    }

你可能感兴趣的:(Unity)