本帖最后由 rockybull 于 2015-12-17 20:29 编辑
Javase io流文件加密简述 今天刚刚学的io流,学会了用io流编写一个加密文件的小程序,很简单实用。 Io流是处理不同设备间数据的传输。加密是把一个文件通过位运算符^异或一个数(密钥)来实现的。 原理: 在写出字节的时候,异或上一个数字,这个数字就是密钥。 解密的时候,在异或上该数字(密钥)即可。 道理很简单,就是:一个数据a被同一个数据b,位异或两次,a值不变。 代码: //导入包和定义包 package test; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class Test1 { //定义一个类 public static void main(String[] args) throws IOException { //主方法抛出io异常给jvm //通过字节输入输出缓冲流,把当前目录准备加密的文件封装,封装贮备输出的加密文件。 BufferedInputStream bis = new BufferedInputStream(new FileInputStream("copy.jpg")); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("copy2.jpg")); int b; while((b = bis.read()) != -1) { bos.write(b ^ 123); /*将写出的字节异或上一个数,123就是密钥, 解密的时候再次异或就可以了*/ } bis.close(); //关闭输入和输出缓冲流 bos.close(); } } |