2013-02-26 13 views
6

Chcę utworzyć chronione hasłem pocztowy:Jak zaszyfrować plik zip za pomocą zip4j

// 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); 

ale to tylko szyfrować pliki wewnątrz zip, ale mogę otworzyć ten zamek i oglądać plik w środku

+0

Możliwy duplikat: http://stackoverflow.com/questions/166340/write-a-password-protected-zip-file-in-java – benzonico

+4

I dont think so. W twoim wątku znajduje się lista bibliotek, których możesz użyć do tworzenia zip, ale wybieram jedną i potrzebuję pomocy – hudi

Odpowiedz

1

Zip4j robi nie obsługuje szyfrowania listy plików z powodu problemów patentowych.

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

Aktualizacja:

Jak stwierdzono w link. Specyfikacja zip nie uwzględnia szyfrowania listy plików. Aby ukryć nazwy plików, możesz utworzyć plik zip zawierający pliki, a następnie zip go ponownie. Dlatego jeśli otworzysz plik zip2.zip, zobaczysz tylko "zip1.zip", a nie oryginalne nazwy plików.

2

Zip4j obsługuje szyfrowanie listy plików ...

Key features:

  • Tworzenie, dodawać Extract, aktualizacja, usuwanie plików z pliku ZIP
  • Read/Write hasło chronione pliki ZIP
  • Obsługuje szyfrowanie AES 128/256
  • Obsługuje standard szyfrowania ZIP
  • obsługuje format ZIP64
  • Obsługuje Store (bez kompresji) i Deflate metoda kompresji
  • Utwórz lub wyodrębnić pliki z dzielenia plików ZIP (Ex: Z01, Z02, ... zip)
  • Obsługuje nazwami plików Unicode
  • Postęp monitora

Spójrz na to Przykładowy kod 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); 
Powiązane problemy