- 浏览: 209766 次
- 性别:
- 来自: 厦门
-
文章分类
- 全部博客 (100)
- java设计模式学习 (1)
- javascript (2)
- sqlserver (3)
- java基础 (18)
- spring (8)
- webwork (3)
- itext (4)
- xstream (1)
- freemarker (2)
- jsp (6)
- hibernate (7)
- jquery (1)
- json (1)
- poi (2)
- iprocess (1)
- bw (1)
- bpm (0)
- java2word (0)
- ireport (1)
- Struts2.0 (13)
- webservice (6)
- j2ee基础 (7)
- jms (3)
- protocol buffer (3)
- jfreechart (1)
- spring mvc (0)
- http编程机制探析 (1)
- pb (2)
- oracle (0)
- sso (0)
- mybatis (0)
- ssl与ca认证 (0)
- cas (1)
最新评论
-
mayucai:
这个博客写的我是真服,写了一大堆,结果最后来一句这是错的。
poi获取excel和word总页数 -
iris_1992:
2005年以前,国外开原报表完全碾压国产软件,但是现在国内软件 ...
ireport与jasperreports开发总结 -
高攀sky:
...
Servlet中的八大Listener -
rmn190:
多谢, 试了N多个后, 终于参考您的内容, 设置出来了。老天开 ...
ireport与jasperreports开发总结 -
辣油_:
System.out.println("草 ...
Spring-JNDI配置
1。首先下载winzipaes.jar(http://code.google.com/p/winzipaes/)
,bcprov-jdk16-145.jar,bcmail-jdk16-145.jar(http://www.bouncycastle.org/latest_releases.html)这三个jar
2.
public class ZipUtil {
public Boolean compress(String inFile, String outFile, String key) throws Exception {
Boolean flag = false;
ArrayList<String> fileList = new ArrayList<String>();
fileList.add(inFile);
compress(fileList, outFile, key);
flag = true;
return flag;
}
public Boolean compress(List<String> inFiles, String outFile, String key) throws Exception {
Boolean flag = false;
String tempFile = outFile;
if (null != key && !"".equals(key)) {
tempFile = tempFile + "temp";
}
ArrayList<String> filePathList = new ArrayList<String>();
ArrayList<String> fileNameList = new ArrayList<String>();
if (inFiles != null && inFiles.size() > 0) {
File file = null;
for (String fileStr : inFiles) {
file = new File(fileStr);
filePathList.add(file.getAbsolutePath());
fileNameList.add(file.getName());
}
makeZip(filePathList, fileNameList, tempFile);
if (null != key && !"".equals(key)) {
File temp = new File(tempFile);
AesZipFileEncrypter enc = new AesZipFileEncrypter(outFile);
enc.addAll(temp, key);
enc.close();
temp.delete();
}
}
flag = true;
return flag;
}
public Boolean compress(String inDir, String outFile, String key, Boolean ifSubDir) throws Exception {
System.out.println("--inDir--" + inDir);
System.out.println("--outFile--" + outFile);
Boolean flag = false;
String tempFile = outFile;
if (null != key && !"".equals(key)) {
tempFile = tempFile + "temp";
}
makeZip(new File(inDir), tempFile, ifSubDir);
if (null != key && !"".equals(key)) {
File temp = new File(tempFile);
AesZipFileEncrypter enc = new AesZipFileEncrypter(outFile);
enc.addAll(temp, key);
enc.close();
temp.delete();
}
flag = true;
return flag;
}
public Boolean uncompress(String inFile, String outDir, String key, Boolean ifSubDir) throws Exception {
boolean flag = false;
if (key == null || "".equals(key)) {
unZip(inFile, new File(outDir));
} else {
AesZipFileDecrypter zipFile = new AesZipFileDecrypter(new File(inFile));
for (ExtZipEntry entry : zipFile.getEntryList()) {
if (!ifSubDir) {
String filename = entry.getName();
String[] strArray = filename.split(File.separator + File.separator);
if (strArray != null && strArray.length == 1) {
zipFile.extractEntry(entry, new File(outDir + File.separator + entry.getName()), key);
}
} else {
zipFile.extractEntry(entry, new File(outDir + File.separator + entry.getName()), key);
}
}
}
flag = true;
return flag;
}
private void unZip(String zipFilePath, File toUnzipFold) throws IOException {
if (!toUnzipFold.exists()) {
toUnzipFold.mkdirs();
}
ZipFile zfile = new ZipFile(zipFilePath);
// zList包含了所有的文件夹、目录信息
Enumeration zList = zfile.entries();
byte[] buf = new byte[1024];
File tmpfile = null;
File tmpfold = null;
while (zList.hasMoreElements()) {
ZipEntry ze = (ZipEntry) zList.nextElement();
tmpfile = new File(toUnzipFold.getAbsolutePath() + File.separator + ze.getName());
if (ze.isDirectory()) {
continue;
} else {
tmpfold = tmpfile.getParentFile();
if (!tmpfold.exists()) {
tmpfold.mkdirs();
}
OutputStream os = new BufferedOutputStream(new FileOutputStream(tmpfile.getAbsolutePath()));
InputStream is = new BufferedInputStream(zfile.getInputStream(ze));
int readLen = 0;
while ((readLen = is.read(buf, 0, 1024)) != -1) {
os.write(buf, 0, readLen);
}
is.close();
os.close();
}
}
}
private void makeZip(File fold, String outputZipFileName) throws IOException {
makeZip(fold, outputZipFileName, false);
}
private void makeZip(File fold, String outputZipFileName, boolean recursive) throws IOException {
if (fold.exists()) {
ArrayList<File> fileList = new ArrayList<File>();
listAllFile(fold, fileList, recursive);
ArrayList<String> filePathList = new ArrayList<String>();
ArrayList<String> fileNameList = new ArrayList<String>();
String tmpStr = null;
int basLen = fold.getAbsolutePath().length();
for (File f : fileList) {
tmpStr = f.getAbsolutePath();
filePathList.add(tmpStr);
fileNameList.add(tmpStr.substring(basLen + 1, tmpStr.length()));
}
makeZip(filePathList, fileNameList, outputZipFileName);
}
}
private void listAllFile(File fold, ArrayList<File> fileList, boolean recursive) {
File[] files = fold.listFiles();
for (File f : files) {
if (recursive && f.isDirectory()) {
listAllFile(f, fileList, recursive);
} else if (!f.isDirectory()) {
fileList.add(f);
}
}
}
private void makeZip(ArrayList<String> filePathList, ArrayList<String> fileNameList, String outputZipFileName)
throws IOException {
byte[] buf = new byte[1024];
File outputZipFile = new File(outputZipFileName);
File outputZipParentFile = outputZipFile.getParentFile();
if (!outputZipParentFile.exists()) {
outputZipParentFile.mkdirs();
}
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(outputZipFile));
int len = -1;
for (int i = 0; i < filePathList.size(); i++) {
if (filePathList.get(i) != null) {
FileInputStream in = new FileInputStream(filePathList.get(i));
out.putNextEntry(new ZipEntry(fileNameList.get(i)));
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
out.closeEntry();
in.close();
}
}
out.close();
}
public static void main(String args[]) throws Exception {
ZipUtil z = new ZipUtil();
// 压缩
z.compress("c:/a.txt", "c:/b.zip", "123");
z.uncompress("c:/b.zip", "E:/", "123", true);
System.out.println("compress ok----------------------------------");
}
}
发表评论
-
线程池的原理及实现
2014-04-16 11:21 5841、线程池简介: 多线程技术主要解决处理器单元内多个线 ... -
java线程安全总结
2014-02-27 16:56 605关于java线程安全,网上有很多资料,我只想从自己的角度总结对 ... -
Java内存溢出的详细解决方案
2013-03-26 10:50 0一、内存溢出类型 1、j ... -
内存分区
2013-03-26 10:12 0Java代码 内存可分为3个区:堆(heap)、栈(sta ... -
持续集成工具hudson(Continuous Integration )CI
2013-03-20 13:19 983一.什么是持续集成 持 ... -
收录各种猥琐的Java笔试/面试题目
2013-03-19 15:23 859本文收录各种猥琐的Java笔试/面试题,一些比较容易忘记的,不 ... -
what is difference between hashmap and hashtable
2013-02-28 14:31 01.Hashmap is unSynchronized and ... -
java引用类型和值类型
2012-07-27 13:58 974Java传值还是传引用终极解释,还是看老外解释的清楚啊。 ... -
在Java中gsm modem发短信
2011-11-13 17:21 0JAVA发送SMS短信有两种方法:一是通过运营商的网关;二是通 ... -
java枚举类型
2011-10-27 11:00 1012枚举类型是JDK5.0的新特征。Sun引进了一个全新的关键字e ... -
JDK1.5新特性介绍
2011-10-27 10:51 736“JDK1.5”(开发代号猛 ... -
java中的enum类型与单态设计模式
2011-10-27 10:40 833单态设计模式有三种做法: 1.声明公有实例为public 2. ... -
谨慎地实现Serializable
2011-10-27 10:15 1185《Effective Java中文版( ... -
Java中static、final用法小结
2011-04-12 15:24 997一、final 1.final变量: ... -
j2se代码性能技巧
2011-03-04 17:00 0.JAVA开发工具集(JDK) ... -
Map与List性能比较
2011-03-04 16:23 103541.Collection接口与Map的总体框架图 Colle ... -
String.format方法使用
2011-03-04 11:45 9668一.常规类型、字符类型和数值类型的格式说明符的语法如下:%[ ... -
HttpServletResponseWrapper获取jsp的输出内容
2011-02-17 10:17 0主题:(转)用HttpServletResponseWrapp ... -
java hotswap(java热部署)
2011-01-04 14:33 2071安装步骤: 1、 在 windows 启动安装程序,在控制 ... -
common-BeanUtils使用
2010-12-17 15:16 14771。在審核過程中,我們 ...
相关推荐
这个"java 压缩加密项目"是一个实际的应用实例,它展示了如何使用Java处理文件的压缩和加密操作,特别是在Web环境中,如jsp和servlet的使用。项目的开发环境是JDK 1.5,IDE为Myeclipse 8.5,并且已经在Tomcat 6...
前段时间由于项目需要,使用java生成PDF文件,然后将文件压缩成ZIP格式,同时对压缩文件进行加密,先将代码及jar包上传供大家参考,并希望大家共同完善和学习。 java生成PDF,java加密压缩文件并,java生成PDF后压缩...
JAVA实现对文件夹“加密码压缩” 此资源解压后为一个文件夹,就是一个package包 (压缩后为Zip文件) 无需导入任何个人jar包 压缩后效果等同于用winrar给压缩包加密码 时间紧迫,暂时存在中文文件夹名称乱码问题 不...
在Java编程语言中,我们可以利用...以上就是关于"java zip加密压缩"的知识点,包括CSV文件的处理、ZIP文件的压缩、AES加密的原理及整合这些技术来实现文件的加密压缩。希望这些信息对你理解和实现相关功能有所帮助。
Java操作Zip文件主要涉及到对文件和目录的压缩与解压缩,以及在必要时对压缩文件进行加密处理。这里我们重点讨论使用两个库:`zip4j`和`Apache Ant`来实现这些功能。 1. **zip4j库**:`zip4j-1.3.2.jar`是一个用...
总的来说,这个Java压缩解压RSA加密程序源代码结合了数据压缩和非对称加密两大技术,提供了一种在传输或存储数据时兼顾效率和安全性的解决方案。理解并掌握这些概念对于任何从事Java开发,尤其是涉及网络安全和数据...
几种通用的解压缩JAVA版本实现,支持RAR ZIP 7Z等,同时还支持对压缩的文件进行加密解密。
前段时间由于项目需要,使用java生成PDF文件,然后将文件压缩成ZIP格式,同时对压缩文件进行加密,先将代码及jar包上传供大家参考,并希望大家共同完善和学习。 java生成PDF,java加密压缩文件并,java生成PDF后压缩...
在Java编程环境中,处理文件的压缩与解压缩是常见的任务,而涉及到安全性,加密和解密就显得尤为重要。本文将详细讲解如何使用Java实现ZIP压缩包的加密与解密。 首先,我们需要理解加密的基本概念。加密是将明文...
标题中的“压缩加密JS脚本C#源码”是指一种使用C#编程语言实现的工具,它可以对JavaScript(JS)脚本进行压缩和加密处理。这样的工具在开发Web应用程序时非常有用,因为压缩JS可以减少文件大小,提高网页加载速度,...
加密过程通常包括混淆、压缩和加密几个步骤,使得原始的Class文件变得难以反编译和分析。这样可以降低代码被盗用或恶意篡改的风险,提高软件的安全性。 加密工具的操作通常简单且实用,适合各种技术水平的开发者...
《使用zip4j进行Java加密压缩与解压详解》 在Java编程中,处理文件的压缩和解压是一项常见的任务,而zip4j库提供了一种便捷的方式,它支持文件和文件夹的加密压缩以及解压操作。zip4j不仅简单易用,还提供了强大的...
3. 将压缩和加密结合:在文件压缩前对其进行加密,然后压缩加密后的数据。这可以提高数据的安全性。首先对文件进行AES加密,然后将加密后的文件进行ZIP或GZIP压缩。解压时先解压缩,再解密。 ```java public void ...
总结起来,Java实现AES加密和压缩的流程包括:生成AES密钥、使用Cipher进行加密和解密、使用GZIP进行压缩和解压缩,以及使用Base64进行编码和解码。这样的组合既保证了数据的安全性,又降低了存储和传输的成本。在...
在Java编程语言中,加密和压缩是两个重要的领域,它们广泛应用于数据安全和存储优化。本资源"Java解密加密及压缩算法实例.rar"提供了一系列的示例代码,旨在帮助开发者理解和应用各种加密和压缩算法。以下是这些算法...
本项目“文件压缩与RSA加密JAVA实现”提供了一个基于JAVA的解决方案,允许用户对文件进行压缩并利用RSA算法进行加密。下面将详细阐述这两个主要知识点。 **文件压缩** 文件压缩是一种减少文件大小的技术,通过去除...
这个名为"Java公钥加密私钥解密.rar"的压缩包文件包含了一个使用Java实现的公钥/私钥加密解密的示例。在这个案例中,开发者可能使用了Java的Java Cryptography Extension (JCE) 来实现RSA算法,这是一种非对称加密...
加密压缩 解密解压 java编写 不需jdk环境 exe双击即可运行
在Java编程环境中,对文件进行压缩和加密是常见的需求,特别是在数据存储和传输时为了减小体积和保证安全。本文将详细介绍如何使用Java实现文件的压缩、加密以及解压缩,并探讨涉及的jar包和源码。 首先,我们需要...