代码之家  ›  专栏  ›  技术社区  ›  Ljdawson

强制文件完整性

  •  1
  • Ljdawson  · 技术社区  · 16 年前

    我一直在使用OpenGL在C++中进行一个项目,并且AM将当前场景保存到文本文件中。沿x,y,z方向的立方体及其颜色等简单的东西。

    我的问题是如何确保文件没有被用户更改。我考虑过计算字符串的校验和并将其包含在文件中。

    例如校验和、字符串

    但这对修改值的用户也是开放的。

    有什么建议或者这只是编写一个好的解析器的一个例子吗?

    干杯

    3 回复  |  直到 16 年前
        1
  •  3
  •   cobbal    16 年前

    理论上说:你不能。

    实际上:加密它并混淆程序中的密钥(这就是drm的工作原理)

    尽管你永远无法阻止一个坚定的用户。为什么用户不能修改它这么重要?

    如果您希望用户能够阅读,但不能修改,请将最后一行改为 HMAC 文件和密钥。

        2
  •  1
  •   Victor Hurdugaci    16 年前

    与其阻止用户更改文件,不如在使用前验证文件的内容。创建一个好的解析器,它能够检测(并修复?)错误。

    让用户随心所欲,因为有些错误可能是可以修复的。发出警告。通过散列,你将阻止你的用户做任何事情。

        3
  •  0
  •   mrkj    16 年前

    您对文件不能由用户修改的要求有多严格?也就是说,您愿意花费多少精力来确保用户不能修改文件?文件需要用户可读吗?如果您真的不想让用户更改文件,那么答案可能是某种加密(前提是用户不需要能够读取文件)。像这样的东西 trivial XOR encryption scheme 可能就够了。

    推荐文章