C# 填充无效,在使用AES托管类时无法删除错误

C# 填充无效,在使用AES托管类时无法删除错误,c#,windows-phone-8,encryption,C#,Windows Phone 8,Encryption,我试图在windows phone中使用AES 256加密来获得一个确定的密钥,并使用IV来解密我从服务器收到的字符串。在服务器端,使用AES256/CBC/PkCS5填充,我使用的是AES管理的windows代码类 我遇到以下错误: 填充无效,在使用AES托管类时无法删除错误 您能给出一些有价值的建议吗?无论出于何种原因,当加密和解密未使用相同的密钥或初始化向量时,您有时会收到一条关于无效填充的消息。Padding是添加到纯文本末尾的字节数,以使其构成密码要处理的完整块数。在PKCS7中,填充

我试图在windows phone中使用AES 256加密来获得一个确定的密钥,并使用IV来解密我从服务器收到的字符串。在服务器端,使用AES256/CBC/PkCS5填充,我使用的是AES管理的windows代码类

我遇到以下错误:

填充无效,在使用AES托管类时无法删除错误


您能给出一些有价值的建议吗?

无论出于何种原因,当加密和解密未使用相同的密钥或初始化向量时,您有时会收到一条关于无效填充的消息。Padding是添加到纯文本末尾的字节数,以使其构成密码要处理的完整块数。在PKCS7中,填充每个字节等于添加的字节数,因此解密后总是可以将其删除。您的解密导致一个字符串,其中最后n个字节不等于最后一个字节的值n(希望这句话有意义)。因此,请仔细检查您的密钥。

确保您的密码设置了正确的填充模式(例如,检查加密填充):

此外,只要设置了关键点,就不需要设置关键点大小。设置密钥大小将覆盖现有密钥。因此,只需删除代码中的这一行:

        aesDecryptor.KeySize = 256;

最后,我能够解密字符串。我已经应用了HextStringToBytes转换而不是StringToBytes转换


非常感谢您提供的信息。

查看此信息是否有用感谢您的回复我将在windows phone中查看此信息没有填充模式选项。默认填充模式为PKCS7
        aesDecryptor.KeySize = 256;