我正在为android开发我的第一个移动游戏,我正在试图找到最好的方法来加密我的JSON本地保存数据,我知道加密不能使元数据100%安全,那么其他游戏做什么来进行强加密来保护他们的本地数据呢?也许他们在元数据中产生了多个加密算法?如果是这样的话,我知道AES加密算法,我还能与它结合什么算法呢?
发布于 2022-06-01 16:25:40
加密保存数据只保护它不受直接文件操作的影响。精明的骗子可以在运行时使用十六进制编辑器和代码注入来修改游戏值。
话虽如此,任何将保存数据转换为非明文的内容,都将防止大多数欺骗行为发生。“安全本地保存数据”的层通常是:
最容易欺骗-纯文本JSON。用户可以直接操作这些值。大多数玩家可以很容易地修改这些值。
稍微复杂一些,- Base64编码.用户可以对这些数据进行解码和修改,而无需对代码进行反编译或查找加密密钥。大多数玩家不会知道如何做到这一点。
使用System.Security.Cryptography进行更复杂的- AES加密.用户需要加密密钥才能对保存文件进行任何更改。很少有用户有这样做的技术知识。
基于服务器的加密和验证-由于加密密钥在服务器上,用户不可能在本地直接修改文件。
请记住,上述任何解决方案都不会阻止用户在运行时使用十六进制编辑器或代码注入直接修改游戏值。如果您想要防止任何运行时数据修改,您将需要运行您的游戏在一个权威的服务器,您构建的应用程序将只作为客户端。
根据我的经验,试图防止作弊是一场很难取胜的军备竞赛。你最好把你的开发时间花在玩游戏上,而不是为本地主办的游戏保持竞争的完整性。
https://stackoverflow.com/questions/72464659
复制相似问题