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

http://www.artpol-software.com/ZipArchive/が最良の選択です。

于 2011-01-17T09:21:05.000 に答える
0

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 を書いたので、ある程度気に入っています。しかし、7z.exe を 100 回実行することの何が問題なのかわかりません。パフォーマンスが気になりますか?

于 2010-10-24T16:21:55.937 に答える