【问题标题】:Making an uneditable gamesave file制作可编辑的游戏存档
【发布时间】:2012-05-02 22:26:33
【问题描述】:

我正在做的是为了好玩而制作控制台二十一点。我想省钱,以便用户可以每天玩游戏,但我不想将其保存在文本文件中,用户可以随意更改金额。

我已经想过用密码制作隐藏文件或加密文件,但我不喜欢那样。我希望它有点像当你打开一些随机的 dll 文件时,你看到的只是你无法理解的乱码。

【问题讨论】:

  • 为什么不加密文件?你决定不走这条路有什么原因吗?您总是可以只以二进制形式存储金额。知道自己在做什么的人可以轻松更改它,但这是一种简单的入门方式。
  • 或将数据与安全哈希一起存储——他们将能够读取文本文件,但不能对其进行编辑。
  • 只是一个想法,偏好呢。只要安装了应用程序,它们就会持续存在,并且可以对用户隐藏。

标签: java file console blackjack


【解决方案1】:

防止用户篡改其统计信息的一种防弹方法是将统计信息存储在远离他们的远程服务器上。不过,这将要求用户在游戏期间在线。 OTOH,您将能够展示顶级玩家的阶梯等等。

如果您想要离线存储,加密文件可能是最佳途径。您只需要正确隐藏文件。

在修改文件之前,请阅读其修改时间。更新后,恢复时间。用户将很难确定哪个文件已更改。

使用游戏使用的无害文件,其中包含格式允许的数据块。它可以是一个 XML 文件,将加密字符串存储在注释中。它可以是 JPG 或 PNG 文件,将加密字符串存储在注释或 EXIF 部分中,位于已知偏移量处(因此您无需解析文件)。 WAV、OGG、MP3 也允许包含非解释数据。当您将数据隐藏在实际像素值等中时,这不是真正的隐写术,而且要容易得多。

我想你知道一个有反汇编和调试器的破解者可以破解这个方案。但普通用户可能不会打扰。

【讨论】:

    【解决方案2】:

    听起来您在谈论Steganography,但传统加密可能更安全且更易于实施。

    【讨论】:

      【解决方案3】:

      您可以加密文件中的值: 看看:http://dinofilias.com/encrypt.htm 有了这样的基本加密,只要用户无权访问密钥,您的数据就相对安全。

      【讨论】:

        【解决方案4】:

        您可以获得使用加密的文件包含乱码的效果。只需将加密数据保存为字节(不转换为 ASCII 表示)。由于加密数据的值可以在 0x00 和 0xFF 之间,所以会有乱码。

        这是一个如何加密文本的简单示例:http://www.exampledepot.com/egs/javax.crypto/desstring.html

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-08-15
          • 1970-01-01
          • 2019-04-25
          • 2021-10-20
          • 2020-02-03
          • 1970-01-01
          相关资源
          最近更新 更多