Zip mit Passwort öffnen

KlaDi

Erfahrenes Mitglied
Hallo,

gibt es in Java die Möglichkeit zip-Archive zu öffnen, die mit einem Passwort versehen sind? Ich hab bisher keine Funktion gefunden, die es ermöglicht ein Passwort mit anzugeben.

gruß klaus.
 
das habe ich bei jguru gefunden:

Answer
The Java classes that read Zip files, e.g. ZipInputStream, do not support decrypting password-protected Zip files. I don't know of any publicly-available code in Java which will do this, either. But this functionality is straightforward to add yourself. The decryption algorithm needed is described in ftp://ftp.pkware.com/appnote.zip. You can subclass the existing Java classes to add support for decryption; you will also have to define a mechanism for a user of your subclass to enter the appropriate password, using a dialog box for example. (And if you do so, please make that code publically available and submit a link to that code as feedback to this question!)


Bei sun habe ich dies gefunden:

Hi.,

I think u can try using the checksum option while compressing and the same while decompressing using the
CheckedInputStream checksum = new
CheckedInputStream(fis, new Adler32());
functionalities. It do the somewhat same function as password.

Cheer's
bavan

Hier istbeschrieben was der Adler macht.

http://de.wikipedia.org/wiki/Adler-32

Da kannst Du mit einer eigenen Implemtierung ansetzen. Wenn Du eine bessere Lösung findest, sind Dir sicher viele Leute dankbar.... Du solltest nach ThirdParty Products schauen.

Gruß
 
Hallo,

also ich würd mir den ganzen Stress nicht machen und statt dessen ein entsprechendes Konsolentool aufrufen...

Gruß Tom
 
Danke erstmal für die Antworten.

Aber was wäre denn ein entsprechendes Konsolentool?

gruß klaus.
 
Hi,

ich habe es getestet. Folgender Code verschlüsselt mit RAES und schreibt in ein TZP-Archive. Die Art des Archives wird durch den Suffix bestimmt. Danach wird der Text wieder gelesen. Zur Eingabe der Kennwörter fordert ein Swingdialog auf. Dieses Verhalten kann aber wohl geändert werden. Neben dem Truezip.jar habe ich noch das bcprov-jdk16-136.jar von hier (siehe Dokumentation) eingebunden.

Java:
package de.tutorials;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;

import de.schlichtherle.io.DefaultArchiveDetector;
import de.schlichtherle.io.File;
import de.schlichtherle.io.FileInputStream;
import de.schlichtherle.io.FileOutputStream;

public class TruezipDemo {

	public static void main(String[] args) throws Exception {

		File.setDefaultArchiveDetector(new DefaultArchiveDetector(
				"zip|tzp|zip.rae|zip.raes"));
		PrintWriter out = new PrintWriter(new FileOutputStream(
				"secret.tzp/README"));
		out.println("Dieser text ist geheim!");
		out.close();
		
		BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream("secret.tzp/README")));
		String ausgabe = in.readLine();
		System.out.println(ausgabe);
		in.close();
		File.umount();

	}

}

gruss
 
Zurück