在我的项目中,我使用自定义Android设备,我必须加密我的SD卡上的所有文件以确保安全。我使用AES-128位加密,但解密和打开文件需要很长时间。
对于我使用CipherInputStream
和CipherOutputStream
以及代理服务器进行即时解密的视频。这可能适用于大型pdf文件吗?
12 MB的pdf文件需要大约40秒才能解密,因此在完全解密后打开文件不是一个选项。另外,我不想将解密文件保存在设备的任何位置。是否可以像播放视频一样打开部分pdf文件?
我尝试在Android中使用完整的磁盘加密,但它在我的自定义设备上无效,只显示绿色机器人,之后没有任何反应。
提前致谢。
答案 0 :(得分:2)
如果您刚刚加密了整个文件,并且您的查看器应用/库希望获得整个文件,而不是真的。如果您使用PDF加密来加密文件中的每个对象,您可以根据需要解密和显示它们。
你到底想要达到什么目的?这些文件是您应用的一部分吗?如果您只想保护SD卡上的数据,可以自动执行此操作,但需要使用root设备。例如LUKS Manager。
答案 1 :(得分:0)
之前我在模拟器上进行测试。在实际设备上,解密所需的时间要少得多(12 MB时约为6秒)并且可以接受。最后我做了以下内容: -
对于视频和音频,我使用流式传输到mxPlayer。对于无法在部分中显示的大文件,我只加密了部分文件。加密大约10MB的文件使其无法使用。
文件保存到一些隐藏的临时位置,一旦不再需要就删除。
设备上还需要正确的应用程序,以便Android可以检测到它们并在需要时打开它们。就像一些视频播放器在我的应用程序打开视频时没有工作,但mxPlayer确实如此。