我無法使用Java解壓縮密碼保護的zipx文件(包含xlsx)。加密方法AES-256 LZMA。如何使用Java提取密碼保護的zipx文件(包含xlsx)?
我試過Apache Common Compress和Lingla.zip4j。但無法提取。 似乎壓縮類型LZMA不支持Lingla.zip4j。
Image: For CRC and Encryption method detail
有沒有其他辦法,我可以提取?
阿帕奇公用代碼
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
錯誤
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)
您是否有密碼?你知道它是以什麼順序壓縮和加密的(就像是加密的zip文件,或者是加密的zip文件)?你有沒有你寫的代碼到目前爲止告訴我們你做了什麼?也許代碼是錯誤的... –
請閱讀[在什麼情況下,我可以添加「緊急」或其他類似的短語到我的問題,以獲得更快的答案?](// meta.stackoverflow.com/q/326569) - 總結是這不是解決志願者問題的理想方式,並且可能對獲得答案起反作用。請不要將這添加到您的問題。 – halfer