最近想拉去自己的银行流水看看 就去某app上面申请 发现打包的zip是个加密的压缩包 来了兴趣就自己研究了下
新手上路 大神勿喷!!!
jdk本身的java.util.zip包就可以搞定,但是没有提供对压缩包加密的方法 网上找到一些依赖 zip4j 版本我用的是1.3.1 要想使用其他版本就需要自己去查找版本了
首先这是maven 依赖
<dependency>
<groupId>net.lingala.zip4j</groupId>
<artifactId>zip4j</artifactId>
<version>1.3.1</version>
</dependency>
引入了依赖之后简单写了个demo
import net.lingala.zip4j.core.ZipFile;
import net.lingala.zip4j.exception.ZipException;
import net.lingala.zip4j.model.ZipParameters;
import net.lingala.zip4j.util.Zip4jConstants;
public static void main(String[] args) {
String sss="我是text温江1额323阿萨德群所多群翁看到静安寺";
String passwd="1234";
ZipParameters parameters = new ZipParameters();
// 压缩方式
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
// 压缩级别
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
parameters.setSourceExternalStream(true);
parameters.setFileNameInZip("aaaa.txt");
if (!"".equals(passwd)) {
parameters.setEncryptFiles(true);
// 加密方式
parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_STANDARD);
parameters.setPassword(passwd.toCharArray());
}
try {
ZipFile zipFile = new ZipFile("E:\\java压缩文件.zip");
zipFile.addStream(new ByteArrayInputStream(sss.getBytes()), parameters);
} catch (ZipException e) {
e.printStackTrace();
}
}
压缩完了就可以看到 解压的时候就需要输入密码了
好了 复制我的代码跑跑看~