2017-07-18 1 views
-1

Ich kann eine passwortgeschützte ZIPX-Datei (enthält xlsx) nicht mit Java entpacken. Verschlüsselungsmethode AES-256 LZMA.Wie extrahiere Passwort geschützte Zipx-Datei (enthält Xlsx) mit Java?

Ich habe Apache Common Compress und Lingla.zip4j versucht. Aber nicht extrahierbar. Es scheint, dass Komprimierungstypen LZMA nicht von Lingla.zip4j unterstützt wird.

Image: For CRC and Encryption method detail

Gibt es irgendeine andere Weise, die ich extrahieren?

Apache Common Code

File file = new File("H:\\WorkDoc\\afile.zipx");  
      byte[] inputData = new byte[(int) file.length()]; 
      FileInputStream fis = new FileInputStream(file); 
      fis.read(inputData); //read file into bytes[] 
      fis.close(); 

      String password = "password"; 
      byte[] pass = password.getBytes(); 

      SeekableInMemoryByteChannel inMemoryByteChannel = new SeekableInMemoryByteChannel(inputData); 
      SevenZFile sevenZFile = new SevenZFile(inMemoryByteChannel, pass); 
      SevenZArchiveEntry entry = sevenZFile.getNextEntry(); 
      sevenZFile.read(); // read current entry's data 

Fehler

java.io.IOException: Bad 7z signature 
    at org.apache.commons.compress.archivers.sevenz.SevenZFile.readHeaders(SevenZFile.java:250) 
    at org.apache.commons.compress.archivers.sevenz.SevenZFile.<init>(SevenZFile.java:165) 
    at org.apache.commons.compress.archivers.sevenz.SevenZFile.<init>(SevenZFile.java:156) 
    at org.apache.commons.compress.archivers.sevenz.SevenZFile.<init>(SevenZFile.java:136) 
    at com.concept.utilities.zip.ApacheComm.main(ApacheComm.java:33) 
+1

Haben Sie das Passwort? Weißt du, in welcher Reihenfolge gezippt und verschlüsselt wurde (wie ist die Zip verschlüsselt oder sind die Dateien in der Zip verschlüsselt)? Haben Sie einen Code, den Sie bisher geschrieben haben, um uns zu zeigen, was Sie getan haben? Vielleicht ist der Code falsch ... –

+1

Bitte lesen [Unter welchen Umständen kann ich "dringend" oder andere ähnliche Sätze zu meiner Frage hinzufügen, um schnellere Antworten zu erhalten?] (// meta.stackoverflow.com/q/326569) - Zusammenfassend lässt sich sagen, dass dies kein idealer Weg ist, um Freiwillige anzusprechen, und dass es wahrscheinlich kontraproduktiv ist, Antworten zu erhalten. Bitte unterlassen Sie das Hinzufügen zu Ihren Fragen. – halfer

Antwort

0

zu this blog Laut, das Paket net.contrapunctus.lzma bietet Implementierungen von LzmaInputStream und LzmaOutputStream, die mit den zugrunde liegenden LZMA-Encoder in Wechselwirkung treten und Decoder laufen in separaten Threads. So kann es für Sie nützlich werden.

+0

Woher weißt du, dass er Lzma braucht? –

+0

@rabbitguy OP sagte: * "Es scheint, dass Komprimierungstypen LZMA nicht unterstützt von Lingla.zip4j." * –

+0

@Ali Könnten Sie einige Beispielcode zur Verfügung stellen? –

Verwandte Themen