解密期间处理错误数据(TripleDES,.NET)

时间:2012-07-05 14:51:14

标签: c# encryption labview tripledes

我为用户编辑文件的系统设置了enc / dec进程。如果加密文件被恶意修改,我希望能够处理它并说“哦解密失败,将从一个干净的文件开始”......就像那样。但我不确定如何以不停止程序执行的方式处理异常。

重申一下,我对解密完全有效的数据没有任何问题。我遇到了错误的数据错误与实际的坏数据,我只是想知道如何优雅地处理它。当错误发生时,CryptoStream无法关闭文件,因此我无法使用纯文本文件覆盖它或将其用于任何其他内容。

BTW这是在LabView中使用的.NET代码。无法在此处粘贴代码。

1 个答案:

答案 0 :(得分:0)

处理恶意修改的唯一可靠方法是使用包含身份验证的加密方案,例如AES-GCM,它越来越受某些协议的欢迎。如果加密的密文只是填充,您可以更改数据并运气(大约1/256)或几次尝试,数据仍然有效。并非每个软件都能安全地填充/取消打包。

您至少必须发布用于任何人的API,以告诉您如何处理特定的异常。