0

我正在我的 android 应用程序中使用 sqlite。

我在问这个荒谬但有效的问题。

  1. 任何人都可以复制我存储在内部存储中的数据库吗?
  2. SD卡制作数据库的安全性如何?
4

4 回答 4

0

您必须在一段时间后将数据库发送到服务器,因为 SD 卡不够安全。在复制整个数据库文件夹的代码下方。

public static void copyDirectoryOneLocationToAnotherLocation(File sourceLocation, File targetLocation)
        throws IOException {

    if (sourceLocation.isDirectory()) {
        if (!targetLocation.exists()) {
            targetLocation.mkdir();
        }

        String[] children = sourceLocation.list();
        for (int i = 0; i < sourceLocation.listFiles().length; i++) {

            copyDirectoryOneLocationToAnotherLocation(new File(sourceLocation, children[i]),
                    new File(targetLocation, children[i]));
        }
    } else {

        InputStream in = new FileInputStream(sourceLocation);

        OutputStream out = new FileOutputStream(targetLocation);

        // Copy the bits from instream to outstream
        byte[] buf = new byte[1024];
        int len;
        while ((len = in.read(buf)) > 0) {
            out.write(buf, 0, len);
        }
        in.close();
        out.close();
    }

}
于 2013-02-01T11:59:19.747 回答
0

第二个问题:不是很安全。如果可以的话,使用内部存储,它更安全。任何程序都可以编辑 sd 卡上的任何内容,因此只需将卡插入计算机,挂载 sqlite 数据库,他们就可以完全访问数据库,包括读/写/编辑。

理论上,内部存储是安全的,但是,如果一个人有一个根设备,他们甚至可以进入。不过,人数不会很多,你只需要留意它。

如果您真的必须找到针对每次尝试的安全解决方案,您可能会研究加密数据库。

第一个问题:当然,您可以复制数据库,就像复制任何文件一样。

于 2013-02-01T11:48:23.117 回答
0

您可以将数据库复制到 sdcard,但它不安全。任何读取 SD 卡的应用程序或外部设备都可以访问它。

于 2013-02-01T11:49:25.250 回答
0

任何有权访问 SD 的人在技术上都可以复制您的 sqlite 文件。我认为内部存储不够安全(因为您可以根设备并具有管理访问权限,因此您几乎可以在那里做所有事情)。无论如何,这里有一个关于如何将你的 sqlite 文件复制到内部存储的链接

于 2013-02-01T11:51:57.497 回答