我正在為 android 開發我的第一個移動游戲,我正在嘗試找出加密我的 JSON 本地保存資料的最佳方法,我知道加密不會使元資料 100% 安全,所以其他游戲怎么做做一個強大的加密來保護他們的本地資料?也許他們在元資料中制作了不止一種加密演算法?如果是這樣,我知道AES加密演算法,我可以將它與什么其他演算法結合起來?
uj5u.com熱心網友回復:
加密保存資料只能保護它免受直接檔案操作。精明的作弊者可以使用十六進制編輯器和代碼注入在運行時修改游戲值。
話雖如此,任何將您的保存資料轉換為非明文的東西都可以防止大多數作弊。“安全本地保存資料”的層通常是:
最容易作弊- 純文本 JSON。用戶可以直接操作這些值。大多數玩家可以輕松修改這些值。
稍微復雜一些- Base64 編碼。用戶可以解碼這些資料并對其進行修改,而無需反編譯代碼或尋找加密密鑰。大多數玩家不知道如何做到這一點。
更復雜- 使用 System.Security.Cryptography 的 AES 加密。用戶需要加密密鑰才能對保存檔案進行任何更改。很少有用戶具備執行此操作的技術知識。
基于服務器的加密和驗證——由于加密密鑰在服務器上,用戶不可能直接在本地修改檔案。
請記住,以上解決方案都不能阻止用戶在運行時使用十六進制編輯器或代碼注入直接修改游戲值。如果您想完全防止任何運行時資料修改,您需要在權威服務器上運行您的游戲,而您構建的應用程式只能作為客戶端。
以我的經驗,試圖防止作弊是一場很難獲勝的軍備競賽。您最好將開發時間用于讓游戲變得有趣,而不是保持本地托管游戲的競爭完整性。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/484711.html
上一篇:重寫提交歷史后更新子模塊
下一篇:Unity鏡像網格,但顏色朝下
