-1

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

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

顺便说一句,这是 LabView 中使用的 .NET 代码。不能在这里粘贴代码。

4

1 回答 1

0

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

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

于 2012-07-05T18:28:46.653 回答