我需要能够从Windows上的某些C / C ++代码中解压缩一些AES(WinZip)加密的zip文件。有没有人有办法做到这一点?我希望能够使用一些适当的代码或DLL(使用示例)。到目前为止,我的搜索结果毫无结果。
常用的InfoZip库不支持AES加密。
我目前最好的解决方案是从我的程序调用7z.exe命令行程序,但考虑到我将解压缩100个文件,这不太理想。
答案 0 :(得分:5)
这是minizip zlib贡献,AES支持加密和解密。 https://github.com/nmoinvaz/minizip
答案 1 :(得分:0)
DotNetZip可以做到。如果您不反对使用托管C ++。
从DotNetZip documentation,这是创建 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,所以我对它有一定的偏袒!但是我没有看到exec'ing 7z.exe 100次出错了什么?你关注性能吗?
答案 2 :(得分:0)