做網站有時會處理一些上傳下載的文件
Java代碼
import java
import java
import java
import java
import nf
import mon
/**
* 加解密單元
* @author lupingui
*
*/
public class EncryptDecrypt {
//加解密KEY
static final byte[] KEYVALUE =
//讀取字節的長度
static final int BUFFERLEN =
//加密臨時存儲目錄
static final String TRANSIT_DIR_ENC =
//解密臨時存儲目錄
static final String TRANSIT_DIR_DEC =
/**
* 文件加密
* @param oldFile
* @param saveFileName
* @return
* @throws IOException
*/
public static boolean encryptFile(File oldFile
//如果傳入的文件不存在或者不是文件則直接返回
if (!oldFile
return false;
}
FileInputStream in = new FileInputStream(oldFile);
//加密後存儲的文件
File file = new File(saveFileName);
if (!file
return false;
}
//讀取待加密文件加密後寫入加密存儲文件中
FileOutputStream out = new FileOutputStream(file);
int c
pos =
keylen = KEYVALUE
byte buffer[] = new byte[BUFFERLEN];
while ((c = in
for (int i =
buffer[i] ^= KEYVALUE[pos];
out
pos++;
if (pos == keylen){
pos =
}
}
}
in
out
return true;
}
/**
* 文件加密
* @param oldFile:待加密文件
* @param saveFile
* @return
* @throws IOException
*/
public static boolean encryptFile(File oldFile
//如果傳入的文件不存在或者不是文件則直接返回
if (!oldFile
return false;
}
FileInputStream in = new FileInputStream(oldFile);
//讀取待加密文件加密後寫入加密存儲文件中
FileOutputStream out = new FileOutputStream(saveFile);
int c
pos =
keylen = KEYVALUE
byte buffer[] = new byte[BUFFERLEN];
while ((c = in
for (int i =
buffer[i] ^= KEYVALUE[pos];
out
pos++;
if (pos == keylen){
pos =
}
}
}
in
out
return true;
}
/**
* 文件加密
* @param oldFile
* @return
* @throws IOException
*/
public static File encryptFile(File oldFile) throws IOException{
//如果傳入的文件不存在或者不是文件則直接返回
if (!oldFile
return null;
}
FileInputStream in = new FileInputStream(oldFile);
//臨時加密文件存儲目錄
File dirFile = new File(TRANSIT_DIR_ENC);
//如果臨時存儲目錄不存在或不是目錄則直接返回
if (!dirFile
return null;
}
//加密後存儲的文件
File file = new File(dirFile
if (!file
file
}
//讀取待加密文件加密後寫入加密存儲文件中
FileOutputStream out = new FileOutputStream(file);
int c
pos =
keylen = KEYVALUE
byte buffer[] = new byte[BUFFERLEN];
while ((c = in
for (int i =
buffer[i] ^= KEYVALUE[pos];
out
pos++;
if (pos == keylen){
pos =
}
}
}
in
out
//返回加密後的文件
return file;
}
/**
* 文件加密
* @param oldFileName
* @return
* @throws IOException
* @throws Exception
*/
public static File encryptFile(String oldFileName) throws IOException {
//如果待加密文件路徑不正確則直接返回
if (oldFileName == null || oldFileName
return null;
}
//待加密文件
File oldFile = new File(oldFileName);
//如果傳入的文件不存在或者不是文件則直接返回
if (!oldFile
return null;
}
//調用文件加密方法並返回結果
return encryptFile(oldFile);
}
/**
* 文件解密
* @param oldFile
* @return
* @throws IOException
*/
public static File decryptFile(File oldFile) throws IOException{
//如果待解密文件不存在或者不是文件則直接返回
if (!oldFile
return null;
}
FileInputStream in = new FileInputStream(oldFile);
//臨時解密文件存儲目錄
File dirFile = new File(TRANSIT_DIR_DEC);
//如果臨時解密文件存儲目錄不存在或不是目錄則返回
if (!dirFile
return null;
}
//解密存儲文件
File file = new File(dirFile
if (!file
file
}
//讀取待解密文件並進行解密存儲
FileOutputStream out = new FileOutputStream(file);
int c
pos =
keylen = KEYVALUE
byte buffer[] = new byte[BUFFERLEN];
while ((c = in
for (int i =
buffer[i] ^= KEYVALUE[pos];
out
pos++;
if (pos == keylen){
pos =
}
}
}
in
out
//返回解密結果文件
return file;
}
/**
* 文件解密
* @param oldFileName
* @return
* @throws Exception
*/
public static File decryptFile(String oldFileName) throws Exception {
//如果待解密文件路徑不正確則直接返回
if (oldFileName == null || oldFileName
return null;
}
//待解密文件
File oldFile = new File(oldFileName);
//如果待解密文件不存在或不是文件則直接返回
if (!oldFile
return null;
}
//調用文件解密方法並返回結果
return decryptFile(oldFile);
}
}
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26983.html