JSON 统一加密的最佳方式?

Best way to JSON encrypting in unity?

我正在为 android 开发我的第一款移动游戏,我正在尝试找出加密我的 JSON 本地保存数据的最佳方法,我知道加密不会使元数据 100% 安全,那么其他游戏如何进行强加密以保护其本地数据? 也许他们在元数据中制作了不止一种加密算法? 如果是这样,我知道AES加密算法,我还可以结合其他什么算法?

加密保存数据只会保护它免受直接文件操作。精明的作弊者可以使用十六进制编辑器和代码注入在 运行 时间修改游戏值。

也就是说,任何将您的保存数据转换成某种东西的东西 non-plaintext 都可以防止大多数作弊行为。 “安全本地保存数据”的层通常是:

最容易作弊 - 明文JSON。用户可以直接操作这些值。大多数玩家都可以轻松修改这些值。

稍微复杂一些 - Base64 编码。用户可以解码此数据并对其进行修改,而无需反编译代码或寻找加密密钥。大多数玩家都不知道该怎么做。

更复杂 - 使用 System.Security.Cryptography 的 AES 加密。用户需要加密密钥才能对保存文件进行任何更改。很少有用户具备执行此操作的技术知识。

Server-based加密验证 - 由于加密密钥在服务器端,用户无法在本地直接修改文件

请记住,none 上述解决方案会阻止用户在 运行 期间使用十六进制编辑器或代码注入直接修改游戏值。如果您想完全阻止任何 运行 时间数据修改,您需要 运行 您的游戏在权威服务器上,您构建的应用程序将仅作为客户端。

根据我的经验,试图防止作弊是一场很难取胜的军备竞赛。与保持本地托管游戏的竞争完整性相比,您最好将开发时间花在让游戏变得有趣上。