Android 加密压缩文件
一、背景
常我们再开发过程中,无论是Android 客户端程序还是桌面程序,有可能涉及到文件的上传和下载,多文件时通常做zip压缩处理,将多个文件压缩为一个zip包,方便传输,另外,客户端内也可能会涉及到一些资源的下载,这些资源通常都以zip的方式存放在服务器上,客户端可以在合适的时候将zip文件下载,然后解压资源。下面了解一下使用Zip4j框架来压缩和解压处理文件。
二、Zip4j框架
官网:http://www.lingala.net/zip4j/index.php
三、使用方式
public class ZipUtil {/*** 对文件列表压缩加密* @param srcfile* @param destZipFile* @param password* @return*/public static File doZipFilesWithPassword(File[] srcfile, String destZipFile, String password) {if (srcfile == null || srcfile.length == 0) {return null;}ZipParameters parameters = new ZipParameters();// 压缩方式parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);// 压缩级别parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);// 加密方式if (!TextUtils.isEmpty(password)) {parameters.setEncryptFiles(true);parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_STANDARD);parameters.setPassword(password);}ArrayList<File> existFileList = new ArrayList<File>();for (int i = 0; i < srcfile.length; i++) {if (srcfile[i] != null) {existFileList.add(srcfile[i]);}}try {ZipFile zipFile = new ZipFile(destZipFile);zipFile.addFiles(existFileList, parameters);return zipFile.getFile();} catch (ZipException e) {e.printStackTrace();return null;}}/*** 对文件夹加密* @param folder* @param destZipFile* @param password* @return*/public static File doZipFilesWithPassword(File folder, String destZipFile, String password) {if (!folder.exists()) {return null;}ZipParameters parameters = new ZipParameters();// 压缩方式parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);// 压缩级别parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);// 加密方式if (!TextUtils.isEmpty(password)) {parameters.setEncryptFiles(true);//parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_STANDARD);parameters.setPassword(password);}try {ZipFile zipFile = new ZipFile(destZipFile);zipFile.addFolder(folder, parameters);return zipFile.getFile();} catch (ZipException e) {e.printStackTrace();return null;}}/*** 单文件压缩并加密* @param file 要压缩的zip文件* @param destZipFile zip保存路径* @param password 密码 可以为null* @return*/public static File doZipSingleFileWithPassword(File file, String destZipFile, String password) {if (!file.exists()) {return null;}ZipParameters parameters = new ZipParameters();// 压缩方式parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);// 压缩级别parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);// 加密方式if (!TextUtils.isEmpty(password)) {parameters.setEncryptFiles(true);//parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_STANDARD);parameters.setPassword(password);}try {ZipFile zipFile = new ZipFile(destZipFile);zipFile.addFile(file,parameters);return zipFile.getFile();} catch (ZipException e) {e.printStackTrace();return null;}}/*** 解压文件* File:目标zip文件* password:密码,如果没有可以传null* path:解压到的目录路径*/public static boolean unZip(File file,String password,String path) {boolean res = false;try {ZipFile zipFile = new ZipFile(file);if (zipFile.isEncrypted()) { if(password != null && !password.isEmpty()) {zipFile.setPassword(password); }} zipFile.extractAll(path);res = true;} catch (ZipException e) {// TODO Auto-generated catch blocke.printStackTrace();} return res;}}
Android 加密压缩文件相关推荐
- Python 创建加密压缩文件
Python 创建加密压缩文件 1. 配置ZLib http://www.winimage.com/zLibDll/minizip.html 下载之后将 zlibwapi.dll 放在 demo/目录 ...
- python 批量加密压缩文件
python 批量加密压缩文件 0x01 解决的问题 0x02 遇到的问题 0x03 代码 0x01 解决的问题 当有大批的文件,并且存放在不同的文件夹中,需要你进行加密压缩时,可参照此代码: 在代码 ...
- Android 加密之文件加密(FBE)
一:加密简介: 加密是使用对称加密密钥对 Android 设备上的所有用户数据进行编码的过程.设备经过加密后,所有由用户创建的数据在存入磁盘之前都会自动加密,并且所有读取操作都会在将数据返回给调用进程 ...
- 安卓加密软件_软件 | 加密压缩文件暴力快速查看,安卓手机适用
朋友们常常下载文件后需要解压缩,然而解压缩通常要密码,运气好密码就是压缩文件的名字,或者都能在下载的时候能在下载网址中找到,运气不好,就麻烦了,很想要的资源文件就因为没有密码就那么无法查看了. 当然一 ...
- linux加密压缩文件命令,linux 系统下 zip 的加密压缩与解压缩命令
1.加密压缩 [[email protected] shine]# zip -rP king java.zip java adding: java/ (stored 0%) adding: java/ ...
- 在OSX中制作加密压缩文件
1.打开Terminal 2.cd到指定目录 3-1.文件加密 zip -e xxx.zip(压缩后文件名) xxx.xxx(文件名) 3-2.文件夹加密 zip -er xxx.zip(压缩后文件名 ...
- Linux kali系统使用fcrackzip/rarcrack破解zip/rar(或者zip 7z)类型的加密压缩文件
一. fcrackzip工具 1.首先得有有zip加密的文档 zip -P 12345 demozip.zip 2再使用fcrackzip工具 密码就出来了 3.也可以指定字典来进行查找,字典可以是 ...
- php压缩包 加密,php加密压缩文件
前言 近几日,用爬虫采集的了一些数据,存放到硬盘中,随着数据量越来越多,所以想上传到网盘当中,可是不加下密又觉得不放心, 所以开始用PHP的zip模块进行压缩加密. 开始 $zipArc = new ...
- Mac - 加密压缩文件(免费)
1.打开终端 2.键入 cd desktop 让终端控制桌面 3.键入 zip -er [压缩后文件名].zip [源文件(含后缀名)]命令 4.执行压缩命令,输入加密密码,确认加密密码 5桌面出现压 ...
最新文章
- java从磁盘读取图片_java 怎样从磁盘读取图片文件
- 学习笔记(八)——jQuery(二)
- vb 变量赋值为当前选定单元格_第7篇:根据Excel选定行对Word模板填充数据(补充修改)...
- 台湾ML笔记--1.2 formalize the learning probelm
- java 正则 小数_详解Java判断是否是整数,小数或实数的正则表达式
- java输出二进制数_Java打印整数的二进制表示(代码与解析)
- 用SqlBulkCopy批量安插数据时提示来自数据源的 String 类型的给定值不能转换为指定目标列的类型 int...
- 命令执行漏洞-命令执行-漏洞位点- 代码注入-漏洞利用-联合执行-Bypass(空格,关键字过滤,变量绕过)-例题两道-actf2020exec-GXYCTF2019 Ping Ping Ping
- 怎样用计算机记账,仓管员怎么用电脑记账?简单实用的电脑操作方式一览!
- linux全过程图解图片,安装 Mandriva Linux全过程《图解》
- Transformer靠什么得以闯入CV界秒杀CNN?
- 大数据技术常用的工具有哪些
- 什么是集群负载均衡与高可用(有图详解)
- 电阻中联分压电路的计算
- μCOS-Ⅱ操作系统中的PEND(阻塞zuse)和SUSPEND(挂起)和SLEEP(睡眠)三种状态
- 管理员必须知道的RADIUS认证服务器的部署成本
- 分段概率密度矩估计_2017年考研《数学一》大纲
- [题解]CodeForces1208G Polygons
- 专访最强夫妻店:“神庙逃亡2”开发背后的故事
- 被领导嘉奖了,该不该请同事吃饭?
热门文章
- 三大c4d人物角色模型素材网站 实用 精选
- JAVA信息管理系统毕业设计 开题报告
- 写给大家看的机器学习书【Part3】直观易懂的感知机学习算法PLA
- 用户与计算机通信的界面是什么意思,GUI是什么意思
- VSCode下的51单片机开发环境搭建
- 怎么删除计算机的打印机设备,win7系统的打印机删除不掉怎么办?完美解决方法看这里!...
- matlab提取wind底层数据库操作
- 漫谈程序猿系列:怎么告别“混日子”
- 数据库作业 1:绘制crow‘s foot图
- WampServer最新版一键安装