Empfehlungen auf eine freie Bibliothek für Zippen von Dateien verwendet werden [geschlossen]

StackOverflow https://stackoverflow.com/questions/166340

  •  03-07-2019
  •  | 
  •  

Frage

Ich muss zip und eine Datei mit einem Kennwort zu schützen. Gibt es eine gute (kostenfrei) Bibliothek für das?

Dies muss von einem Dritten geöffnet werden, so dass der Passwortschutz mit Standard-Werkzeugen arbeiten muß.

War es hilfreich?

Lösung

Nach langem Suchen habe ich drei Ansätze gefunden:

Ein frei verfügbarer Satz von Quellcode, geeignet für eine einzelne Datei Reißverschluss. Allerdings gibt es keine Lizenz. Die Nutzung ist AesZipOutputStream.zipAndEcrypt (...). http://merkert.de/de/info/zipaes/src.zip ( https://forums.oracle.com/forums/thread.jspa?threadID= 1526137 )

UPDATE: Dieser Code wird nun Apache lizenziert und veröffentlicht unter http://code.google.com/ p / winzipaes / . Er arbeitete für mich (eine Datei im Zip) und füllt ein Loch in der Java-Source-Bibliotheken schön öffnet.

Ein kommerzielles Produkt ($ 500 zum Zeitpunkt des Schreibens). Ich kann nicht überprüfen, ob das funktioniert, wie ihre Testlizenz Ansatz komplex ist. Es ist auch eine portierte .NET App: http://www.nsoftware.com/ipworks/zip/default.aspx

Ein kommerzielles Produkt ($ 290 zum Zeitpunkt des Schreibens). Nur geeignet für Wnidows wie es verwendet eine DLL: http://www.example-code.com/java/zip.asp

Andere Tipps

Sie können versuchen, Zip4j , eine reine Java-Bibliothek Zip-Datei zu behandeln. Es unterstützt Verschlüsselung / Entschlüsselung von PKWare und AES-Verschlüsselungsverfahren.

Die wichtigsten Funktionen:

  • Erstellen, Hinzufügen, Extrahieren, Aktualisieren, Entfernen von Dateien aus einer ZIP-Datei
  • Lesen / Schreiben Passwort geschützt Zip-Dateien
  • Unterstützt AES 128/256 Verschlüsselung
  • Unterstützt Standard-Zip Verschlüsselung
  • Unterstützt Zip64 Format
  • Unterstützt Store (keine Kompression) und Deflate Komprimierungsverfahren
  • Erstellen oder Extrahieren von Dateien aus Split Zip-Dateien (zB: z01, z02, ... zip)
  • Unterstützt Unicode-Dateinamen
  • Progress Monitor

Lizenz:

Das ist keine Antwort, aber es ist eine Warnung im Auge zu behalten, wenn potenzielle Lösungen zu bewerten.

Eine sehr wichtige Sache über zip-Verschlüsselung:

Es gibt mehrere Arten von zip-Verschlüsselung. Der alte Typ (ein Teil des ursprünglichen Zip-Standard) ist überhaupt nicht die Mühe wert mit (es kann mit Anwendungen leicht verfügbar, online in weniger als 10 Minuten geknackt werden).

Wenn Sie jede Art von Verschlüsselung von Zip-Dateien tun, bitte, bitte sicher, dass Sie verwenden eine der starken Verschlüsselungsstandards (Ich glaube, dass die WinZip 128- und 256-Bit-AES-Standard der besten unterstützt wird). Hier sind die technischen Spezifikationen - wir benutzten, wenn unsere eigenen Java verschlüsselten Zip-System zu entwickeln (nicht bietet Quelle - sorry - es ist nur für internen Gebrauch)

Das einzige, was noch schlimmer, als wenn keine Verschlüsselung denkt, dass Sie die Verschlüsselung haben und ist falsch: -)

7-Zip hat die Möglichkeit, ein Passwort in seinem Kommandozeilen-Modus hinzuzufügen. Vielleicht können Sie es exec dieses Ergebnis zu bekommen (und es hat ein gutes Verdichtungsverhältnis auch).

