8

パスワードで保護されたZIPを作成したい:

    // Set the compression level
    parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);

    // Set the encryption flag to true
    // If this is set to false, then the rest of encryption properties are ignored
    parameters.setEncryptFiles(true);

    // Set the encryption method to Standard Zip Encryption
    parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_STANDARD);

    // Set password
    parameters.setPassword(password);

しかし、これはzip内のファイルを暗号化するだけですが、このzipを開いてその中のファイルを見ることができます

4

2 に答える 2

5

Zip4jはファイルリストの暗号化をサポートしています...

主な特長:

  • Zip ファイルからのファイルの作成、追加、抽出、更新、削除
  • パスワードで保護された Zip ファイルの読み取り/書き込み
  • AES 128/256 暗号化をサポート
  • 標準の Zip 暗号化をサポート
  • Zip64形式をサポート
  • Store (No Compression) および Deflate 圧縮方式をサポート
  • 分割 Zip ファイルからファイルを作成または抽出する (例: z01、z02、...zip)
  • Unicode ファイル名をサポート
  • 進捗モニター

このサンプル コードAddFilesWithAESEncryption.javaを見てください。

// Initiate ZipFile object with the path/name of the zip file.
ZipFile zipFile = new ZipFile("c:\\ZipTest\\AddFilesWithAESZipEncryption.zip");

// Build the list of files to be added in the array list
// Objects of type File have to be added to the ArrayList
ArrayList filesToAdd = new ArrayList();
filesToAdd.add(new File("c:\\ZipTest\\sample.txt"));
filesToAdd.add(new File("c:\\ZipTest\\myvideo.avi"));
filesToAdd.add(new File("c:\\ZipTest\\mysong.mp3"));

// Initiate Zip Parameters
ZipParameters parameters = new ZipParameters();
// set compression method to deflate compression
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE); 
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_ULTRA); 

// Set the encryption flag to true
parameters.setEncryptFiles(true);

// Set the encryption method to AES Zip Encryption
parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);

// Set AES Key strength. Key strengths available for AES encryption are:
parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);

// Set password
parameters.setPassword("test123!");

// Now add files to the zip file
zipFile.addFiles(filesToAdd, parameters);
于 2017-01-10T11:43:23.150 に答える
1

Zip4j は、特許の問題により、ファイル リストの暗号化をサポートしていません。

参照: http://www.lingala.net/zip4j/forum/index.php?topic=104.0

アップデート:

リンクに記載されているとおりです。zip 仕様には、ファイルリストの暗号化は含まれていません。ファイル名を非表示にするには、ファイルを含む zip ファイルを作成し、再度圧縮してカプセル化します。したがって、zip2.zip を開くと、「zip1.zip」のみが表示され、元のファイル名は表示されません。

于 2014-11-07T12:28:08.507 に答える