如果你的意圖是保護數據庫中的BLOB數據,你爲什麼不只是使用javax.crypto.CipherOutputStream/javax.crypto.CipherInputStream
?
閱讀從BLOB壓縮內容,並將其轉換使用ZIP4J是相當複雜的流式傳輸,您必須在文件頭工作第一...(查看net.lingala.zip4j.unzip.UnzipEngine
類的源代碼)
寫作拉鍊內容到內存更容易,這裏是一個示例代碼:
ZipParameters zipParam = new ZipParameters();
zipParam.setSourceExternalStream(true);
//set parameter for encryption...
zipParam.setEncryptFiles(true);
zipParam.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);
zipParam.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);
zipParam.setPassword("test123");
ByteArrayOutputStream bo = new ByteArrayOutputStream(256);
ZipOutputStream zout = new ZipOutputStream(bo, new ZipModel());
String[] filenames = new String[]{"1.txt"};
for (int i = 0; i < filenames.length; i++) {
zipParam.setFileNameInZip(filenames[0]);
zout.putNextEntry(null, zipParam);
zout.write(filenames[0].getBytes());//data waiting for compressed...
zout.closeEntry();
}
zout.finish();
zout.close();
bo.toByteArray();//compressed data of zip file
我認爲你需要的大部分片段都在java.util.zip中。 –
沒有。 java.util.zip不能密碼保護一個zip – user3693532
但是你可以單獨進行加密/解密。 –