【发布时间】:2012-01-26 08:25:25
【问题描述】:
我正在将一些我从自己的类中定义的对象保存到文件中。 (保存流数据)。
这很好,但我希望能够在文件中存储该文件的 CRC 校验和。
然后,每当我的应用程序尝试打开文件时,它都可以读取内部存储的 CRC 值。
然后对实际的文件进行检查,如果文件的CRC与内部存储的CRC值匹配我可以正常处理文件,否则显示错误消息说文件无效。
我需要一些关于如何做到这一点的建议,但我认为我可以这样做:
- 从我的应用程序中保存文件。
- 计算已保存文件的 CRC。
- 编辑保存 CRC 值的保存文件。
- 每当打开文件时,检查 CRC 是否与内部 CRC 值匹配。
问题是,一旦文件中的单个数据字节被更改,就会导致 CRC 校验和完全不同 - 正如预期的那样。
【问题讨论】:
-
Warren 对你来说可能很明显,但我仍然在学习 Delphi 和一般编程。我大部分时间都在与逻辑和事情作斗争,通常是将自己与问题情况混淆。我想我现在会改变我的照片,这样你就不必再让我失望了。 @David 感谢您的支持信息 :)
-
抱歉,克雷格。对不起。
-
@Craig,您是否将 CRC32 仅用于错误检查而不是防止篡改?
-
感谢沃伦,如果我能更好地解决我心中的问题,我会做得更好,但我真的很难解决问题:(@Marcus我只是想要一种方法来验证文件是否有效并从我的应用程序中保存。所以我想检查这就是我想到 CRC 的原因。