java 图片加密

java 图片加密首先,了解下异或操作^,对一个数进行两次异或操作得到原数值。publicclassIOTest{ publicstaticvoidmain(String[]args){ inti=3; System.out.println(i^123);//120 System.out.println(i^123^123);//3 }}将一张图片进…

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

首先,了解下异或操作 ^ ,对一个数进行两次异或操作得到原数值。

public class IOTest {

	public static void main(String[] args) {
		
		int i = 3;
		System.out.println(i^123);//120
		System.out.println(i^123^123);//3

	}

}

将一张图片进行拷贝,对其进行加密,其实就是异或操作,

public class Test001 {
	public static void main(String[] args) throws Exception {
		
		FileInputStream in = new FileInputStream("F:\\Picture\\1.jpg");
		FileOutputStream out = new FileOutputStream("F:\\text\\copy.jpg");
		
		BufferedInputStream bin = new BufferedInputStream(in);
		BufferedOutputStream bout = new BufferedOutputStream(out);
		
		int len;
		while((len=bin.read())!=-1){
			bout.write(len^123);
		}
		bout.close();
		bin.close();
		
	}
	
}

效果:
java 图片加密
打开图片报错:
java 图片加密

接下来,对图片进行解密:就是对已经加密的图片,进行拷贝,执行异或操作

public class Test001 {
	public static void main(String[] args) throws Exception {
		
		FileInputStream in = new FileInputStream("F:\\text\\copy.jpg");
		FileOutputStream out = new FileOutputStream("F:\\text\\copy2.jpg");
		
		BufferedInputStream bin = new BufferedInputStream(in);
		BufferedOutputStream bout = new BufferedOutputStream(out);
		
		int len;
		while((len=bin.read())!=-1){
			bout.write(len^123);
		}
		bout.close();
		bin.close();
		
	}
	
}

java 图片加密

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151984.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月21日 上午9:16
下一篇 2022年6月21日 上午9:16


相关推荐

  • opencv videocapture参数_opencv显示图像

    opencv videocapture参数_opencv显示图像importcv2ascvcapture=cv.VideoCapture(0)whileTrue: ret,frame=capture.read() cv.imshow(“Video”,frame) c=cv.waitKey(1) ifc==27: break capture.release() cv.destroyAllWindows()VideoCapture()中参数是0,表示打开笔记本的内置摄像头cap.read()按帧读取视频,re

    2025年7月16日
    6
  • 对于js的原型和原型链的理解

    对于js的原型和原型链的理解一 原型与原型链 JavaScript 是一门基于原型的语言 在软件设计模式中 有一种模式叫做原型模式 JavaScript 正是利用这种模式而被创建出来原型模式是用于创建重复的对象 同时又能保证性能 这种类型的设计模式属于创建型模式 它提供了一种创建对象的最佳方式 这种模式是实现了一个原型接口 该接口用于创建当前对象的克隆 原型模式的目的是用原型实例指定创建对象的种类 并且通过拷贝这些原型创建新

    2026年3月19日
    2
  • SpringCloud服务注册中心双节点集群(Eureka集群)

    SpringCloud服务注册中心双节点集群(Eureka集群)0、前言    最近在进行重构一个新项目,为了后续更好的落地,适应于日新月异的技术更新,进行了各方的技术选型及技术预研,最终选型基于微服务架构体系进行开发重构。项目构建前最重要的一步就是要想清楚,整体的部署架构、高可用性(HA)等等,做好前期的部署架构技术调研,确定最终方案。    在微服务架构体系中,核心技术便是SpringCloud,通过登录官网查看SpringClo…

    2022年6月11日
    33
  • python-根据语音识别让无字幕视频自动生成字幕,附srt字幕文件

    python-根据语音识别让无字幕视频自动生成字幕,附srt字幕文件

    2021年5月17日
    313
  • LDAP简述及统一认证说明

    LDAP简述及统一认证说明LDAP 简述 LDAP 相关概念 1 轻型目录访问协议 LightweightD LDAP 是一种通信协议 LDAP 能够支持 TCP IP 协议就是标准 在这套标准之下 AD ActiveDirect 是微软实现的一套产品 可以把 AD 理解成是个数据库 也有很多人直接把 LDAP 说成是数据库 一个树形结构的数据库 LDAP 也有服务端和客户端 服务端用来存放资源 客户端进行相应的控制和操作 2 LDAP 的存储是树形结构的 数据存储在叶子节点上 因此 LDA

    2026年3月18日
    2
  • python之路 socket、socket server

    python之路 socket、socket server

    2022年3月7日
    53

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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