如您所知,我们可以在生根后访问Android设备上的任何文件夹。我的应用程序有一个数据库和一些其他二进制文件我知道我无法阻止用户查看我的文件和数据库。但有没有办法阻止用户将其复制到其他Android设备进行非法使用?
答案 0 :(得分:4)
一种选择是加密存储在数据库中的数据。通常它以明文形式存储。 SQLCipher,我相信也适用于Android ..
来自Android / google official forums,
拥有root电话的用户可以访问他们想要的任何文件。 否则,传统的板载闪存位置中的数据库是 安全
如果您想要阻止(路由访问),则只选择加密它。但需要很长时间。
编辑:
我所说的是,它永远不会完全安全。你可以让黑客变得困难。您可以将解密密钥(仅)保存在服务器中(如果从服务器下载整个数据非常耗时),那么应用程序需要网络连接才能工作。您可以将密钥保存在隐藏文件中(文件名以。开头。),但具有linux类型文件系统知识的root用户可以找到它们。或者你可以像Teovald在这个答案的评论中建议的那样,通过任何常量(如IMEI号)使用任何哈希算法在运行时生成密钥,但它也需要一些处理。您尝试保护它的次数越多,使用它所需的工作就越多。所以这是50-50种情况,决定应该取决于一个人的要求。
答案 1 :(得分:3)
除了加密(参见Krishnabhadra的回答),确保关键数据的唯一方法是不在设备上拥有所有内容。因此,您只能在线访问最重要的数据。
当然,这有一个缺点,即如果用户没有连接,并非所有应用都可用。您必须在保持数据安全和窥探之间保持平衡,并允许对数据进行即时脱机访问。
如果可以缓解前一个问题取决于数据。如果一切都很严重,则设备上不允许任何操作。用户将理解并不情愿地接受这一点。没有人会想要在他的设备上复制他的银行账户。但即使在离线模式下,您也应该允许访问所有不重要的内容。