资源简介

rsa方式文件加密(java版); 针对公钥私钥都有范例; zip加密压缩和解压;

资源截图

代码片段和文件信息

package cn.quickbundle.tools.support.encrypt;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.objectInputStream;
import java.io.objectOutputStream;
import java.security.Key;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.SecureRandom;
import java.util.UUID;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;

import javax.crypto.Cipher;

/**
 * 对文件压缩加密/解密解压缩 对象类
 * RSA压缩加密/解压缩解密
 * 
 */
public class ZipEncrypt_rsa {
private static PrivateKey privateKey;

private static PublicKey publicKey;

private static void directoryZip(ZipOutputStream out File f String base)
throws Exception {
// 如果传入的是目录
if (f.isDirectory()) {
File[] fl = f.listFiles();
// 创建压缩的子目录
out.putNextEntry(new ZipEntry(base + “/“));
if (base.length() == 0) {
base = ““;
} else {
base = base + “/“;
}
for (int i = 0; i < fl.length; i++) {
directoryZip(out fl[i] base + fl[i].getName());
}
} else {
// 把压缩文件加入rar中
out.putNextEntry(new ZipEntry(base));
FileInputStream in = new FileInputStream(f);
byte[] bb = new byte[2048];
int aa = 0;
while ((aa = in.read(bb)) != -1) {
out.write(bb 0 aa);
}
in.close();
}
}

/**
 * 压缩文件
 * 
 * @param zos
 * @param file
 * @throws Exception
 */
private static void fileZip(ZipOutputStream zos File file)
throws Exception {
if (file.isFile()) {
zos.putNextEntry(new ZipEntry(file.getName()));
FileInputStream fis = new FileInputStream(file);
byte[] bb = new byte[2048];
int aa = 0;
while ((aa = fis.read(bb)) != -1) {
zos.write(bb 0 aa);
}
fis.close();
//System.out.println(file.getName());
} else {
directoryZip(zos file ““);
}
}

/**
 * 解压缩文件
 * 
 * @param zis
 * @param file
 * @throws Exception
 */
private static void fileUnZip(ZipInputStream zis File file)
throws Exception {
ZipEntry zip = zis.getNextEntry();
if (zip == null)
return;
String name = zip.getName();
File f = new File(file.getAbsolutePath() + “/“ + name);
if (zip.isDirectory()) {
f.mkdirs();
fileUnZip(zis file);
} else {
f.createNewFile();
FileOutputStream fos = new FileOutputStream(f);
byte b[] = new byte[2048];
int aa = 0;
while ((aa = zis.read(b)) != -1) {
fos.write(b 0 aa);
}
fos.close();
fileUnZip(zis file);
}
}

/**
 * 对directory目录下的文件压缩,保存为指定的文件zipFile
 * 
 * @param directory
 * @param zipFile
 */
private static void zip(String directory String zipFile) {
try {
ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(
zipFile));
fileZip(zos new File(directory));
zos.close();
} catch (Exception e) {
e.printStackTrace();

评论

共有 条评论