存储高分的安全方法?
Secure way to store a highscore?
我有一个 Android 应用程序,我只是在“共享首选项”中保存高分。在获得 root 权限的设备上,您只需编辑 XML 并修改乐谱。因为在下一次更新中我计划添加 Google Play Leaderboards,所以我需要安全地存储它们。现在,我只是保存它和它的盐渍散列。但是有一个问题:可以使用 decompileandroid.com 轻松反编译它并阅读我如何加盐并在之后重现该过程。
我希望能够同步离线制作的高分。这是一款非常简单的应用程序,绝对适合在公共汽车或火车上玩。
您可以使用内部存储。详情在官方 android 开发者网站:http://developer.android.com/training/articles/security-tips.html
希望对您有所帮助。
由于设备是客户控制的,而且游戏是离线玩的,所以它总是可以被篡改的。设备上没有 root 无法访问的存储,也没有办法完全混淆客户端代码,使用户无法对其进行逆向工程。您的选择是 1) 更改您的设计并需要更紧密的服务器端集成来检测作弊,或 2) 尝试通过混淆 APK 来使其变得更加困难,并像您建议的完整性检查散列一样加入可绕过的保护措施。
我有一个 Android 应用程序,我只是在“共享首选项”中保存高分。在获得 root 权限的设备上,您只需编辑 XML 并修改乐谱。因为在下一次更新中我计划添加 Google Play Leaderboards,所以我需要安全地存储它们。现在,我只是保存它和它的盐渍散列。但是有一个问题:可以使用 decompileandroid.com 轻松反编译它并阅读我如何加盐并在之后重现该过程。
我希望能够同步离线制作的高分。这是一款非常简单的应用程序,绝对适合在公共汽车或火车上玩。
您可以使用内部存储。详情在官方 android 开发者网站:http://developer.android.com/training/articles/security-tips.html
希望对您有所帮助。
由于设备是客户控制的,而且游戏是离线玩的,所以它总是可以被篡改的。设备上没有 root 无法访问的存储,也没有办法完全混淆客户端代码,使用户无法对其进行逆向工程。您的选择是 1) 更改您的设计并需要更紧密的服务器端集成来检测作弊,或 2) 尝试通过混淆 APK 来使其变得更加困难,并像您建议的完整性检查散列一样加入可绕过的保护措施。