2
我的壓縮文件已加密,需要解密並解壓縮文件。以字節爲單位解壓縮加密文件
我並不是一次解密完整文件,而是將其存儲在磁盤中並解壓縮,因爲它不是解壓縮加密文件的最佳方式。
我解密了一些字節,只想解壓縮從解密器中收到的數據(內存緩衝區)的字節並解壓縮它們。
使用minizip我們不能從內存解壓縮緩衝區數據。我使用Zlib Inflate()?在這種情況下會起作用嗎?
如果使用minizip做任何其他的方式,請回復。
我的壓縮文件已加密,需要解密並解壓縮文件。以字節爲單位解壓縮加密文件
我並不是一次解密完整文件,而是將其存儲在磁盤中並解壓縮,因爲它不是解壓縮加密文件的最佳方式。
我解密了一些字節,只想解壓縮從解密器中收到的數據(內存緩衝區)的字節並解壓縮它們。
使用minizip我們不能從內存解壓縮緩衝區數據。我使用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
函數。另一種選擇可能是編寫自己的加密/解密IO API層以用於minizip,如果上述方案都不符合您的要求。
爲什麼不是「解密加密文件的最佳方式」? – fvdalcin