通过io流对图片进行加密与解密
package 练习; import org.junit.Test; import java.io.*; public class PictureSecret { @Test //对图片进行加密 public void pictureSecret() { BufferedInputStream bi= null; BufferedOutputStream bo= null; try { //创建输入输出文件 File fileIn=new File("F:\java92\src\练习\1.jpg"); File fileOut=new File("F:\java92\src\练习\1secret.jpg"); //创建流对象 FileInputStream fi=new FileInputStream(fileIn); FileOutputStream fo=new FileOutputStream(fileOut); //创建缓冲区 bi = new BufferedInputStream(fi); bo = new BufferedOutputStream(fo); //进行读取与写入 int len; while (( len=bi.read())!=-1) { //加密异或 byte b= (byte) (len^5); bo.write(b); } } catch (IOException e) { e.printStackTrace(); } finally { //关闭流 try { if (bo!=null) { bo.close(); } } catch (IOException e) { e.printStackTrace(); } try { if (bi!=null) { bi.close(); } } catch (IOException e) { e.printStackTrace(); } } } @Test //对图片进行解密 public void pictureReceiver() { BufferedInputStream bi= null; BufferedOutputStream bo= null; try { //创建输入输出文件 File fileIn=new File("F:\java92\src\练习\1secret.jpg"); File fileOut=new File("F:\java92\src\练习\5.jpg"); //创建流对象 FileInputStream fi=new FileInputStream(fileIn); FileOutputStream fo=new FileOutputStream(fileOut); //创建缓冲区 bi = new BufferedInputStream(fi); bo = new BufferedOutputStream(fo); //进行读取与写入 int len; while ((len=bi.read())!=-1) { //解密异或 相当于 5^7^7=5 byte b= (byte) (len^5); bo.write(b); } } catch (IOException e) { e.printStackTrace(); } finally { //关闭流 try { if (bo!=null) { bo.close(); } } catch (IOException e) { e.printStackTrace(); } try { if (bi!=null) { bi.close(); } } catch (IOException e) { e.printStackTrace(); } } } }
下一篇:
使用kafka服务进行灰度发布实现方案