本文是另一个网站转载过来的

                                    ASE加密解密源代码

                                       放过小弟一马

                                          不要喷

 

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Security.Authentication;
using System.Security.Cryptography;

namespace XMLRead_Encoder
{
    class RebectASE
    {
        /// <summary>
        /// AES
加密
        /// </summary>
        /// <param name="plainStr">
要加密的字符串</param>
        /// <param name="Key">
密钥</param>
        /// <param name="IV">
向量</param>
        /// <returns>
返回加密完字符串,加密失败返回false</returns>
        public static string AESEncrypt(string plainStr,string IV,string Key)
        {
            byte[] bKey = Encoding.UTF8.GetBytes(Key);
            byte[] bIV = Encoding.UTF8.GetBytes(IV);
            byte[] byteArray = Encoding.UTF8.GetBytes(plainStr);

            string encrypt = null;
            Rijndael aes = Rijndael.Create();
            try
            {
                using (MemoryStream mStream = new MemoryStream())
                {
                    using (CryptoStream cStream = new CryptoStream(mStream, aes.CreateEncryptor(bKey, bIV), CryptoStreamMode.Write))
                    {
                        cStream.Write(byteArray, 0, byteArray.Length);
                        cStream.FlushFinalBlock();
                        encrypt = Convert.ToBase64String(mStream.ToArray());
                    }
                }
            }
            catch {
                return "false";

            }
            aes.Clear();

            return encrypt;
        }
      /// <summary>
      /// 
解密
      /// </summary>
      /// <param name="encryptStr">
要解密字符串</param>
      /// <param name="IV">
向量</param>
      /// <param name="Key">
密钥</param>
      /// <returns>
返回解密完成的字符串,解密错误返回false</returns>
        public static string AESDecrypt(string encryptStr,string IV,string Key)
        {
            byte[] bKey = Encoding.UTF8.GetBytes(Key);
            byte[] bIV = Encoding.UTF8.GetBytes(IV);
            byte[] byteArray = Convert.FromBase64String(encryptStr);

            string decrypt = null;
            Rijndael aes = Rijndael.Create();
            try
            {
                using (MemoryStream mStream = new MemoryStream())
                {
                    using (CryptoStream cStream = new CryptoStream(mStream, aes.CreateDecryptor(bKey, bIV), CryptoStreamMode.Write))
                    {
                        cStream.Write(byteArray, 0, byteArray.Length);
                        cStream.FlushFinalBlock();
                        decrypt = Encoding.UTF8.GetString(mStream.ToArray());
                    }
                }
            }
            catch {
                return "false";

            }
            aes.Clear();

            return decrypt;
        }
    }
}