package com.geap.common.utils.security;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
/**
* 文件加密解密
* 创建人:HingZhang
* 创建时间:Nov 7, 2013 1:47:28 PM
*/
public class SecurityUtils {
private byte[] KEYVALUE;
private int BUFFERLEN = 512;
public SecurityUtils(byte[] keyvalue) {
super();
KEYVALUE = keyvalue;
}
public SecurityUtils(byte[] keyvalue, int bufferlen) {
super();
KEYVALUE = keyvalue;
BUFFERLEN = bufferlen;
}
/**
* 对文件进行加密
* @Description: TODO(这里用一句话描述这个方法的作用)
* @param @param oldFile 原始要加密的文件
* @param @param newFile 加密后的文件
* @param @throws Exception
* @return void
*/
public void encryptFile(String oldFile, String newFile)
throws Exception {
FileInputStream in = new FileInputStream(oldFile);
File file = new File(newFile);
if (!file.exists())
file.createNewFile();
FileOutputStream out = new FileOutputStream(file);
int c, pos, keylen;
pos = 0;
keylen = KEYVALUE.length;
byte buffer[] = new byte[BUFFERLEN];
while ((c = in.read(buffer)) != -1) {
for (int i = 0; i < c; i++) {
buffer[i] ^= KEYVALUE[pos];
out.write(buffer[i]);
pos++;
if (pos == keylen)
pos = 0;
}
}
in.close();
out.close();
}
/**
* 对文件进行解密
* @Description: TODO(这里用一句话描述这个方法的作用)
* @param @param oldFile 原始要解密的文件
* @param @param newFile 解密后的文件
* @param @throws Exception
* @return void
*/
public void decryptFile(String oldFile, String newFile)
throws Exception {
FileInputStream in = new FileInputStream(oldFile);
File file = new File(newFile);
if (!file.exists())
file.createNewFile();
FileOutputStream out = new FileOutputStream(file);
int c, pos, keylen;
pos = 0;
keylen = KEYVALUE.length;
byte buffer[] = new byte[BUFFERLEN];
while ((c = in.read(buffer)) != -1) {
for (int i = 0; i < c; i++) {
buffer[i] ^= KEYVALUE[pos];
out.write(buffer[i]);
pos++;
if (pos == keylen)
pos = 0;
}
}
in.close();
out.close();
}
}
Java文件加解密
最新推荐文章于 2024-05-17 01:58:34 发布