我正在使用Objective-C在Xcode中为iOS和OSX创建游戏。
我正在经历的一个主要问题是找到防止骗子入侵我游戏的方法。
我最近学会了如何通过属性列表保存/读取信息。在应用程序的OSX版本中,我可以直接访问这些列表并通过右键单击应用程序来编辑它们,转到包装内容,然后转到资源。我最初的计划是存储/编辑高分等数据。显然,这个应用程序的一个主要缺点就是这个应用程序的用户可以轻易作弊。
除此之外,我已经玩了很多iOS游戏,我看到用户在记分牌上作弊,有时甚至是那些似乎已经入侵游戏的用户,因为他们有很多钱,他们绝对不可能获得否则(我正在考虑的例子是一个竞争性的塔防游戏,两个玩家都以0现金开始并且每隔几秒就获得一定数量。如果他们在前几秒获得100倍的现金,他们肯定会被黑客入侵)
因此,我担心我在游戏中存储的数据的安全性,并寻找解决方案,以下是我正在考虑的问题。
我非常喜欢属性列表,但使用其他形式的数据存储方法会更安全吗?或者它会是一样的,因为黑客仍然可以解码这些文件?
有没有办法在应用程序中隐藏这些属性列表/数据,以便黑客无法访问它们?或者,如果他们看起来足够努力,他们还会最终找到他们吗?
如果上述2不可能或者仍然存在骗子的可能性,那么最好的解决方案是对这些列表中的数据进行编码,以便只能用某些键读取它们吗?例如。我存储的每个分数将被编码除以-129,而应用程序将通过乘以-129来读取它们。
有人可以为OSX和iOS推荐这个问题的解决方案吗?
答案 0 :(得分:0)
我认为最好的解决方案是将这些值存储在服务器上,这些只能在身份验证和HTTPS连接后访问。
另一种方法的缺点是它无法离线使用。
因此,如果您希望离线访问,那么您也可以使用plist。您唯一需要做的就是加密文件并将其写入文档目录。您可以将plist转换为数据,然后加密并编写它。密钥可以是您可以存储在iOS钥匙串中的用户密码。
上述方法非常安全,实际上非常安全,但没有任何东西是牢不可破的。希望这会有所帮助。
您可以使用此library进行加密。