AES 与Base64加密

public class AESHelper     {         /// <summary>         /// 获取密钥         /// </summary>         private static string Key         {             get             {                 return "abcdef1234567890";    ////必须是16位             }         }

        //默认密钥向量         private static byte[] _key1 = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF, 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };

        /// <summary>         /// AES加密并经base64编码处理         /// </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解密并经base64编码处理         /// </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("\0", "");   ///将字符串后尾的'\0'去掉         }

    }

posted @ 2016-07-12 19:54  寨♂冇嚸ル壞  阅读(490)  评论(0编辑  收藏  举报