Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 打开存储在SD卡上的大型加密pdf文件_Android_Pdf_Encryption - Fatal编程技术网

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

Android 打开存储在SD卡上的大型加密pdf文件,android,pdf,encryption,Android,Pdf,Encryption,在我的项目中,我使用定制的android设备,为了安全起见,我必须加密SD卡上的所有文件。我使用的是AES-128位加密,但解密和打开文件需要的时间太长 对于我使用CipherInputStream和CipherOutputStream和代理服务器动态解密的视频。对于大型pdf文件,这可能吗 一个12 MB的pdf文件解密大约需要40秒,因此在完全解密后打开该文件不是一个选项。此外,我不想将解密后的文件保存在设备上的任何位置。是否可以像打开视频一样打开部分pdf文件 我尝试在android中使用

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

对于我使用
CipherInputStream
CipherOutputStream
和代理服务器动态解密的视频。对于大型pdf文件,这可能吗

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

我尝试在android中使用全磁盘加密,但在我的定制设备上无法使用,只显示了一个绿色的droid,之后什么也没有发生


提前谢谢

如果您只是对整个文件进行了加密,而您的查看器应用程序/库希望得到一个完整的文件,那么实际上并非如此。如果使用PDF加密(对文件中的每个对象进行加密),则可以根据需要解密和显示它们


你到底想在这里实现什么?这些文件是你应用程序的一部分吗?如果您只想保护SD卡上的数据,有一些方法可以自动实现,但它们需要根设备。例如。

前面我在模拟器上测试。在实际设备上,解密所需的时间要少得多(12 MB约6秒),并且可以接受。最后,我做了以下工作:-

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

这些文件将保存到某个隐藏的临时位置,一旦不再需要,该位置将被删除


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

是的,这些文件是我应用程序的一部分。我有定制的android设备,我希望这些文件只能通过这些设备查看。我正在加密文件,以便用户无法将其复制到其他设备。如前所述,我对所有文件使用AES-128位加密。密钥存储在哪里?如果它在设备上,他们总是可以提取它并解密文件。用户将输入一些PIN或密码,用于首先解密密钥,然后主要内容将可用。加密密钥存储在设备中的某个临时位置。这是有道理的。但是使用此设置,您最好的选择可能是拆分PDF文件。