1.5文件解密decrypt(decryptFilePath,key);
先匹配密匙是否正确 matchLock(String fileName,String key) 读出文件fileName中start、center、last位置(key.length()/3)字节,拼接出来与key匹配 N 结束 Y 创建一个新的添加文件destFile,存放解密后的文件 创建长度为1024的内存空间 buffer,存放读取字节 Buffer2,存放解密后的字节 //初始化文件字节总数 int mod = (int) ((file.length() - keyLength)24);int div = (int) (size>>10);//右移10位 int count = mod==0?div:(div+1); N While((k <= count && ( r = is.read(buffer)) > 0)) 读字节到数组buffer中,r读入的字节数 Y Y If(mod != 0 && k==count) N //循环得到buffer[i],将字节位移加密,存放在buffer2中 For(int i = 0; i 附源代码: import com.zl.base.core.MethodFactory; import com.zl.base.core.db.Executer; import com.zl.base.exception.DbException; import com.zl.common.CoreDispatchAction; import com.zl.common.MD5; import org.apache.commons.beanutils.BasicDynaBean; import org.apache.commons.beanutils.DynaProperty; import org.apache.log4j.Logger; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.RandomAccessFile; import java.util.List; import java.util.zip.CRC32; import java.util.zip.CheckedOutputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; import java.util.zip.ZipInputStream; /*import com.zl.opt.schedule.zip4j.*; import com.zl.opt.schedule.zip4j.model.*; import com.zl.opt.schedule.zip4j.util.Zip4jConstants; //import com.zl.opt.schedule.zip4j.core.ZipFile; import com.zl.opt.schedule.zip4j.exception.ZipException;*/ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class zipCompressor extends CoreDispatchAction { static Logger logger = Logger.getLogger(zipCompressor.class.getName()); static final int BUFFER = 8192; public zipCompressor(){ } public ActionForward createfile(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){ String filepath=\ String sql=\id,title,systemcode,file_passwd,sqlrule,isappoint,separator,int(current date) as datecol from S_DATAOFFERRULE where starttime <= current date and endtime >= current date\ try { List list1 = Executer.getInstance().ExecSeletSQL(sql).getResultSet(); if(list1.size()>0){ BasicDynaBean rowBean = null; String info=\ for(int i=0;i