MD5加密的实现

   /// <summary>
        /// MD5字符串加密
        /// </summary>
        /// <param name="str">要加密的字符串</param>
        /// <returns></returns>
        public static string MD5Encrypt(string str)
        {
            using (MD5 md5 = MD5.Create())
            {
                //对于中文或者某些字符,采用不同的编码生成的byte[]是不一样的,
                //所以造成了采用不同编码生成的md5值不一样的情况。
                byte[] buffer = System.Text.Encoding.UTF8.GetBytes(str);
                byte[] md5Buffer = md5.ComputeHash(buffer);
                StringBuilder sb = new StringBuilder();
                foreach (var item in md5Buffer)
                {
                    //x2表示生成两位16位编码的字符串
                    sb.Append(item.ToString("x2"));
                }
                return sb.ToString();
            }
        }

   /// <summary>
        /// MD5加密文件
        /// </summary>
        /// <param name="path">要加密的文件路径</param>
        /// <returns></returns>
        public static string MD5EncryptFromFile(string path)
        {
            using (MD5 md5 = MD5.Create())
            {
                using (FileStream fs = new FileStream(path,FileMode.Open))
                {
                    byte[] md5Buffer = md5.ComputeHash(fs);
                    StringBuilder sb = new StringBuilder();
                    foreach (var item in md5Buffer)
                    {
                        //x2表示生成两位16位编码的字符串
                        sb.Append(item.ToString("x2"));
                    }
                    return sb.ToString();
                }
             
            }
        }


posted @ 2013-04-23 17:38  学亮  阅读(200)  评论(0编辑  收藏  举报