Encryption 填充无效,无法在使用c管理的AES中删除#

Encryption 填充无效,无法在使用c管理的AES中删除#,encryption,cryptography,aes,padding,pkcs#7,Encryption,Cryptography,Aes,Padding,Pkcs#7,我正在传递一个64字节的数组数据和32字节的密钥。我最终得到了这个错误。谁能给我一个正确的方法。我试过改变填充参数,块大小。结果还是犯了同样的错误。提前谢谢! 这是密码 public static string DecryptBySymmetricKey(string encryptedText, byte[] key) { //Decrypting SEK try {

我正在传递一个64字节的数组数据和32字节的密钥。我最终得到了这个错误。谁能给我一个正确的方法。我试过改变填充参数,块大小。结果还是犯了同样的错误。提前谢谢! 这是密码

  public static string DecryptBySymmetricKey(string encryptedText, byte[] key)
        {         //Decrypting SEK     
            try
            {
                byte[] dataToDecrypt = Encoding.ASCII.GetBytes(encryptedText);
                var keyBytes = key;
                AesManaged tdes = new AesManaged();
                tdes.KeySize = 256;
                tdes.BlockSize = 128;
                tdes.Key = keyBytes;
                tdes.Mode = CipherMode.ECB;
                tdes.Padding = PaddingMode.PKCS7;
                //tdes.Padding = PaddingMode.Zeros;
                ICryptoTransform decrypt__1 = tdes.CreateDecryptor();
                byte[] deCipher = decrypt__1.TransformFinalBlock(dataToDecrypt, 0, dataToDecrypt.Length);
                tdes.Clear();
                string EK_result = Convert.ToBase64String(deCipher);
                return EK_result;
            }
            catch (Exception ex)
            {
       
                throw ex;
            }
        }


请发布加密代码,以了解加密后的最终输出以及格式。正如我从您的代码编码中看到的.ASCII.GetBytes(encryptedText);使用文本编码将加密数据转换为字符串是不安全的,您可能会丢失一些数据。作为字节数组或使用base64进行编码和解码更好。