欢迎来到天天文库
浏览记录
ID:6075317
大小:241.92 KB
页数:28页
时间:2018-01-02
《java文件加密压缩及解密-流程图及源码》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、文件加密压缩以及解密两种方式:1.文件内容加密:首先对文件内容进行加密,然后压缩;对应的先解压,再对文件进行密匙匹配,匹配成功对文件解密2.ZIP4J:引入jar包,给文件添加密匙进行压缩,必须输入密码才可以打开文件。通过密码将文件进行解压缩。1.1文件内容加密流程图01.初始化srcPathName:源文件,destPathName:目的文件,key:密匙02.根据(文件夹/文件)来执行不同压缩方法file.isDirectory()以流的形式打开目的文件ZipOutputStreamoutYN03.对文件加密04.给文件
2、添加密匙结束取出目录下的文件,再次进行类型判断05.压缩文件流程图对应的具体方法序号对应方法名相关参数01Main函数调用入口publicvoidcompressExe(StringsrcPathName,StringdestPathName,Stringkey)srcPathName:源文件路径destPathName:目标文件路径key:密匙02判断压缩目标是“目录(文件夹)”、“文件”privatevoidcompressByType(StringsrcPathName,ZipOutputStreamout,Strin
3、gbasedir,Stringkey)srcPathName:要被操作的文件路径out:压缩文件流key:密匙03文件加密privatevoidcompressFile(StringsrcPathName,ZipOutputStreamout,Stringbasedir,Stringkey)代码前面部分srcPathName:要被操作的文件路径out:压缩文件流key:密匙04添加密匙publicstaticvoidappendLock(StringfileName,Stringkey)fileName:文件路径key:密匙
4、05压缩文件privatevoidcompressFile(StringsrcPathName,ZipOutputStreamout,Stringbasedir,Stringkey)代码在后面部分srcPathName:要被操作的文件路径out:压缩文件流key:密匙1.2文件加密方法:创建一个新的添加文件destFile,存放加密后的文件创建长度为1024的内存空间buffer,存放读取字节Buffer2,存放加密后的字节//循环得到buffer[i],将字节位移加密,存放在buffer2中For(inti=0;i5、++){Buffer[2]=Buffer[i]==255?0:++b}将buffer2,写入destFile中Fileout.write(buffer2,0,r)添加密匙key加入md5格式的key,将key分为3段,分为写入加密文件的startcenterlast位置While((r=in.read(buffer))>0)读字节到数组buffer中,r读入的字节数YN加密成功1.3文件压缩读取压缩文件流BufferedInputStreambis=newBufferedInputStream(newFileInputStr6、eam(newFile(srcPathName)));创建压缩包入口,并放入目标流outZipEntryentry=newZipEntry(basedir+newFile(srcPathName).getName())out.putNextEntry(entry);将data,写入out中out.write(data,0,count);out.flush();bis文件流关闭While((count=bis.read(data,0,BUFFER))!=-1)读字节到数组buffer中,r读入的字节数YN压缩完成创建长度为BU7、FFER的内存空间data,存放读取字节bytedata[]=newbyte[BUFFER];1.4文件解压整体流程图:01.解压文件密匙匹配成功02.对解压后的文件进行密匙匹配NY03.对文件解密结束密匙错误序号对应方法名相关参数01Main函数调用入口,首先解压文件publicstaticvoidunZipFiles(StringzipFile,StringdescDir,Stringkey)zipFile:源zip路径descDir:文件输出路径key:密匙02匹配密匙publicstaticbooleanmatchL8、ock(StringfileName,Stringkey)fileName:文件路径key:密匙03文件解密publicstaticStringdecrypt(StringsrcPathName,Stringkey)srcPathName:要被操作的文件路径key:密匙具体解压流程图如下:
5、++){Buffer[2]=Buffer[i]==255?0:++b}将buffer2,写入destFile中Fileout.write(buffer2,0,r)添加密匙key加入md5格式的key,将key分为3段,分为写入加密文件的startcenterlast位置While((r=in.read(buffer))>0)读字节到数组buffer中,r读入的字节数YN加密成功1.3文件压缩读取压缩文件流BufferedInputStreambis=newBufferedInputStream(newFileInputStr
6、eam(newFile(srcPathName)));创建压缩包入口,并放入目标流outZipEntryentry=newZipEntry(basedir+newFile(srcPathName).getName())out.putNextEntry(entry);将data,写入out中out.write(data,0,count);out.flush();bis文件流关闭While((count=bis.read(data,0,BUFFER))!=-1)读字节到数组buffer中,r读入的字节数YN压缩完成创建长度为BU
7、FFER的内存空间data,存放读取字节bytedata[]=newbyte[BUFFER];1.4文件解压整体流程图:01.解压文件密匙匹配成功02.对解压后的文件进行密匙匹配NY03.对文件解密结束密匙错误序号对应方法名相关参数01Main函数调用入口,首先解压文件publicstaticvoidunZipFiles(StringzipFile,StringdescDir,Stringkey)zipFile:源zip路径descDir:文件输出路径key:密匙02匹配密匙publicstaticbooleanmatchL
8、ock(StringfileName,Stringkey)fileName:文件路径key:密匙03文件解密publicstaticStringdecrypt(StringsrcPathName,Stringkey)srcPathName:要被操作的文件路径key:密匙具体解压流程图如下:
此文档下载收益归作者所有