从加密的zip文件创建java zip文件系统

从加密的zip文件创建java zip文件系统,java,android,encryption,filesystems,zip,Java,Android,Encryption,Filesystems,Zip,我发现Java7引入了一个zip文件系统。目前我有一个加密的zip文件,我用以下代码解密 InputStream in = new FileInputStream(inFile); Crypto algo = new Crypto(); algo.initV1(); in = new CipherInputStream(in, algo.getCiphertoDec(in, pass)); ZipInputStream zipInput = new ZipInputStream(in); Zip

我发现Java7引入了一个zip文件系统。目前我有一个加密的zip文件,我用以下代码解密

InputStream in = new FileInputStream(inFile);
Crypto algo = new Crypto();
algo.initV1();
in = new CipherInputStream(in, algo.getCiphertoDec(in, pass));
ZipInputStream zipInput = new ZipInputStream(in);
ZipEntry ze = zipInput.getNextEntry();
....
getCiphertoDec的方法是这样的

public Cipher getCiphertoDec (InputStream in, String password) throws Exception {
    byte[] salt = new byte[SALT_SIZE_BYTE];
    if (in.read(salt) < SALT_SIZE_BYTE) {
        throw new IllegalArgumentException("Invalid file length (needs a full block for salt)");
    };

    key = CoreCryptoV1.PBKDF2.pbkdf2(password, salt, 1000);

    ivBytes = new byte[IV_LENGTH_BYTE];
    if (in.read(ivBytes) < IV_LENGTH_BYTE) {
        throw new IllegalArgumentException("Invalid file length (needs a full block for iv)");
    };

    cipher.init(Cipher.DECRYPT_MODE, key, new IvParameterSpec(ivBytes));
    return cipher;
}
public Cipher getCiphertoDec(InputStream-in,String-password)引发异常{
字节[]salt=新字节[salt_SIZE_byte];
if(in.read(salt)
我想知道是否有任何方法可以将加密的zip文件视为一个文件系统。 谢谢你的建议。
我想要一个与android兼容的解决方案。

鉴于您的解密方法是定制的,我对此表示怀疑。您总是可以将流解密为磁盘上的文件,然后在上面使用zip
文件系统
,但我怀疑这会破坏您从一开始就对zip文件进行加密的任何理由。@Dan是一个罕见的无法从InputStream创建zip文件系统的人,这将解决我的问题