我的压缩文件已加密,我需要解密并解压缩文件 .
我不是一次解密完整文件并存储在磁盘和解压缩中,因为它不是解压缩加密文件的最佳方式 .
我正在解密一些字节,并且只想解压缩从解密器收到的数据字节(内存缓冲区)并解压缩它们 .
使用minizip我们无法从memory.can解压缩缓冲区数据我使用Zlib Inflate()?这种情况会起作用吗?
如果有任何其他方式使用minizip,请回复 .
如果您正在谈论从存储在内存中的缓冲区解压缩zip文件,该缓冲区包含zip文件的内容,那么您可以使用minizip进行操作 . 如果你看一下minizip它有一个IO API用于从内存加载zip文件,以便你可以解压缩它们 .
zlib_filefunc_def FileFunctions32 = {0}; ourmemory_t *FileMemory = {0}; // Fill out ourmemory_t instance with buffer pointer (base) and length (size) fill_memory_filefunc(&FileFunctions32, FileMemory); UnzipFileHandle = unzOpen2("__notused__", &FileFunctions32);
有多种方法可以处理它的加密/解密方面 . 如果加密例程是zip规范的一部分,那么找一个可以开箱即用的库 . 如果加密是在整个zip文件缓冲区上完成的,那么在将缓冲区传递给minizip的 unzOpen2 函数之前,您可以简单地解密缓冲区 . 如果上述方案都不是您想要的,那么另一种选择可能是为minizip编写自己的加密/解密IO API层 .
unzOpen2
1 回答
如果您正在谈论从存储在内存中的缓冲区解压缩zip文件,该缓冲区包含zip文件的内容,那么您可以使用minizip进行操作 . 如果你看一下minizip它有一个IO API用于从内存加载zip文件,以便你可以解压缩它们 .
有多种方法可以处理它的加密/解密方面 . 如果加密例程是zip规范的一部分,那么找一个可以开箱即用的库 . 如果加密是在整个zip文件缓冲区上完成的,那么在将缓冲区传递给minizip的
unzOpen2
函数之前,您可以简单地解密缓冲区 . 如果上述方案都不是您想要的,那么另一种选择可能是为minizip编写自己的加密/解密IO API层 .