如何安全地为我的游戏存储金币

时间:2017-09-20 05:44:18

标签: python

我正在使用python编写一个用于Windows的游戏。游戏要求玩家在某个时刻购买金币。该程序将该硬币的余额存储到文件中,但如果用户在购买后备份该文件,则使用金币然后用备份替换该文件,金币将被恢复。如何让程序检测到这一点。程序如何知道原始文件何时被删除(假设没有连接到互联网)

2 个答案:

答案 0 :(得分:0)

如果您希望脱机强制执行限制,则无法解决此问题。您可以通过让人们实际下载代码本身作为购买的一部分来限制可用的项目/功能。但是用户无法进行完整备份。将状态存储在客户端计算机上后,您将失去控制权。你只能使作弊难以执行,但不能阻止它。

但是,您可以在不进行其他修改的情况下阻止恢复硬币。通过整合货币和物品/物品的存储,您可以确保特定的硬币映射到某些特定的其他东西。通过这种方式,用户可以更改购买的内容(恢复备份并再次购买),但无法获得无限的好处。

答案 1 :(得分:0)

实施SAVEGAME ANTITAMPER:

  1. 安装PyCrypto(如果已经安装,请跳过此步骤)
  2. 创建一个将作为存储容器的类(char的名称,硬币,库存等将存储在此处)。重要提示:永远不要单独存钱和库存!!!
  3. 保存时,腌制该存储对象。
  4. 使用PyCrypto.Cipher.AES加密保存(最值得信赖)。在大多数情况下,关键是charactername[::-1]
  5. 将其写入文件。田田!
  6. 注意 在某些情况下,即使加密也不够。如果您真的想保护您的保存,请使用AES + Cython + DeNuvo。但是,云存储仍然更安全。