Java如何采用zip对文件加密呢?

书欣 Java经验 发布时间:2022-10-14 21:15:16 阅读数:9058 1 zip操作大全
下文笔者讲述使用java代码对文件进行自动压缩和加密的方法分享,如下所示
实现思路:
    1.引入ZipOutputStream类
    2.借助ZipOutputStream类即可对文件进行zip压缩和加密操作
	加密只需设置
	 相应的参数即可
	  ZipParameters parameters = new ZipParameters();
      parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
      parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);

	  if(!StringUtils.isEmpty(password)){
		parameters.setEncryptFiles(true);
		parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);
		parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);
		parameters.setPassword(password); 
	 }
例:
编写一个对zip文件压缩及设置密码的工具方法
/**
	*
	* @Title: zipFilesAndEncrypt
	* @Author: www.java265.com
	* @Description: 将指定路径下的文件压缩至指定zip文件,并以指定密码加密,若密码为空,则不进行加密保护
	* @param srcFileName 待压缩文件路径
	* @param zipFileName zip文件名
	* @param password 加密密码
	* @return
	* @throws Exception
	*/
	public void zipFilesAndEncrypt(String srcFileName,String zipFileName,String password)
			throws Exception{
		ZipOutputStream outputStream=null;
		if(StringUtils.isEmpty(srcFileName) || StringUtils.isEmpty(zipFileName)){
			log.error("请求的压缩路径或者文件名有误");
			return;
		}

	try {
		ZipParameters parameters = new ZipParameters();
		parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
		parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);

		if(!StringUtils.isEmpty(password)){
			parameters.setEncryptFiles(true);
			parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);
			parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);
			parameters.setPassword(password);
		}

		Arraylist filesToAdd = new ArrayList();
		File file=new File(srcFileName);
		File[] files = new File[0];
		if(file.isDirectory())
		{
			files = file.listFiles();

			for(int i=0;i<files.length;i++) {
				filesToAdd.add(new File(srcFileName+files[i].getName()));
				System.out.println("文件名称:"+files[i].getName());
			}
		}
		else {
			filesToAdd.add(new File(srcFileName+file.getName()));
		}

			ZipFile zipFile = new ZipFile(srcFileName+zipFileName+".zip");
			zipFile.addFiles(filesToAdd, parameters);
		}
		catch(Exception e)
		{
			System.out.println("文件压缩出错");
			log.error("文件压缩出错", e);
			throw e;
		}
	}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202210/16657538094637.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者