Java中IO流-21-图片加密简单实现

Java中IO流-21-图片加密简单实现     这篇我们利用流来处理图片加密,当然这里没有处理到打开图片,提示输入密码的这么好友好效果。图片加密,也是把一个图片字节读取,然后进行加密运算,最后拷贝成新的图片文件。简单来说,这个过程原理就是,一个数如何被同一个数异或两次,那么结果就等于这个数本身。第一次进行异或就是图片加密过程,给图片每一个字节都进行加密,第二次异或就是解密过程。1.图片加密过程packageio;im…

大家好,又见面了,我是你们的朋友全栈君。

      这篇我们利用流来处理图片加密,当然这里没有处理到打开图片,提示输入密码的这么好友好效果。图片加密,也是把一个图片字节读取,然后进行加密运算,最后拷贝成新的图片文件。简单来说,这个过程原理就是,一个数如何被同一个数异或两次,那么结果就等于这个数本身。第一次进行异或就是图片加密过程,给图片每一个字节都进行加密,第二次异或就是解密过程。

1.图片加密过程

package io;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class Test1 {

	public static void main(String[] args) throws IOException {
		
		FileInputStream fis = new FileInputStream("copy.png");
		FileOutputStream fos = new FileOutputStream("123.png");
		
		int b;
		
		while( (b = fis.read()) != -1) {
			fos.write(b ^ 123);
		}
        
		fis.close();
		fos.close();
	}

}

运行之后,Eclipse中打开图片显示一个X,如果是图片管理器打开就报图片受损,无法正常打开,这个就是加密效果。

 

2.图片解密过程

只需要调整两行代码,把打开失败图片当做流对象进行性读取,然后写入到新图片,新的图片就是解密之后的文件。

package io;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class Test1 {

	public static void main(String[] args) throws IOException {
		
		FileInputStream fis = new FileInputStream("123.png");
		FileOutputStream fos = new FileOutputStream("321.png");
		
		int b;
		
		while( (b = fis.read()) != -1) {
			fos.write(b ^ 123);
		}
        
		fis.close();
		fos.close();
	}

}

图片加密的简单实现就是这样,上面代码里面的异或123,这个123就是秘钥。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/151988.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号