/// <summary> /// 解密帮助类 /// </summary> public class EncryptHelper { #region AES解密函数 /// <summary>AES解密</summary> /// <param name="text">密文</param> /// <returns>明文</returns> public static string Decrypt(string secretKey, string iv, string text) { RijndaelManaged rijndaelCipher = new RijndaelManaged(); rijndaelCipher.Mode = CipherMode.CBC; rijndaelCipher.Padding = PaddingMode.None; rijndaelCipher.KeySize = 128; rijndaelCipher.BlockSize = 128; byte[] encryptedData = Convert.FromBase64String(text); byte[] pwdBytes = System.Text.Encoding.UTF8.GetBytes(secretKey); //取byte数组前16位做key byte[] keyBytes = new byte[16]; int len = pwdBytes.Length; if (len > keyBytes.Length) len = keyBytes.Length; System.Array.Copy(pwdBytes, keyBytes, len); rijndaelCipher.Key = keyBytes; //取sendTime补A到16位做IV rijndaelCipher.IV = Encoding.UTF8.GetBytes("KA"+iv); ICryptoTransform transform = rijndaelCipher.CreateDecryptor(); byte[] plainText = transform.TransformFinalBlock(encryptedData, 0, encryptedData.Length); return Encoding.UTF8.GetString(plainText); } #endregion }