加密例外:填充无效且无法删除

时间:2011-11-09 21:45:49

标签: c# cryptography

好吧,我正在尝试在VS 2010上运行使用AES加密的客户端 - 服务器应用程序。但是,在收到一个大的,序列化的和加密的文件时,该程序抛出异常:Cryptographic Exception: Padding is Invalid and Cannot be Removed.

我环顾SOF,在其他领域,例外情况出现在Web服务和加密应用程序中。我也尝试了所提到的所有解决方案,例如更改填充模式,处理加密器和解密器以及使用相同的密钥,遗憾的是,没有一个工作,所以我想知道你们中是否有人有想法。

2 个答案:

答案 0 :(得分:1)

在TCP连接中出现问题,它是在客户端将整个流写入网络流之前刷新数据,一会儿循环解决了问题

答案 1 :(得分:0)

首先,AES加密的商业原因是什么?没有质疑有一个,但你想保护什么样的数据?

我问的原因很多,即使不是大多数,应用程序也足以通过使用https的服务传输数据,并避免许多“自定义加密”编码方案。避免在两侧使用AES对象可以大大降低出错的可能性。

其次,我会研究服务器实现,特别是如果它是基于Web /服务的并且在服务器场中。在一个实例中丢失一个密钥会打破整个事情。

第三,我会确保键是相同的。

第四,我会单独检查代码(最好是单元测试),并确保算法正确。实际上,我可能会先这样做。