2017-05-30 68 views
0

我无法找到一种方法将密码保护文件中的游戏高分存储起来。LibGDX - 安全地使用“首选项”存储高分

我不希望玩家在.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> 
+0

除了约翰的伟大答案,我不会使用首选项文件的加密数据,但创建自己的文件。 – Madmenyo

回答

1

如果玩家足够认定,恐怕您存储在本地的任何数据都容易被黑客入侵。即使您对整个文件进行了加密(如将其作为二进制文件),确定的人也可以生成多个高分档案并对其进行比较。

如果玩家可以分享高分(比如有一些吹嘘的因素),那么我会建议你采用客户 - 服务器模式和远程存储在数据库中的高分,球员无法修改它们。

如果高得分本地保存,然后我就断定,它可能是不值得的文件防篡改。如果他们想要夸大他们的私人分数而不是真正赚取分数,那么让他们。你花时间开发一个真棒新游戏机制。

之所以这么说,另一种方式来处理这个问题将不会使文件防篡改的,但是当它已被篡改检测。你可以通过偷偷摸摸的方式来做到这一点,例如跟踪校验和 - 如果校验和与高分档案不匹配,你知道它已被篡改,并将“骗子”复活节彩蛋添加到游戏中。

+0

我明白了。谢谢 – Joao