8

我需要的:

对于 Android:我需要永久保存数据,但也能够编辑(并且显然可以读取)它。用户不应访问此数据 - 它可以包含诸如高分之类的内容,用户不得对其进行编辑。

我的问题

我会(并且已经)使用过Internal Storage,但我不确定它实际上有多安全。这里说:

您可以将文件直接保存在设备的内部存储中。默认情况下,保存到内部存储的文件对您的应用程序是私有的,其他应用程序无法访问它们(用户也不能)。当用户卸载您的应用程序时,这些文件将被删除。

这基本上正是我所需要的——但它真的安全吗?可以通过有根设备访问(也许只能读取?)吗?(或任何其他方式?)

SQLite 数据库或共享内存呢?它们是否更适合保存(少量)数据?

另外:通常建议在内部以不同的方式处理“秘密”数据吗?(比如不将其(内部)保存为整数/字符串,而是某种加密)

4

3 回答 3

3

可以通过有根设备访问(也许只能读取?)吗?

它可以被读取和写入。

它可以包含诸如高分之类的内容,用户不得对其进行编辑。

这是用户的数据,而不是您的数据。它是用户的设备,而不是你的。因此,用户可以根据需要编辑该数据,只要他们的数据存储在他们的设备上。

现在,如果您想阻止其他人编辑该数据,那么使用用户提供的密码进行加密是一种合理的措施。对于游戏高分来说,这似乎是不必要的。

否则,如果您不希望他们编辑该数据,请不要将其存储在他们的设备上。

于 2013-07-23T15:39:17.077 回答
2

使用 SharedPreferences 是您可能想要的。它将数据保存在 /data/ 目录深处的 XML 文件中。除非手机具有 root 权限,否则用户或其他应用程序无法到达那里。

http://developer.android.com/reference/android/content/SharedPreferences.html

于 2013-07-23T14:58:04.777 回答
1

不,这不安全,用户可以在有根设备和模拟器上修改文件。最好使用加密,但加密不是100%安全的,事实上有经验的极客可以破解你的加密。我建议将用户不应访问或操作的关键数据保存在您的网络服务器上而不是用户的设备上。

于 2013-07-23T15:07:57.163 回答