Kev*_*n99 1 c# security encryption json unity-game-engine
我正在开发我的第一个 Android 移动游戏,我正在尝试找出加密 JSON 本地保存数据的最佳方法,我知道加密并不能保证元数据 100% 安全,那么其他游戏会做什么进行强大的加密来保护他们的本地数据?也许他们在元数据中制作了不止一种加密算法?如果是这样,我知道 AES 加密算法,我可以将它与其他什么算法结合使用?
加密保存数据只能保护其免遭直接文件操作。精明的作弊者可以使用十六进制编辑器和代码注入在运行时修改游戏值。
话虽这么说,任何将你的保存数据转换为非明文的东西都可以防止大多数作弊行为。“安全本地保存数据”的层通常是:
最容易作弊- 纯文本 JSON。用户可以直接操作这些值。大多数玩家可以轻松修改这些值。
稍微复杂一些- Base64 编码。用户可以解码该数据并对其进行修改,而无需反编译代码或寻找加密密钥。大多数玩家不知道如何做到这一点。
更复杂的是- 使用 System.Security.Cryptography 进行 AES 加密。用户需要加密密钥才能对保存文件进行任何更改。很少有用户具备执行此操作的技术知识。
基于服务器的加密和验证——由于加密密钥在服务器上,用户不可能直接在本地修改文件。
请记住,上述解决方案都不会阻止用户在运行时使用十六进制编辑器或代码注入直接修改游戏值。如果您想完全防止任何运行时数据修改,您需要在权威服务器上运行您的游戏,并且您构建的应用程序只能充当客户端。
根据我的经验,试图防止作弊是一场很难获胜的军备竞赛。您最好将开发时间花在让游戏变得有趣,而不是维持本地托管游戏的竞争完整性。
| 归档时间: |
|
| 查看次数: |
3717 次 |
| 最近记录: |