2

我们正在尝试创建一个应用程序,该应用程序将从服务器下载电子书并将其本地存储在 sdcard 上。我们尝试对电子书进行 DRM,在我们下载电子书后,DRM 将负责电子书的安全性。但后来由于某些原因我们离开了 DRM 的概念。现在我想知道我们是否可以将电子书安全地存储在 sdcard 中。用户不能对文件进行除查看以外的任何操作。我们可以将文件存储在用户根本无法查看文件的其他位置吗?在 iOS 中,我们可以在 Bundle 本身中下载文件,但对于 android ???。我们尝试将 pdf 作为 BLOB 文件存储在 DB 中并尝试从那里读取它,在这种情况下,我们还需要写入文件然后读取它。我对这个问题真的很困惑,有人可以建议我一个关于如何进一步进行的好方法。任何帮助都会非常显着。

4

4 回答 4

2

就我个人而言,我避免使用 SD 卡,因为它几乎对所有应用程序开放,因为 @commonsWare 提到拥有它的内部存储提供了 Android 应用程序沙箱安全性。

您是否考虑过来自 Guardian项目的优秀人员的IOCipher,它基于 SQLCipher 构建,它允许您创建加密的虚拟磁盘。我喜欢它的部分是它是 java.io 库的克隆,因此您应该只进行最少的代码更改。

于 2013-11-06T10:27:55.083 回答
1

我们可以将文件存储在用户根本无法查看文件的其他位置吗?

不在外部存储上。您可以将这本书放在内部存储中,在这种情况下,只有 root 设备用户才能在您的应用程序之外访问它。

于 2013-04-27T12:45:17.090 回答
1

存储在外部存储器上的文件很容易被其他应用程序或用户 PC 读取。如果您不希望其他人获得访问权限,您可能需要加密您的文件。加密良好的文件可以放置在系统中的任何位置,不会有任何被读取的风险。

在您的情况下,将文件存储在内部存储器上听起来并不好,因为仍然有太多设备存在内部存储空间有限,每兆字节都很重要。

于 2013-04-27T12:49:36.890 回答
1

i) 对您很重要的文件进行加密。

ii) 在运行时解密文件并移动到内部存储。

iii) 仅从内部存储访问您的文件。

遵循这些事情将使您的文件和方法调用安全,因为它们只能由内部存储访问。示例:(从内部存储访问移动的资产文件)file:///android_asset/ => file:///data/data/com.test.exmple/files/"

您还可以尝试使用quixxi等透明地为您执行此操作的工具。

于 2016-10-20T05:27:25.863 回答