Nachteile: externer Prozess, schwer zu machen tragbar (auch wenn 7-Zip Portable selbst ist), nicht sicher, ob die Vertriebslizenz

.

Beachten Sie, dass InfoZip die Zip-Programm auch sehr portabel, auch mit einem Passwort unterstützt.

Sie können auch TrueZip versuchen. Auch die folgenden Links für Features: https://christian-schlichtherle.bitbucket.io/truezip/

Der Nachfolger von TrueZip finden Sie hier: https://christian-schlichtherle.bitbucket.io/truevfs/

Hier ist ein Beispiel unter Verwendung von winzipaes 1.0.1. Hinweis: Dies ist nur ein Kern, ich habe diesen Code nicht getestet in genau dieser Form.

import de.idyl.winzipaes.AesZipFileEncrypter;
import de.idyl.winzipaes.impl.AESEncrypterBC;

File aNewZipFile = new File("/tmp/foo.zip");
File existingUnzippedFile = new File("/tmp/src.txt");

// We use the bouncy castle encrypter, as opposed to the JCA encrypter
AESEncrypterBC encrypter = new AESEncrypterBC();
encrypter.init("my-password", 0);  // The 0 is keySize, it is ignored for AESEncrypterBC

AesZipFileEncrypter zipEncrypter = new AesZipFileEncrypter(aNewZipFile, encrypter);
zipEncrypter.add(existingUnzippedFile, "src.txt", "my-password"); 

// remember to close the zipEncrypter
zipEncrypter.close();

Sie können sie "/tmp/foo.zip" mit Winzip (v9 +) oder 7za (d 7zip) auf einem Mac entpacken, mit Passwort "my-password".

Hinweis: Es ist mir nicht klar, warum ist es notwendig, das Passwort zweimal in dem obigen Code angeben. Ich weiß nicht, was passieren würde, wenn Sie unterschiedliche Passwörter in diesen beiden Orten verwendet.

Wenn Sie ein besseres Nutzungsszenario geben dann gibt es andere Alternativen.

  1. Möchten Sie die Zip erfordern von den Standard-Zip-Tool geöffnet werden, die ein Zip-Passwort umgehen kann?
  2. Die gleiche Frage wie vorherigen wollen Sie diese Zip an eine externe Einheit übergeben, die die Zip zu öffnen hat?
  3. Ist es nur intern und Sie wollen einfach nur den Inhalt der zip schützen?

Für 3 dann können Sie nur Java verwenden, um den Stream Inhalt der Zip als normale Datei zu verschlüsseln, wahrscheinlich am besten die Dateierweiterung ändern auch .ezip, etc. zu jagen.

1 und 2, dann können Sie die chillkat Lösung wie erwähnt, oder Ein Äquivalent. Beachten Sie jedoch, dass chillkat ist keine reine Java-Lösung, verwendet es JNI.

Weitere Informationen: gegoogelt ich ein bisschen mehr und in der Tat ist es eine ganz allgemeine Frage, und es scheint, gibt es keine freie Lösung

(noch?).

Nun wird der Standard-Algorithmus von Zip-Verschlüsselung ist gut definiert: Siehe den PKWARE Application Note auf das .ZIP-Datei-Format. Es erscheint auf dem verschlüsselten Stream eine Verschlüsselung durchgeführt werden. Wenn jemand fühlt es sich wie Kodierung ...

Nun frage ich mich, warum Sun nicht enthalten es in der Bibliothek? Der Mangel an Standard? Patent / rechtliche Frage? Zu schwach verwendbar sein?

  

Gibt es eine gute (kostenfrei) Bibliothek für das?

java.util.zip das Zuziehen tun, aber es wird die Passwörter nicht. Und nein, ich weiß nicht von irgendwelchen freien diejenigen, die wird. Die billigste ich gesehen habe $ 150 für einen Entwickler Sitz ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top