C# AES加密+解密

 1  /// AES加密
 2         /// </summary>
 3         /// <param name="inputdata">输入的数据</param>
 4         /// <param name="iv">向量128位</param>
 5         /// <param name="strKey">加密密钥</param>
 6         /// <returns></returns>
 7         public static byte[] AESEncrypt(byte[] inputdata, byte[] iv, string strKey)
 8         {
 9             //分组加密算法   
10             SymmetricAlgorithm des = Rijndael.Create();
11             byte[] inputByteArray = inputdata;//得到需要加密的字节数组       
12             //设置密钥及密钥向量
13             des.Key = Encoding.UTF8.GetBytes(strKey.Substring(0, 32));
14             des.IV = iv;
15             using (MemoryStream ms = new MemoryStream())
16             {
17                 using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write))
18                 {
19                     cs.Write(inputByteArray, 0, inputByteArray.Length);
20                     cs.FlushFinalBlock();
21                     byte[] cipherBytes = ms.ToArray();//得到加密后的字节数组   
22                     cs.Close();
23                     ms.Close();                   
24                     return cipherBytes;
25                 }
26             }
27         }
28 
29 
30         /// <summary>
31         /// AES解密
32         /// </summary>
33         /// <param name="inputdata">输入的数据</param>
34         /// <param name="iv">向量128</param>
35         /// <param name="strKey">key</param>
36         /// <returns></returns>
37         public static byte[] AESDecrypt(byte[] inputdata, byte[] iv, string strKey)
38         {
39             SymmetricAlgorithm des = Rijndael.Create();
40             des.Key = Encoding.UTF8.GetBytes(strKey.Substring(0, 32));
41             des.IV = iv;
42             byte[] decryptBytes = new byte[inputdata.Length];
43             using (MemoryStream ms = new MemoryStream(inputdata))
44             {
45                 using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Read))
46                 {
47                     cs.Read(decryptBytes, 0, decryptBytes.Length);
48                     cs.Close();
49                     ms.Close();
50                 }
51             }
52             return decryptBytes;
53         }
原文地址:https://www.cnblogs.com/LYshuqian/p/2919164.html