如何保护android数据库文件?

时间:2016-11-08 11:06:06

标签: android sqlite android-sqlite android-database

我有问题。我正在使用xyz.db文件,它存储在资产文件夹中。我将所有数据从xyz.db复制到应用程序数据库,存储在存储文件夹中的data / data / com.xyz / abc.sqlite中。现在我想保护资产的xyz.db文件。因为它可以通过逆向工程从apk中轻松提取。请帮我保护资产文件夹的数据库文件。

3 个答案:

答案 0 :(得分:1)

您可以执行以下操作,以便在DB中访问数据相对困难。

  1. 密码保护的zip文件,包含应在运行时提取的db。
  2. 使用对称密钥加密文件,并在运行时再次对其进行解密。
  3. 利用为静态数据执行加密的sqlcipher
  4. 在上述两种情况下,您都需要担心存储密码或密钥。没有确定的射击方式来保护文件,但上面需要更多的努力,应该作为基本保护添加。

答案 1 :(得分:0)

您的问题没有最终解决方案。 您使用的任何技术都可能被坚定的技术攻击者击败。

你必须接受如果你想在你的apk文件中存储数据库xyz.sql而你以后希望你的应用程序使用它,那么反转你的应用程序的人也可以检索它。基本上只是因为手机上可以获得某一时刻的纯文本信息。

希望我已经足够干净了

答案 2 :(得分:0)

  

牢记安全

与Android中一样,数据库文件的访问权限决定了谁可以使用您的数据库。如果您按照本系列以下帖子中提供的标准方式,您的数据库文件将位于应用程序的私人目录中。这意味着您的应用程序拥有数据库文件,其他任何人都无法访问它。即使使用其他不太常见的方法来创建数据库,您也只能授予对文件的访问权限。因此,其他人可以访问您的所有数据库或没有。没有中间立场。

Still:你永远不应该依赖数据库中的安全数据。任何敏感数据都应加密。根本不应将非常敏感的数据存储在设备上。请记住,如果设备丢失,设备的任何行为不当的查找程序都可以访问数据库文件以及您的应用程序。在root设备上,可以读取所有文件。像SQLite Editor这样的应用程序可以轻松读取敏感数据 - 如果它们没有加密:

  • 在数据隐私至关重要的情况下,您必须恢复安全服务或强制用户每次在加密和存储数据或分别读取和解密数据之前输入密码。 source