スポンサーリンク

libzipを試す(圧縮,パスワード付)

注意

Windowsの圧縮フォルダはZipcryptoという暗号化方式を利用しているらしいが、LIBZIPで指定できるのはRES-128等で、Windows標準に対応できない(圧縮フォルダを解凍できない)(らしい)。

従って動作を確認するには他のフリーソフトなどを使う必要がある。Lhaplusではとりあえず読み込めた。

※本当は展開もやるつもりだった(本当だ)のだけれどこの事実に気づくのに半日かかって気力が尽きたのでとりあえず圧縮だけやる。

ソースコード

#include <zip.h>
#include <iostream>

#pragma comment(lib,"zip.lib")


//ファイルを圧縮
int main(int argc, char* argv[])
{

  int errorp;
  zip_t* zipper = zip_open(R"(C:\test\out.zip)", ZIP_CREATE | ZIP_EXCL, &errorp);

  // パスワードの定義
  const char* thePassWord = "j6KY4cwC";

  zip_source_t* source;
  zip_int64_t iIndex;

  source = zip_source_file(zipper, R"(C:\test\data\snail1.png)", 0, 0);
  iIndex = zip_file_add(zipper, R"(snail1.png)", source, ZIP_FL_ENC_RAW);
  zip_file_set_encryption(zipper, iIndex, ZIP_EM_AES_128, thePassWord);//パスワードを指定

  source = zip_source_file(zipper, R"(C:\test\data\snail2.png)", 0, 0);
  iIndex = zip_file_add(zipper, R"(snail2.png)", source, ZIP_FL_ENC_RAW);
  zip_file_set_encryption(zipper, iIndex, ZIP_EM_AES_128, thePassWord);//パスワードを指定

  source = zip_source_file(zipper, R"(C:\test\data\snail5.png)", 0, 0);
  iIndex = zip_file_add(zipper, R"(snail5.png)", source, ZIP_FL_ENC_RAW);
  zip_file_set_encryption(zipper, iIndex, ZIP_EM_AES_128, thePassWord);//パスワードを指定

  zip_close(zipper);

  int i;
  std::cin >> i;

  return 0;
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


この記事のトラックバックURL: