gpt4 book ai didi

c++ - 以字节为单位解压缩加密文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:55:52 45 4
gpt4 key购买 nike

我的压缩文件已加密,我需要解密并解压缩文件。

我不会一次解密完整文件并将其存储在磁盘中并解压缩,因为这不是解压缩加密文件的最佳方式。

我正在解密一些字节,只想解压缩从解密器收到的数据字节(内存缓冲区)并解压缩它们。

使用 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 函数之前简单地解密缓冲区。如果上述情况都不是您要寻找的,另一种选择可能是为 minizip 编写您自己的加密/解密 IO API 层。

关于c++ - 以字节为单位解压缩加密文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19277721/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com