Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何保护android数据库文件?_Android_Sqlite_Android Sqlite_Android Database - Fatal编程技术网

如何保护android数据库文件?

如何保护android数据库文件?,android,sqlite,android-sqlite,android-database,Android,Sqlite,Android Sqlite,Android Database,我有个问题。我正在使用xyz.db文件,该文件存储在资产文件夹中。我正在将所有数据从xyz.db复制到存储文件夹中的data/data/com.xyz/abc.sqlite中存储的应用程序db。现在我想保护资产的xyz.db文件。因为它可以通过逆向工程很容易地从apk中提取。请帮助我保护资产文件夹的数据库文件。您的问题没有最终解决方案。 你将使用的任何技术都可以被一个意志坚定的熟练攻击者击败 您必须承认,如果您希望在apk文件中存储数据库xyz.sql,并且以后希望您的应用程序使用它,那么也可能

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

您的问题没有最终解决方案。 你将使用的任何技术都可以被一个意志坚定的熟练攻击者击败

您必须承认,如果您希望在apk文件中存储数据库xyz.sql,并且以后希望您的应用程序使用它,那么也可能有人将您的应用程序反向检索它。基本上只是因为在某一时刻,手机上会提供纯文本信息


希望我已经讲得够清楚了

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

  • 密码保护的zip文件,包含运行时应提取的数据库
  • 使用对称密钥加密文件,然后在运行时再次对其解密
  • 利用对静止数据执行加密的
  • 在上述两种情况下,您都需要担心存储密码或密钥。没有可靠的方法来保护文件,但上述方法需要更多的努力,应该作为基本保护添加

    谨记安全

    在Android中,数据库文件的访问权限通常决定谁可以使用您的数据库。如果您遵循本系列后续文章中介绍的标准方式,您的数据库文件将位于应用程序的私有目录中。这意味着你的应用拥有数据库文件,其他人无法访问它。即使使用其他不太常见的方法创建数据库,您也只能授予对该文件的访问权限。因此,其他人可以访问您的所有数据库,或者什么都不访问。没有中间立场

    仍然:
    您永远不应该依赖于数据库中的数据不被窥探。任何敏感数据都应该加密。非常敏感的数据根本不应该存储在设备上。请记住,如果设备丢失,任何行为不端的设备查找器都可以访问数据库文件和应用程序。在根设备上,可以读取所有文件。SQLite Editor等应用程序甚至可以轻松读取敏感数据–如果这些数据未加密:

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

    检查与数据库加密相关的技术。像SQLCiphe.Look-in,哪个有能力加密资产和解密广告runtime@Philliphe,我也在同一条船上航行。您能告诉我哪些步骤/方法最适合您吗?作为您的方法,我的数据库加载了一些我不想公开的数据。我们有没有办法保护这个数据库。我发现SQLCipher有一个问题,因为我们需要指定密码短语。你能告诉我是什么帮助了你吗?