MD5加密

public static string UserMd5(string str)
        {
            string cl = str;
            string pwd = "";
            MD5 md5 = MD5.Create();//实例化一个md5对像
            // 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择 
            byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl));
            // 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得
            for (int i = 0; i < s.Length; i++)
            {
                // 将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符 
                pwd = pwd + s[i].ToString("X2");

            }
            return pwd;
        }

另外

 public static string MD5_encrypt(string encryptString)
        {

            byte[] result = Encoding.UTF8.GetBytes(encryptString);

            MD5 md5 = new MD5CryptoServiceProvider();

            byte[] output = md5.ComputeHash(result);

            string encryptResult = BitConverter.ToString(output).Replace("-", "");

            return encryptResult;

        }

 之前用过

#region MD5加密/解密操作
        private static string m_DesKey = "XYKJ4321";
        /// <summary>
        /// 对指定的字符串进行MD5加密。
        /// </summary>
        /// <param name="p_OrginString">要加密的字符串。</param>
        /// <param name="p_DesKey">密钥</param>
        /// <returns>加密后的字符串</returns>
        public static string EncryptMD5(string p_OrginString, string p_DesKey)
        {
            using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
            {
                byte[] inputByteArray = Encoding.UTF8.GetBytes(p_OrginString);
                des.Key = ASCIIEncoding.ASCII.GetBytes(p_DesKey);
                des.IV = ASCIIEncoding.ASCII.GetBytes(p_DesKey);
                System.IO.MemoryStream ms = new System.IO.MemoryStream();
                using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write))
                {
                    cs.Write(inputByteArray, 0, inputByteArray.Length);
                    cs.FlushFinalBlock();
                    cs.Close();
                }
                string str = Convert.ToBase64String(ms.ToArray());
                ms.Close();
                return str;
            }

        }
        /// <summary>
        /// 对指定的字符串使用默认的密钥进行MD5加密。
        /// </summary>
        /// <param name="p_OrginString">要加密的字符串。</param>
        /// <returns>加密后的字符串</returns>
        public static string EncryptMD5(string p_OrginString)
        {
            return EncryptMD5(p_OrginString, m_DesKey);
        }
        /// <summary>
        /// 对MD5加密的字符串进行解密。
        /// </summary>
        /// <param name="p_EncryptString">要解密的的字符串</param>
        /// <param name="p_DesKey">密钥</param>
        /// <returns>已解密的字符串。</returns>
        public static string DecryptMD5(string p_EncryptString, string p_DesKey)
        {
            if (p_EncryptString.Length == 0)
                return "";
            byte[] inputByteArray;
            try
            {
                inputByteArray = Convert.FromBase64String(p_EncryptString);
                using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
                {
                    des.Key = ASCIIEncoding.ASCII.GetBytes(p_DesKey);
                    des.IV = ASCIIEncoding.ASCII.GetBytes(p_DesKey);
                    System.IO.MemoryStream ms = new System.IO.MemoryStream();
                    using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write))
                    {
                        cs.Write(inputByteArray, 0, inputByteArray.Length);
                        cs.FlushFinalBlock();
                        cs.Close();
                    }
                    string str = Encoding.UTF8.GetString(ms.ToArray());
                    ms.Close();
                    return str;
                }
            }
            catch
            {
                return "";
            }
        }
        /// <summary>
        /// 对MD5加密的字符串使用默认的密匙进行解密。
        /// </summary>
        /// <param name="p_EncryptString">要解密的的字符串</param>
        /// <returns>已解密的字符串。</returns>
        public static string DecryptMD5(string p_EncryptString)
        {
            return DecryptMD5(p_EncryptString, m_DesKey);
        }
        /// <summary>
        /// 计算字符串或者文件MD5值
        /// </summary>
        /// <param name="str">需要计算的字符串或文件路径</param>
        /// <param name="isStr">true为字符串,false为文件</param>
        /// <returns>MD5值</returns>
        public static string GetMD5Value(String str, Boolean isStr)
        {
            MD5 md5 = new MD5CryptoServiceProvider();
            byte[] md5ch;
            if (isStr)
            {
                byte[] ch = System.Text.Encoding.Default.GetBytes(str);
                md5ch = md5.ComputeHash(ch);
            }
            else
            {
                if (!File.Exists(str))
                    return string.Empty;
                FileStream fs = new FileStream(str, FileMode.Open, FileAccess.Read);
                md5ch = md5.ComputeHash(fs);
                fs.Close();
            }
            md5.Clear();
            string strMd5 = "";
            for (int i = 0; i < md5ch.Length - 1; i++)
            {
                strMd5 += md5ch[i].ToString("x").PadLeft(2, '0');
            }
            return strMd5;
        }
        /// <summary>
        /// 计算字节数组的MD5
        /// </summary>
        /// <param name="p_Bytes">字节数组</param>
        /// <returns>md5值</returns>
        public static string GetMD5Value(byte[] p_Bytes)
        {
            MD5 md5 = new MD5CryptoServiceProvider();
            byte[] md5ch = md5.ComputeHash(p_Bytes);
            md5.Clear();
            string strMd5 = "";
            for (int i = 0; i < md5ch.Length - 1; i++)
            {
                strMd5 += md5ch[i].ToString("x").PadLeft(2, '0');
            }
            return strMd5;
        }
        #endregion

 AES加密

/// <summary>
    /// ASE加解密
    /// </summary>
    public class AESHelper
    {
        static string _Key;
        /// <summary>
        /// 获取密钥
        /// </summary>
        public static string Key
        {
            get
            {
                return _Key;    ////必须是16位
            }
            set
            {
                _Key = value;
            }
        }
        //默认密钥向量 
        private static byte[] _key1 = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF, 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
        /// <summary>
        /// AES加密算法
        /// </summary>
        /// <param name="plainText">明文字符串</param>
        /// <returns>将加密后的密文转换为Base64编码,以便显示</returns>
        public static string AESEncrypt(string plainText)
        {
            //分组加密算法
            SymmetricAlgorithm des = Rijndael.Create();
            byte[] inputByteArray = Encoding.UTF8.GetBytes(plainText);//得到需要加密的字节数组 
            //设置密钥及密钥向量
            des.Key = Encoding.UTF8.GetBytes(Key);
            des.IV = _key1;
            byte[] cipherBytes = null;
            using (MemoryStream ms = new MemoryStream())
            {
                using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write))
                {
                    cs.Write(inputByteArray, 0, inputByteArray.Length);
                    cs.FlushFinalBlock();
                    cipherBytes = ms.ToArray();//得到加密后的字节数组
                    cs.Close();
                    ms.Close();
                }
            }
            return Convert.ToBase64String(cipherBytes);
        }
        /// <summary>
        /// AES解密
        /// </summary>
        /// <param name="cipherText">密文字符串</param>
        /// <returns>返回解密后的明文字符串</returns>
        public static string AESDecrypt(string showText)
        {
            byte[] cipherText = Convert.FromBase64String(showText);
            SymmetricAlgorithm des = Rijndael.Create();
            des.Key = Encoding.UTF8.GetBytes(Key);
            des.IV = _key1;
            byte[] decryptBytes = new byte[cipherText.Length];
            using (MemoryStream ms = new MemoryStream(cipherText))
            {
                using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Read))
                {
                    cs.Read(decryptBytes, 0, decryptBytes.Length);
                    cs.Close();
                    ms.Close();
                }
            }
            return Encoding.UTF8.GetString(decryptBytes).Replace("", "");   ///将字符串后尾的''去掉
        }
    }
原文地址:https://www.cnblogs.com/songyulan/p/7154179.html