欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

你也可以使用的加密解密

程序员文章站 2022-06-01 15:53:56
...

一、简介

加密技术是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密)

你也可以使用的加密解密

今天主要介绍通过异或加密。

二、技术介绍

异或是一种数学运算符,计算机符号为“xor”,数学符号为“⊕”

如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。

运算法则有:

1. a ⊕ a = 0

2. a ⊕ b = b ⊕ a

3. a ⊕b ⊕ c = a ⊕ (b ⊕ c) = (a ⊕ b) ⊕ c;

4. d = a ⊕ b ⊕ c 可以推出 a = d ⊕ b ⊕ c.

5. a ⊕ b ⊕ a = b.

6.若x是二进制数0101,y是二进制数1011;

则x⊕y=1110

只有在两个比较的位不同时其结果是1,否则结果为0

即“两个输入相同时为0,不同则为1”!

 

三、实践

3.1.原理

  •  
  •  
  •  
int i = 3;System.out.println(i^456);//459System.out.println(i^456^456);//

3.2.应用

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
public static void main(String[] args) throws Exception {        //加密        FileInputStream in = new FileInputStream("D:\\testFile\\test1.jpg");        FileOutputStream out = new FileOutputStream("D:\\testFile\\test2.dat");
        BufferedInputStream bin = new BufferedInputStream(in);        BufferedOutputStream bout = new BufferedOutputStream(out);
        int len;        while((len=bin.read())!=-1){            bout.write(len^456);        }        bout.close();        bin.close();    }

 生成的test2.dat 文件无法用图片编辑器打开

你也可以使用的加密解密

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
public static void main(String[] args) throws Exception {        //解密        FileInputStream in = new FileInputStream("D:\\testFile\\test2.dat");        FileOutputStream out = new FileOutputStream("D:\\testFile\\test3.jpg");
        BufferedInputStream bin = new BufferedInputStream(in);        BufferedOutputStream bout = new BufferedOutputStream(out);
        int len;        while((len=bin.read())!=-1){            bout.write(len^456);        }        bout.close();        bin.close();    }

 生成的test3与test1文件一样,成功解密

你也可以使用的加密解密

3.3.延伸

    我们发现微信的缓存聊天图片均使用加密处理

你也可以使用的加密解密

    经过测试我们发现,微信的加密图片也是经过异或处理,所以我们只需要知道异或值就可以还原图片。jpg图片文件头一般为FF D8 开头的,所以使用科学计算器,计算异或值。

四、总结

对图片加密解密的方法还很多,比如将图片转成base64格式;或者在输出流的时候加几个特殊字符,输入流时判断并删减特殊字符还原,后续继续介绍加密解密思路

你也可以使用的加密解密

相关标签: 加密解密