2017-07-18 9 views
-1

Javaを使用して、パスワードで保護されたzipxファイル(xlsxを含む)を解凍できません。暗号化方式AES-256 LZMA。Javaを使用してパスワードで保護されたzipxファイル(xlsxを含む)を抽出する方法は?

私はApache Common CompressとLingla.zip4jを試しました。しかし、抽出することができません。 圧縮タイプLZMAはLingla.zip4jによってサポートされていないようです。

Image: For CRC and Encryption method detail

私が抽出できる他の方法はありますか? this blogによると

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) 
+1

パスワードをお持ちですか?どのような順序で暗号化され、暗号化されているかを知っていますか(暗号化されたzipや暗号化されたファイルは暗号化されていますか?あなたが行ったことを私たちに示すためにこれまでに書いたコードはありますか?コードが間違っている可能性があります... –

+1

[もっと速い回答を得るために、どのような状況で私の質問に「緊急」や他の類似のフレーズを追加することができますか?](// meta.stackoverflow.com/q/326569) - これは、ボランティアに対処する理想的な方法ではなく、おそらく回答を得ることに逆効果があるということです。これをあなたの質問に追加しないでください。 – halfer

答えて

0

、根底にあるLZMAのエンコーダと対話LzmaInputStreamとLzmaOutputStreamの実装を提供net.contrapunctus.lzmaパッケージとデコーダは別々のスレッドで動作します。だから、それはあなたの役に立つかもしれません。

+0

彼はリズマを必要としていることをどのように知っていますか? –

+0

@rabbitguy OP said:* "圧縮タイプLZMAはLingla.zip4jでサポートしていないようです。" * –

+0

@Aliいくつかのサンプルコードを提供できますか? –

関連する問題