java文档的简单加密与解密
2016-03-01 10:34
337 查看
最近想要做一个文件的加密,就尝试用io的字节流来做了个简单的web加解密.
原理很简单,就是用FIleInputStream 读取文件的byte[],然后对该数组中的每一个byte进行一定规则的修改后写入文件即可。
因为我比较懒,不想写加密和解密两个方法,所以就直接对每个byte进行取反,这样写一个方法就可以了。
剩余的就只用在web环境中调用该方法就可以了。我这里是使用的springMVC
最后组织一下前台页面
测试过word,txt,pdf均可正常加密/解密
原理很简单,就是用FIleInputStream 读取文件的byte[],然后对该数组中的每一个byte进行一定规则的修改后写入文件即可。
因为我比较懒,不想写加密和解密两个方法,所以就直接对每个byte进行取反,这样写一个方法就可以了。
public class LockFile{ /** * 通过反转的方式加锁/解密 * @param beforePath 原文件地址 * @param afterPath 操作后文件地址 * @return * @throws Exception */ public static void invertFile(String beforePath,String afterPath) throws Exception{ //读入文件 FileInputStream fi= new FileInputStream(beforePath); int len= fi.available(); byte[] bytes =new byte[len]; fi.read(bytes); fi.close(); //对byte进行取反 for(int i=0;i<bytes.length;i++){ bytes[i]= (byte) (255-bytes[i]); } //写入文件 File file = new File(afterPath); FileOutputStream fo = new FileOutputStream(file); fo.write(bytes); fo.close(); } }
剩余的就只用在web环境中调用该方法就可以了。我这里是使用的springMVC
/** * 文件加密/解密 * @param beforePath 操作前地址 * @param afterPath操作后地址 * @return */ @ResponseBody @RequestMapping("lockFile") public Object LockFile(String beforePath,String afterPath,String opt){ JSONObject json =new JSONObject(); try { if(opt.equals("lock")||opt.equals("explain")){ FileChange.invertFile(beforePath, afterPath); json.put("flag",1); json.put("msg", "加锁/解密成功!"); }else{ json.put("flag",0); json.put("msg", "参数错误!"); } } catch (Exception e) { e.printStackTrace(); json.put("flag",-1); json.put("msg", "加锁/解密操作失败!"); } return json ; }
最后组织一下前台页面
测试过word,txt,pdf均可正常加密/解密
相关文章推荐
- MyEclipse工具使用-找不到Maven Dependencies项目报错
- 如何在JavaWeb程序中使用tld文件
- 关于Eclipse的如何更改字体及颜色等
- eclipse设置Package Explorer的显示
- java导出多个excel压缩zip下载
- 数据库字段 java bean 映射 规则
- SpringMVC入门Demo
- SPRING IN ACTION 第4版笔记-第一章-002-DI介绍
- 一个java项目调用另一个java项目
- MyEclipse: Can't load IA 32-bit .dll on a AMD 64-bit platform
- JAVA WEB学习——JDK的安装和配置
- java事件监听机制(观察者设计模式的实际运用)
- Java 重写(Override)与重载(Overload)
- JAVA自动化测试中多数据源的切换
- Java 继承
- Java访问远程接口的几种方式
- 【leetcode】【47】Permutations II
- Java的可选参数
- Think in Java反刍笔记(4)---一切都是对象(第二章)
- Java-字符串问题