LibGDX - 安全地存储'偏好'的高分

时间:2017-05-30 00:26:26

标签: libgdx android-preferences

我无法找到将游戏的高分存储在受密码保护的文件中的方法。

我不希望玩家进入.prefs /来改变高分并用它加载游戏。

我可能很难通过加密来改变这些值,但这并不能保证播放器不会随机使用不同的加密值,而是使用正确的格式。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
   <entry key="highScore">4</entry> Not encrypted
   <entry key="lGTlMAdWzXQaem8c78FMow==">NiGac2LEgYO8uo0wkiKpasdLA==</entry> Encrypted
</properties>

1 个答案:

答案 0 :(得分:1)

我担心如果玩家足够坚定,你本地存储的任何数据都很容易受到攻击。即使您对整个文件进行了加密(比如将其设为二进制文件),一个坚定的人也可以生成多个高分文件并进行比较。

如果玩家可以分享高分(比如那里有一些夸耀因素),那么我建议您采用客户端 - 服务器模型,并将高分远程存储在数据库中,而玩家无法修改它们。

如果高分保持在本地,那么我认为它可能不值得使文件防篡改。如果他们想要夸大他们的私人分数而不是实际赚钱,那就让他们吧。你可以花时间开发一款出色的新游戏机制。

所有这一切,解决问题的另一种方法是不使文件防篡改,而是检测何时被篡改。您可以通过执行跟踪校验和等偷偷摸摸的事情来做到这一点 - 如果校验和与高分文件不匹配,您知道它已经被篡改并添加了“骗子”#39;复活节彩蛋进入你的游戏。