Программно распакуйте зашифрованный файл AES в Windows - PullRequest
2 голосов
/ 17 сентября 2010

Мне нужно иметь возможность распаковать некоторые зашифрованные AES (WinZip) zip-файлы из некоторого кода C / C ++ в Windows.У кого-нибудь есть способ сделать это?Я надеюсь на какой-то соответствующий код или DLL, которую я могу использовать (с примером использования).Пока что мой поиск оказался бесплодным.

Обычно прописываемые библиотеки InfoZip не поддерживают шифрование AES.

Лучшее решение, которое у меня есть на данный момент, - это вызов программы командной строки 7z.exe из моегопрограмма, но, учитывая, что я разархивирую около 100 файлов, это далеко не идеально.

Ответы [ 3 ]

5 голосов
/ 17 сентября 2010

Ниже приведен вклад zizb от Minizip с поддержкой AES для шифрования и дешифрования https://github.com/nmoinvaz/minizip

0 голосов
/ 17 января 2011
0 голосов
/ 24 октября 2010

DotNetZip может это сделать. Если вы не против использования Managed 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, поэтому у меня есть к нему определенная доля фаворитизма! Но я не вижу, что не так с exec'ing 7z.exe 100 раз? Вы обеспокоены производительностью?

...