我有个问题。我使用的是xyz.db文件,该文件存储在资产文件夹中。我将所有数据从xyz.db复制到应用程序数据库,该数据库存储在存储文件夹中的data/ data /com.xyz/abc.sqlite中。现在我想保护资产的xyz.db文件。因为它可以通过逆向工程很容易地从apk中提取出来。请帮助我保护我的资产文件夹的数据库文件。
发布于 2016-11-08 19:12:58
您可以执行以下操作,使DB中的数据访问变得相对困难。
受密码保护的包含db的压缩文件,该文件在运行时应使用对称密钥extracted.
在上述两种情况下,您都需要考虑如何存储密码或密钥。没有确定的拍摄方法来保护文件,但以上将需要更多的努力,并应添加为基本保护。
发布于 2016-11-08 19:11:28
你的问题没有最终的解决方案。你将使用的任何技术都可以被一个意志坚定、技术高超的攻击者击败。
你必须接受这一点,如果你想在apk文件中存储数据库xyz.sql,然后你想让你的应用程序使用它,那么对你的应用程序进行反向操作的人也可以检索它。基本上只是因为在某个时刻的纯文本信息将在手机上可用。
希望我已经足够干净了
发布于 2016-11-08 19:17:56
牢记安全性
通常,在Android中,数据库文件的访问权限决定了谁可以使用您的数据库。如果您遵循本系列后续文章中介绍的标准方法,您的数据库文件将位于您的应用程序的私有目录中。这意味着您的应用程序拥有数据库文件,其他人无法访问它。即使使用其他不太常见的方法来创建数据库,也只能授予对文件的访问权限。因此,其他人可以访问您的所有数据库,也可以什么都不访问。没有中间立场。
Still:你永远不能指望数据库中的数据是安全的,不会被窥探。任何敏感数据都应该加密。非常敏感的数据根本不应该存储在设备上。请记住,如果设备丢失,任何发现设备行为不端的人都可以访问数据库文件以及您的应用程序。在带根目录的设备上,所有文件都可以读取。像SQLite编辑器这样的应用程序甚至可以轻松读取敏感数据-如果它们没有加密的话:
https://stackoverflow.com/questions/40485278
复制相似问题