如何使用Java提取受密码保护的zipx文件(包含xlsx)?

如何使用Java提取受密码保护的zipx文件(包含xlsx)?,java,aes,Java,Aes,我无法使用Java解压受密码保护的zipx文件(包含xlsx)。加密方法AES-256 LZMA 我试过Apache Common Compress和Lingla.zip4j。但无法提取。 似乎Lingla.zip4j不支持压缩类型LZMA 我还有别的办法提取吗 Apache通用代码 File file = new File("H:\\WorkDoc\\afile.zipx"); byte[] inputData = new byte[(int) file.le

我无法使用Java解压受密码保护的zipx文件(包含xlsx)。加密方法AES-256 LZMA

我试过Apache Common Compress和Lingla.zip4j。但无法提取。 似乎Lingla.zip4j不支持压缩类型LZMA

我还有别的办法提取吗

Apache通用代码

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)
java.io.IOException:错误的7z签名
位于org.apache.commons.compress.archivers.sevenz.SevenZFile.readHeaders(SevenZFile.java:250)
位于org.apache.commons.compress.archivers.sevenz.SevenZFile.(SevenZFile.java:165)
位于org.apache.commons.compress.archivers.sevenz.SevenZFile.(SevenZFile.java:156)
位于org.apache.commons.compress.archivers.sevenz.SevenZFile.(SevenZFile.java:136)
位于com.concept.utilities.zip.ApacheComm.main(ApacheComm.java:33)

根据,包net.contractus.lzma提供了LzmaInputStream和LzmaOutputStream的实现,它们与在单独线程中运行的底层lzma编码器和解码器交互。因此,它可能会对您有用。

您有密码吗?你知道它是按什么顺序压缩和加密的吗(比如压缩文件是加密的,还是压缩文件中的文件是加密的)?到目前为止,您是否编写了任何代码来向我们展示您所做的工作?也许代码是错误的…请阅读-总结是,这不是一个理想的方式来解决志愿者,可能会适得其反获得答案。请不要将此添加到您的问题中。您如何知道他需要Lzma?@rabbitguy OP说:“似乎Lzma压缩类型不支持Lingla.zip4j。”这是软件包实现,但我不确定它是否也支持密码。