A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 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();
      }
}

5 个回复

倒序浏览
JohnsonJonson 来自手机 中级黑马 2015-12-16 00:34:35
沙发
还没学到这里来,有没有沙发,?
回复 使用道具 举报
看我能不能中奖呢
回复 使用道具 举报
抽奖学习
回复 使用道具 举报
顶起来,。。。。。。。。。。。。。。。。
回复 使用道具 举报

回帖奖励 +1

谢谢分享,好人一生平安
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马