encrypt Zip mit Passwort klappt nicht

janinejaeger

Mitglied
Hallo,

men programm entpackt schön das Ziparchiv,dass ich ihm mitgebe. nun sind die datein/Archiv aber mit einem Passwort geschützt (encrypted). Nun klappt mein Programm ja nicht mehr.
Hier die Fehlermeldung:

java.util.zip.ZipException: encrypted ZIP entry not supported
at java.util.zip.ZipInputStream.readLOC(Unknown Source)
at java.util.zip.ZipInputStream.getNextEntry(Unknown Source)
at DB.EntZippen.main(EntZippen.java:44)

Hier mein Programm:

Code:
package DB;
//autor: Janine Jäger-Deutschland
import java.io.*;
import java.util.zip.*;

public class EntZippen {
	final static int BUFFER = 2048;

	public static void main(String args[]) throws Exception {
		Output outp = new Output();
		outp.out("Starting unzipping Files...");
		outp.macheStern();
		outp.machabsatz();
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String quelle;
		String ziel;

		if (args.length != 2) {
			outp.out("Please type in the path of your source- zip-file:");
			quelle = br.readLine();
			outp
					.out("Please type in the path of the folder in which the extraced files should be saved:");
			ziel = br.readLine();

		} else {
			quelle = args[0];
			outp.out("The source-file you have chosen is: " + quelle);
			ziel = args[1];
			outp
					.out("The folder in which the extracted datas will be saved is: "
							+ ziel);
			outp.machabsatz();
			outp.macheStrich();

		}

		try {
			BufferedOutputStream ziele = null;
			FileInputStream fis = new FileInputStream(quelle);
			ZipInputStream zis = new ZipInputStream(
					new BufferedInputStream(fis));
			ZipEntry entry;

			while ((entry = zis.getNextEntry()) != null) {

				outp.out("Extracting: " + entry);
				int count;
				byte data[] = new byte[BUFFER];
				// write the files to the disk

				FileOutputStream fos = new FileOutputStream(ziel + "/"
						+ entry.getName());
				ziele = new BufferedOutputStream(fos, BUFFER);

				while ((count = zis.read(data, 0, BUFFER)) != -1) {
					ziele.write(data, 0, count);
				}
				ziele.flush();
				ziele.close();
			}

			if (zis.getNextEntry() == null) {
				outp.macheStrich();
				outp.machabsatz();
				outp.out("All files extraced.");
			}

			zis.close();
			outp.out("Extracting of " + quelle + " completed!");
			outp.macheStern();
			outp.machabsatz();
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		
	}
}


Ich würde einfach gerne nur das Passwort mitgeben, dann sollte es klappen, aber das funktioniert so nicht :-(.

Ich bitte um eure Hilfe.
 
Moin!
Mit JDK eigenen mitteln wirst du das afaik nicht hinbekommen...
Entweder du besorgst Zip -Tool, welches du über die Kommandozeile bedienen könntest und startest es von deinem Programm aus (Pkunzip fällt mir da ein), oder
du probierst es mal mit diesem Tool:
https://truezip.dev.java.net/
Es scheint mit Verschlüsselung umgehen zu können.

*grüssle*
MeinerEiner
 
Importieren - wie mache ich neue Packages bekannt?

Hallo,

vielen Dank erstmal für eure Hilfe, also unlösbar scheint es ja nicht zu sein, Datein zu "decrypten". Ich habe die Datei runtereladen, und in meinen Java.ordner entpackt, aber das reicht anscheinend nicht, denn mein Java-Programm findet die Pacages nicht (hier mal das kopierte Programm aus dem anderen Beitrag):
Also nur die de.schlichtherle - Packags kennt er nicht. Wo hin muss ich den de.ordner verschieben,damit es funktionier (ich hab das noch nie vorher gemacht).?


Code:
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();
	}
}
 
Zurück