文件写入模式会影响写入文件的文本的HMAC吗?

在我们的应用程序中,我们有一个带有数据的文件,我们希望“保护”它免受篡改。所谓的“保护”是指让用户很难编辑文本文件。

数据以 JSON 格式存储。在写入文件之前,我们创建 JSON 字符串并计算 HMAC。然后将两个信息都写入文件。当文件被读取时,我们再次生成数据的 HMAC 并将其与存储的哈希值进行比较。

这听起来像是一件微不足道的事情,不应该引起任何问题,然而我们收到了很多报告说这个检查失败了。我们也从我们的测试人员那里获得了这些报告,他们肯定没有篡改文件。

我想知道读写文件是否会影响这个过程。由于某些遗留代码,文件以二进制模式进行读取和写入。我想知道这是否会影响处理过程?在我确认这可能是原因之前,我不会“让我们改变它并看看会发生什么”。

该文件始终在同一系统上读取和存储,不会转移到其他地方。

所有操作都是使用 Lua 执行的,如果有任何区别,请告诉我。

谢谢 Krystian

点赞