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();
}
}
}
}
通过io流对图片进行加密与解密
最新推荐文章于 2024-07-16 16:59:28 发布
该博客展示了如何使用Java实现图片的加密和解密功能。通过读取和写入文件,利用BufferedInputStream和BufferedOutputStream进行操作,并通过异或运算实现简单的加密解密过程。
摘要由CSDN通过智能技术生成