知识大全 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

相关参考

知识大全 java密码加密与解密

  以下两个类可以很方便的完成字符串的加密和解密  加密CryptHelperencrypt(password)  解密CrypHelperdecrypt(password)  代码如下  Crypt

知识大全 java字符串加密解密

  java字符串加密解密  tryStringtest=EncryptionDecryptiondes=newEncryptionDecryption(tourhb)//自定义密钥Systemout

知识大全 Java多线程应用方法全解密

Java多线程应用方法全解密  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java多线程是我们

知识大全 Java中3DES加密解密示例

Java中3DES加密解密示例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在java中调用s

知识大全 Java中3DES加密解密调用示例

Java中3DES加密解密调用示例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在java中调

知识大全 JAVA DES加密解密实现

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

Java常用的加密解密数字签名等API  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  常用API

甲方和乙方采用公钥密码体制对数据文件进行加密传送,甲方用乙方的公钥加密数据文件,乙方要对数据文件进行解密应该使用__

甲方和乙方采用公钥密码体制对数据文件进行加密传送,甲方用乙方的公钥加密数据文件,乙方要对数据文件进行解密应该使用_____。A、乙的公钥B、乙的私钥C、甲的公钥D、甲的私钥答案:B解析:公开密钥密码体