黑马程序员技术交流社区

标题: IO加密图片的小知识点---^ [打印本页]

作者: Sphinx    时间: 2016-6-21 23:58
标题: IO加密图片的小知识点---^
      IO的字节流是比较简单的一部分,图片加密是其中一个比较实用的方式,利用了^两次得到本身的原理,以任意合理int数作为密钥加密.听起来很简单,但在今天的运行中发现了一个问题.大家有兴趣都可以试试.
C:\Users\Administrator\Desktop\图片\test.png
-----------------------------我是分割线
      这样加密之后,要如何才能得到解密图片呢?
      经过几番周折,尝试过(len-50*13)^128等诸多尝试,一直没有成功.最终发现,解密的密钥就是len^128+50*13.运算符中,+的优先级比^高......
     希望这个小知识点可以帮到大家
作者: Sphinx    时间: 2016-6-22 00:00
package com.heima.test;  import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException;  public class Test1 {          /**          利用^加密图片         ^后面的数字相当于是密钥,同一对象异或两次得到本身.          * @throws IOException          */         public static void main(String[] args) throws IOException {                 BufferedInputStream  bis = new BufferedInputStream(new FileInputStream("chong.jpg"));                 BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("chong1.jpg"));                 int len;                 while((len = bis.read())!=-1) {                         bos.write(len^128+50*13);                 }                 bis.close();                 bos.close();         }  }
作者: Sphinx    时间: 2016-6-22 00:02
初次发帖,排版无能,建议粘到eclipse运行试试
作者: 火影木叶    时间: 2016-6-22 00:09
可以的   现学现卖
作者: jiazhuoxiao    时间: 2016-6-22 10:19
收藏了
作者: Sphinx    时间: 2016-6-22 23:37
火影木叶 发表于 2016-6-22 00:09
可以的   现学现卖

也是我们班的啊,居然碰上了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2