System.Security.Cryptography.CryptographicException:填充无效,无法删除

问题描述

代码部分:

public static string Decrypt(string text)
{
    // AesCryptoServiceProvider
    using (AesCryptoServiceProvider aes = new AesCryptoServiceProvider())
    {
        aes.BlockSize = 128;
        aes.KeySize = 128;
        aes.IV = Encoding.UTF8.GetBytes(AesIV);
        aes.Key = Encoding.UTF8.GetBytes(AesKey);
        aes.Mode = CipherMode.CBC;
        aes.Padding = PaddingMode.PKCS7;

        // Convert Base64 strings to byte array
        byte[] src = System.Convert.FromBase64String(text);

        // decryption
        using (ICryptoTransform decrypt = aes.CreateDecryptor())
        {
            byte[] dest = decrypt.TransformFinalBlock(src,src.Length);
            return Encoding.Unicode.GetString(dest);
        }
    }
}

调用AES的解密方法时遇到异常,任何人对此都有想法,这是间歇性的问题。

ERROR Exception Stack Trace: System.Security.Cryptography.CryptographicException: Padding is invalid and cannot be removed.
at System.Security.Cryptography.CapiSymmetricAlgorithm.DepadBlock(Byte[] block,Int32 offset,Int32 count)
at System.Security.Cryptography.CapiSymmetricAlgorithm.TransformFinalBlock(Byte[] inputBuffer,Int32 inputOffset,Int32 inputCount)
at PIMCO.Web.BAL.Utility.SecurityHelper.Decrypt(String text) in 
at PIMCO.Web.Core.handlers.displayDocument.ProcessRequest(HttpContext context) in 

我浏览了各种文章或论坛,但找不到具体答案。此错误增加错误日志计数。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)