只是想确认一下我对CryptographicException解密的看法。我有一些测试,就是密码错误的那个。这个测试抛出
System.Security.Cryptography.CryptographicException: Padding is invalid and cannot be removed.我在找会导致这一切的原因。然而,我什么也找不到。这导致我得出结论,一旦我使用错误的passphraze进行解密,我就会得到这个错误。
我说的对吗?
感谢您的评论。干杯X。
发布于 2009-10-02 11:04:09
当使用填充并且密钥和IV不正确时,在要删除填充的点上解密将失败。这是因为在所有的可能性中,填充的字节不符合所选的PaddingMode。这是一个很小的机会,然后解密仍然可以没有错误地通过,但结果将是乱码。
但是,如果使用PaddingMode.None,那么您仍然可以无错误地解密数据(假设明文的长度是块大小的倍数),但是数据将再次被篡改。
结论:你不能依赖这样一个事实,如果使用了错误的密钥,你就会得到一个异常。您必须检查生成的数据。
https://stackoverflow.com/questions/1508705
复制相似问题