MD5加密

   public string Second_MD5(string str)
        {
            MD5 md5 = MD5.Create();//创建MD5实例
            byte[] strbyte = Encoding.UTF8.GetBytes(str);//用UTF8这样对于汉字的编码就和网上一样了
            byte[] mdbyte = md5.ComputeHash(strbyte);//将字节数组转成哈希值
            StringBuilder sb = new StringBuilder();
            //将加密之后的二进制数组转换成字符串进行输出
            //是将二进制数组中的每一个元素逐个转换成字符串
            foreach (var item in mdbyte)
            {
                sb.Append(item.ToString("x2"));//将哈希值中字节数组逐个转成16进制
            }
            return sb.ToString();
        }

 PS:得到文件的MD5值:

private static string GetMD5HashFromFile(string fileName) {
         try {
            FileStream file = new FileStream(fileName, FileMode.Open);
            System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.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);
         }
      }

  另一种常用的加密算法:SHA1

        public string CreateSha1(string str)
        {
            SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider();
            byte[] utf8Byte = Encoding.UTF8.GetBytes(str);
            byte[] hashByte = sha1.ComputeHash(utf8Byte);
            //这个方法可以一步实现sha1加密算法  但是提示说是一种过时的方法  在asp.net4.5中已经过时  
            //string checkSignatureStr = FormsAuthentication.HashPasswordForStoringInConfigFile(str,
            //   System.Web.Configuration.FormsAuthPasswordFormat.SHA1.ToString());
            string resultStr = BitConverter.ToString(hashByte);
            resultStr=resultStr.Replace("-","").ToLower();
            return resultStr;
        }
原文地址:https://www.cnblogs.com/huangshuqiang/p/6254023.html