设为首页 加入收藏

TOP

Java实现文件的加密与解密(二)
2015-07-30 11:18:12 来源: 作者: 【 】 浏览:150
Tags:Java 实现 文件 加密 解密
为“decFile.bmp”的String类对象作为解密文件名称。


  相对应地,解密的实现几乎和加密相同,只是输入与输出文件不同,看下面代码。


private static void DecFile(File encFile, File decFile) throws Exception {
  if(!encFile.exists()){
    System.out.println("encrypt file not exixt");
    return;
  }


  if(!decFile.exists()){
    System.out.println("decrypt file created");
    decFile.createNewFile();
  }


  InputStream fis? = new FileInputStream(encFile);
  OutputStream fos = new FileOutputStream(decFile);


  while ((dataOfFile = fis.read()) > -1) {
    fos.write(dataOfFile^numOfEncAndDec);
  }


  fis.close();
  fos.flush();
  fos.close();
}


  由于加密后的图片文件(保存为PNG类型)是不能直接在图片查看器中打开的,因为其内容已经改变,所以其缩略图标会显示为两朵不同颜色的花。对于其他类型的加密或损坏文件的缩略图标:JPG为山水画,BMP和TIF为画刷涂鸦,GIF为三个不同颜色的几何图形。当然,这些默认的图标应该会因系统而异。


  下面给出初始、加密及解密后的图标截图:



  和预想的一致,经测试发现以上方法对GIF动画(不是GIF图片,而是可以播放的动画资源)的加密与解密同样适用,代码和截图也就没有区别了,不过还是贴上来:


File srcFile = new File("srcFile.gif"); //初始文件


File encFile = new File("encFile.gif"); //加密文件


File decFile = new File("decFile.gif"); //解密文件



  有两点需要注意:


  1、在调用加密与解密方法时,必须加上异常处理块(try{...}catch{...},否则编译不通过)。


  2、对用来加密或解密的源文件进行打开(读取)操作之前,最好判断其是否存在,免得造成意想不到的错误和时间的浪费。因为若文件不存在,后续的操作都是没有意义的。


  今天就先写到这,总结一下吧。文件加密简单地说就是对数据进行变换,虽然一千种方法可能会有一千种一种结果,但是思想是通用的。关键是加密所采用的算法的难易,有时间会对文中提到的算法用Java进行实现。


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java内存区域 下一篇Java 虚拟机类加载机制和字节码执..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: