//其中AES的加密解密方法encrypt(),decrypt()是正确的!而运行测试到文件加密方法FileEn()可以运行但不知道是不是AES的加密而文件解密方法FileDe()是出错的。不知道这个和文件的格式有...
//其中AES的加密解密方法encrypt(),decrypt()是正确的!
而运行测试到文件加密方法FileEn()可以运行但不知道是不是AES的加密
而文件解密方法FileDe()是出错的。
不知道这个和文件的格式有什么样的关系了?
/* ************************************文件加密方法 *********************************** */
public void FileEn(String fileReadPath,String fileWritePath,String password,int length){
File fileRead=new File(fileReadPath);
File fileWrite=new File(fileWritePath);
if(!fileRead.exists())
{
System.out.println("文件不存在");
System.exit(0);
}
if(!fileWrite.exists()){
System.out.println("创建文件");
try {
fileWrite.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
try {
FileInputStream fins=new FileInputStream(fileRead);
FileOutputStream fous=new FileOutputStream(fileWrite);
byte[] data=new byte[1024];
byte[] newData=new byte[1024];
while((fins.read(data))!=-1){
newData=encrypt(new String(data), password, length);
// **** encrypt(String content,String password,int length) 其中content为待加密内容 ,password加密密钥,length为密钥长度
// **** encrypt方法是将conttent用AES加密算法加密
fous.write(newData);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/* *************************************文件解密方法******************************************* */
public void FileDe(String FileReadPath,String FileWritePath,String password,int length){
File FileRead=new File(FileReadPath);
File FileWrite=new File(FileWritePath);
if(!FileRead.exists())
{
System.out.println("文件不存在");
System.exit(0);
}
if(!FileWrite.exists()){
System.out.println("创建文件");
try {
FileWrite.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
try {
FileInputStream fins=new FileInputStream(FileRead);
FileOutputStream fous=new FileOutputStream(FileWrite);
byte[] data=new byte[1024];
byte[] newData=new byte[1024];
while((fins.read(data))!=-1){
newData=decrvpt(data, password, length);
// decrvpt(dyte[] content,String password,int length) 其中content为解密内容 ,password解密密钥,length为密钥长度
// encrypt()方法是将content解密为明文,用的是AES算法
fous.write(newData);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
展开