我在byte []数组中有pdf文件。我想压缩它并用密码加密。
我不想创建任何临时文件。但是像zip4j,winzipaes这样的库不支持它。它们仅接受File对象。

编辑:
简单zip的代码:

public static byte[] zipBytes(String filename, byte[] input) throws IOException {

ByteArrayOutputStream baos = new ByteArrayOutputStream();

ZipOutputStream zos = new ZipOutputStream(baos);

ZipEntry entry = new ZipEntry(filename);

entry.setSize(input.length);

zos.putNextEntry(entry);

zos.write(input);

zos.closeEntry();

zos.close();

return baos.toByteArray();}


如何添加加密和密码?

最佳答案

我找到了一些资源,并使其适合我的问题。
加载到https://github.com/r331/memzipenc

MemZipEnc.getEncryptZipByte(byte []文件,java.lang.String密码,java.lang.String文件名)此静态方法可以加密和压缩内存中的单个文件,而无需将文件保存在硬盘上

09-05 17:32