如何在Android中保护SQLite数据库中的数据?

ws51t4hk  于 2023-04-18  发布在  Android
关注(0)|答案(4)|浏览(146)

我目前正在开发一个Android游戏,它将数据保存到SQLite数据库中。这不是真正的“敏感”数据,但我不希望用户能够修改它(出于游戏平衡的明显原因,因为这将是作弊)。当你的手机被root时,访问和修改SQLite数据库非常容易(市场上有很多应用程序)。
那么我是否应该担心这一点,或者认为拥有root手机的用户可以做任何他们想做的事情,包括作弊,这是他们的选择?或者我可以以某种方式加密我不希望他们修改的数据,或者添加MD5校验或类似的东西?
另一种方法是完全放弃SQLite,使用某种带有游戏数据的二进制文件。
请告诉我,如果你们中的一些人已经遇到了类似的问题,你遵循的方法是什么,以及在Android游戏开发社区的“良好做法”。

w3nuxt5m

w3nuxt5m1#

每个人的根访问和安全性是相互排斥的。
任何具有root权限的应用程序或用户都可以读取 * 和修改 * 系统上的每个文件以及所有的主内存。这使得没有多少地方可以存储数据库的潜在加密密钥。
你可以在可执行文件、配置文件等中隐藏部分密钥,但你所能想到的一切都只不过是模糊和模糊的安全性。
如果用户选择向所有人授予root访问权限,这是他们的决定,而作为应用程序开发人员,您的工作不是防止可能造成的任何伤害。
更新:Storing API keys in Android, is obfustication enough?是一个非常类似的问题-它是关于保护API密钥,但它是关于您的选项的相同情况。

lpwwtiir

lpwwtiir2#

sqlcipher for Android可能会在这里提供帮助。
https://guardianproject.info/code/sqlcipher/

qoefvg9y

qoefvg9y3#

我认为根据你的要求最好的方法是使用数据的一致性,例如MD5的分数和时间,然后把分数和时间和MD5在表中,然后每次要使用该行的DB检查MD5的分数和时间,如果在DB中的一个和计算的一个是相同的,行是一致的,否则它被黑客攻击!

ghhaqwfi

ghhaqwfi4#

您可以在Preferences Files Look here中找到您的快乐

相关问题