1

我想在一个 android 应用程序上有一个大型数据库。该数据库是一个独立的文件,每月可能有 2-3 次更新(每个 20mb+,但我预测最大值应该在 40mb 左右)。

我一直听说安卓应用程序被植根,所以人们可以访问那些敏感数据(这将是一个付费应用程序)。我怎样才能对数据库的数据进行加密,以免丢失。是否有可以使用且更安全的替代数据库(sqlcypher 除外)模型(甚至键/值)?

此外,root 手机用户是否可以从外部商店购买 android 应用程序(由于订阅限制,我正在考虑制作一个外部非 android 市场商店)并可以完全访问其内容?

我想做一些与 iphone 模型类似的事情,其中​​没有明显的数据库访问权限(如果您不将其放入 Documents 或启用您的设备进行共享)。

4

2 回答 2

1

如果您使用 H2,您可以加密数据库的表。

所以只有你的应用程序可以挂载和访问它。

当然,您不应该将密钥存储在单个字符串中,因为即使在混淆之后,反编译也很容易发现这一点。

但是,总的来说,您应该问自己这是否真的是一个好模型。

于 2011-07-27T16:01:33.347 回答
1

“iPhone机型”同样容易被越狱打败。

如果数据库和与之一起工作的代码都在一个有根的手机上,那么一个足够坚定的攻击者最终将获得数据。他们只需要一个调试器和一个恰到好处的断点。此外,众所周知,Java 代码很容易进行逆向工程。由于您必须将解密代码发送给用户(否则,应用程序将如何工作?),同一用户可以隔离并利用您自己的解密代码。

于 2011-07-27T16:02:05.537 回答