/// 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 }