android– 如何让玩家更难破解游戏级数据?

android– 如何让玩家更难破解游戏级数据?,第1张

概述注意:这与android有关,但最佳答案可能不是平台特定的,因此其他标签.考虑类似于愤怒的小鸟的游戏:你有一堆关卡.每次完成一个关卡时,下一关可以播放,但不是之前.如何让玩家更难破解我的游戏文件并解锁不应该可用的关卡?假设进展数据存储在本地.我的想法:在Android上,所有应用程序文件

注意:这与android有关,但最佳答案可能不是平台特定的,因此其他标签.

考虑类似于愤怒的小鸟的游戏:你有一堆关卡.每次完成一个关卡时,下一关可以播放,但不是之前.如何让玩家更难破解我的游戏文件并解锁不应该可用的关卡?假设进展数据存储在本地.

我的想法:

在Android上,所有应用程序文件都存储在一个文件夹中,用户只有在具有root访问权限时才能访问该文件夹(默认情况下,他们从不这样做,但只要你稍微Google一下就很容易获得).现在,我使用的sqlite数据库看起来像这样:

LevelID = pk | UnlockStatus = int, 0 = locked, 1 = unlocked, 2 = completed with 1 star, ...

只要用户没有root用户或者根本不熟悉app文件的存储位置,这就没问题了.但是如果他们有root,那么这个文件很容易编辑.

据我所知,愤怒的小鸟将其等级数据存储在.lua文件中,至少根据其名称.我找不到包含级别信息的文本文件或db文件.在文本编辑器中打开此.lua只显示乱码.我没有尝试过十六进制编辑器.

使用sql表非常方便.有没有一种简单的方法将进度数据存储在sql表中,这样用户将更难理解它?理想情况下,实施它也不应太费时.作为一个离线游戏,我不在乎玩家是否攻击它,所以我正在寻找最好的质量 – 实施时间的权衡.然而,理论上的答案也可以获得更多实现时间以获得更高质量的理论答案.

解决方法:

您最好的选择是使用某种加密方式保存数据.在androID中,sqlite不提供数据库级别的加密.但是,您可以加密表中的值(记录)并在查询后对其进行解密.

另一种方法是将数据保存为内部或外部存储器中某种文本文件(愤怒鸟中的.lua示例)中的键/值对,并对文件内容执行加密.另一方面,在运行时解密它并读取您的键/值对.

Tadaaa!问题解决了:)

总结

以上是内存溢出为你收集整理的android – 如何让玩家更难破解游戏级数据?全部内容,希望文章能够帮你解决android – 如何让玩家更难破解游戏级数据?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1109750.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存