从数据库中读取加密的 blob 文件而不存储它

Reading encrypted blob file from database without storing it

我想将 pdf、word、excel (...) 文件作为 BLOB 数据存储到 sqlite 数据库中,然后使用第三方应用程序检索它以打开它.

因为这些文件是机密文件,所以我不希望在阅读它们时将它们存储在 phone 中。 (如果 phone 被盗,我不想让陌生人访问该文件)

我有哪些选择?

I don't want them to be stored in the phone while reading them

从技术上讲,您无法控制它。欢迎第三方应用程序对数据做任何想做的事情,包括将其保存到文件、通过 Internet 共享等。

欢迎您编写 ContentProvider 流式传输您的文档以响应 openFile()。在您的情况下,由于内容不是文件,因此您需要使用 ParcelFileDescriptor 管道,以便将数据写入 OutputStreamThis sample project 演示了基本技术,尽管我提供的是资产中的 PDF。

不过,如果您 运行 遇到较大文档的问题,我不会感到惊讶。客户端应用程序可能希望在流中向前和向后搜索,而管道不会产生可搜索的流。