打开存储在SD卡上的大型加密pdf文件



在我的项目中,我正在使用自定义的Android设备,为了安全起见,我必须加密SD卡上的所有文件。我使用的是 AES-128 位加密,但解密和打开文件需要很长时间。

对于我使用CipherInputStreamCipherOutputStream以及代理服务器即时解密的视频。这对于大 pdf 文件可能吗?

一个 12 MB 的 pdf 文件大约需要 40 秒才能解密,因此在完全解密后打开文件不是一种选择。另外,我不想将解密的文件保存在设备上的任何位置。是否可以像打开视频一样打开pdf文件的某些部分?

我尝试在 android 中使用全磁盘加密,但它在我的自定义设备上不起作用,只显示一个绿色机器人,之后什么也没发生。

提前谢谢。

如果您只是加密了整个文件,并且您的查看器应用程序/库希望获得整个文件,则不是真的。如果使用 PDF 加密(对文件中的每个对象进行加密),则可以根据需要解密和显示它们。

你到底想在这里实现什么?这些文件是应用的一部分吗?如果您只想保护SD卡上的数据,有一些方法可以自动执行此操作,但它们需要root设备。例如 LUKS 管理器。

早些时候我在模拟器上进行测试。在实际设备上,解密所需的时间要少得多(12 MB为~6秒)并且可以接受。最后我做了以下事情:-

对于视频和音频,我使用流式传输到mxPlayer。对于无法部分显示的大文件,我只加密了文件的一部分。加密大约 10MB 的文件使其无法使用。

这些文件被保存到一些隐藏的临时位置,一旦不再需要,就会被删除。

设备上仍然需要适当的应用程序,以便Android可以检测到它们并在需要时打开它们。就像某些视频播放器在从我的应用程序打开视频时不起作用一样,但 mxPlayer 可以。

最新更新