0

我想使用 Titanium Appcelerator 开发用于查看报纸/杂志的应用程序,但我有一个问题,如何在手机上存储用户无法通过应用程序以外的其他方式访问的数据?该数据应该采用什么格式(blob、pdf、纯文本)?它们应该存储在数据库中,还是作为文件存储?你能在下面发表你的建议吗?

4

1 回答 1

1

在 Titanium 中,您有多种存储数据的选项。首先,您应该检查作为输入获得的数据。它是 JSON 或 PDF 还是纯文本或其他什么。以下选项可用: - 使用集成数据库 (SQLite) 存储数据 - 当您的输入数据是纯文本或可以转换为文本或类似内容的 json 时,这可能是合适的。如果需要,您还可以将 blob 数据存储在数据库中。- 使用文件系统存储数据:在 iOS 和 Android(我认为不是 mobileweb)上,您可以将数据持久存储在文件存储中。如果您的输入数据是二进制文件(pdf 或类似文件),这很有用。

然而,在这两种情况下,用户都能够读取数据,也不能读取数据。- iOS:用户将能够读取保存在文件系统上的文档,也可能读取位于数据库中的数据 - Android:我认为在 android 上,这取决于设备是否具有 root 访问权限以及您存储该数据的位置(在应用程序内文件夹或外部/内部但可免费访问的存储)

在这两种情况下,访问这些数据并不容易。通常普通用户不会这样做。对于专业用户来说,阅读这些数据应该很容易。那么如何保护这些数据,使用户无法读取呢?

您可以将加密的数据存储在数据库中(默认情况下,钛中不提供数据库加密,因此您需要使用模块或自己加密数据)或者您将其加密存储(这也取决于您 - 没有现成的-to-use 方法)在文件系统上。

在我看来,第一个解决方案是更好的解决方案。我会做以下事情: - 获取数据(从服务器或其他地方,数据类型无关紧要) - 转换为 base64(对二进制文件有用且需要,但也适用于纯文本) - 使用您选择的加密算法加密 base64 - 存储在数据库中

因为这可能需要大量内存,您应该提供删除此数据以节省空间的选项。

于 2013-02-19T20:13:12.913 回答