2017-05-30 91 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