知识大全 Java文件加解密
Posted 文件
篇首语:相逢意气为君饮,系马高楼垂柳边。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java文件加解密相关的知识,希望对你有一定的参考价值。
Java文件加解密 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
做网站有时会处理一些上传下载的文件 可能会用到加解密功能 以下是一个加解密方法
Java代码
import java io File;
import java io FileInputStream;
import java io FileOutputStream;
import java io IOException;
import nf Conf;
import mon time TimeHandler;
/**
* 加解密单元
* @author lupingui
* : :
*/
public class EncryptDecrypt
//加解密KEY 这个不能变动 这里可以由任意的字符组成 尽量用特殊字符
static final byte[] KEYVALUE = getBytes();
//读取字节的长度
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 String saveFileName) throws IOException
//如果传入的文件不存在或者不是文件则直接返回
if (!oldFile exists() || !oldFile isFile())
return false;
FileInputStream in = new FileInputStream(oldFile);
//加密后存储的文件
File file = new File(saveFileName);
if (!file exists())
return false;
//读取待加密文件加密后写入加密存储文件中
FileOutputStream out = new FileOutputStream(file);
int c pos keylen;
pos = ;
keylen = KEYVALUE length;
byte buffer[] = new byte[BUFFERLEN];
while ((c = in read(buffer)) != )
for (int i = ; i < c; i++)
buffer[i] ^= KEYVALUE[pos];
out write(buffer[i]);
pos++;
if (pos == keylen)
pos = ;
in close();
out close();
return true;
/**
* 文件加密
* @param oldFile:待加密文件
* @param saveFile 加密后的文件
* @return
* @throws IOException
*/
public static boolean encryptFile(File oldFile File saveFile) throws IOException
//如果传入的文件不存在或者不是文件则直接返回
if (!oldFile exists() || !oldFile isFile() || !saveFile exists() || !saveFile isFile())
return false;
FileInputStream in = new FileInputStream(oldFile);
//读取待加密文件加密后写入加密存储文件中
FileOutputStream out = new FileOutputStream(saveFile);
int c pos keylen;
pos = ;
keylen = KEYVALUE length;
byte buffer[] = new byte[BUFFERLEN];
while ((c = in read(buffer)) != )
for (int i = ; i < c; i++)
buffer[i] ^= KEYVALUE[pos];
out write(buffer[i]);
pos++;
if (pos == keylen)
pos = ;
in close();
out close();
return true;
/**
* 文件加密
* @param oldFile 待加密文件
* @return
* @throws IOException
*/
public static File encryptFile(File oldFile) throws IOException
//如果传入的文件不存在或者不是文件则直接返回
if (!oldFile exists() || !oldFile isFile())
return null;
FileInputStream in = new FileInputStream(oldFile);
//临时加密文件存储目录
File dirFile = new File(TRANSIT_DIR_ENC);
//如果临时存储目录不存在或不是目录则直接返回
if (!dirFile exists() || !dirFile isDirectory())
return null;
//加密后存储的文件
File file = new File(dirFile enc_ + TimeHandler getInstance() getTimeInMillis() + _ + oldFile getName());
if (!file exists())
file createNewFile();
//读取待加密文件加密后写入加密存储文件中
FileOutputStream out = new FileOutputStream(file);
int c pos keylen;
pos = ;
keylen = KEYVALUE length;
byte buffer[] = new byte[BUFFERLEN];
while ((c = in read(buffer)) != )
for (int i = ; i < c; i++)
buffer[i] ^= KEYVALUE[pos];
out write(buffer[i]);
pos++;
if (pos == keylen)
pos = ;
in close();
out close();
//返回加密后的文件
return file;
/**
* 文件加密
* @param oldFileName 待加密文件路径
* @return
* @throws IOException
* @throws Exception
*/
public static File encryptFile(String oldFileName) throws IOException
//如果待加密文件路径不正确则直接返回
if (oldFileName == null || oldFileName trim() equals( ))
return null;
//待加密文件
File oldFile = new File(oldFileName);
//如果传入的文件不存在或者不是文件则直接返回
if (!oldFile exists() || !oldFile isFile())
return null;
//调用文件加密方法并返回结果
return encryptFile(oldFile);
/**
* 文件解密
* @param oldFile 待解密文件
* @return
* @throws IOException
*/
public static File decryptFile(File oldFile) throws IOException
//如果待解密文件不存在或者不是文件则直接返回
if (!oldFile exists() || !oldFile isFile())
return null;
FileInputStream in = new FileInputStream(oldFile);
//临时解密文件存储目录
File dirFile = new File(TRANSIT_DIR_DEC);
//如果临时解密文件存储目录不存在或不是目录则返回
if (!dirFile exists() || !dirFile isDirectory())
return null;
//解密存储文件
File file = new File(dirFile dec_ + TimeHandler getInstance() getTimeInMillis() + _ + oldFile getName() substring(oldFile getName() lastIndexOf( )));
if (!file exists())
file createNewFile();
//读取待解密文件并进行解密存储
FileOutputStream out = new FileOutputStream(file);
int c pos keylen;
pos = ;
keylen = KEYVALUE length;
byte buffer[] = new byte[BUFFERLEN];
while ((c = in read(buffer)) != )
for (int i = ; i < c; i++)
buffer[i] ^= KEYVALUE[pos];
out write(buffer[i]);
pos++;
if (pos == keylen)
pos = ;
in close();
out close();
//返回解密结果文件
return file;
/**
* 文件解密
* @param oldFileName 待解密文件路径
* @return
* @throws Exception
*/
public static File decryptFile(String oldFileName) throws Exception
//如果待解密文件路径不正确则直接返回
if (oldFileName == null || oldFileName trim() equals( ))
return null;
//待解密文件
File oldFile = new File(oldFileName);
//如果待解密文件不存在或不是文件则直接返回
if (!oldFile exists() || !oldFile isFile())
return null;
//调用文件解密方法并返回结果
return decryptFile(oldFile);
cha138/Article/program/Java/hx/201311/26983
相关参考
以下两个类可以很方便的完成字符串的加密和解密 加密CryptHelperencrypt(password) 解密CrypHelperdecrypt(password) 代码如下 Crypt
java字符串加密解密 tryStringtest=EncryptionDecryptiondes=newEncryptionDecryption(tourhb)//自定义密钥Systemout
Java多线程应用方法全解密 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Java多线程是我们
Java中3DES加密解密示例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在java中调用s
Java中3DES加密解密调用示例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在java中调
JAVADES加密解密实现 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! packagetxlt
知识大全 加密和解密ASP.NET配置文件(Web.config)
加密和解密ASP.NET配置文件(Web.config) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
知识大全 用javascript与java进行RSA加密与解密
用javascript与java进行RSA加密与解密 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Java常用的加密解密数字签名等API 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 常用API
甲方和乙方采用公钥密码体制对数据文件进行加密传送,甲方用乙方的公钥加密数据文件,乙方要对数据文件进行解密应该使用__
甲方和乙方采用公钥密码体制对数据文件进行加密传送,甲方用乙方的公钥加密数据文件,乙方要对数据文件进行解密应该使用_____。A、乙的公钥B、乙的私钥C、甲的公钥D、甲的私钥答案:B解析:公开密钥密码体