2

我需要能够从 Windows 上的一些 C/C++ 代码中解压缩一些 AES (WinZip) 加密的 zip 文件。有没有人有办法做到这一点?我希望有一些合适的代码或我可以使用的 DLL(带有示例用法)。到目前为止,我的搜索被证明是徒劳的。

常用的 InfoZip 库不支持 AES 加密。

我目前最好的解决方案是从我的程序中调用 7z.exe 命令行程序,但考虑到我将解压缩 100 个左右的文件,这不太理想。

4

3 回答 3

5

这是对加密和解密的 AES 支持的 minizip zlib 贡献。 https://github.com/nmoinvaz/minizip

于 2010-09-17T11:34:03.570 回答
0

DotNetZip可以做到。如果您不反对使用托管 C++。

来自DotNetZip 文档,这是创建AES 加密 zip 文件的代码。(提取的代码类似)。

#include "stdafx.h"

using namespace System;
using namespace Ionic::Zip;

int main(array<System::String ^> ^args)
{
    Console::WriteLine(L"Hello World");

    ZipFile ^ zip;
    try
    {
        zip = gcnew ZipFile();
        zip->Password = "Harbinger";
        zip->Encryption = EncryptionAlgorithm::WinZipAes128;
        zip->AddEntry("Readme.txt", "This is the content for the Readme.txt entry.");
        zip->Save("test.zip");
    }
    finally
    {
        zip->~ZipFile();
    }

    Console::WriteLine(L"Press <ENTER> to quit.");
    Console::ReadLine();
    return 0;
}

另外 - 我写了 DotNetZip,所以我对它有一定的偏爱!但我看不出执行 7z.exe 100 次有什么问题?你关心性能吗?

于 2010-10-24T16:21:55.937 回答
0

http://www.artpol-software.com/ZipArchive/是最好的选择。

于 2011-01-17T09:21:05.000 回答