java 图片加密

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

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();
		
	}
	
}

效果:

打开图片报错:

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

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();
		
	}
	
}

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要通过Java实现DES加密图片,可以按照以下步骤进行: 1. 引入Java加密库。首先需要在Java代码中引入相应的加密库,比如Java Cryptography Extension (JCE)。 2. 加载图片。使用Java的图像处理库,比如Java AWT或者Java OpenCV,加载需要加密图片。可以使用ImageIO类来读取图片。 3. 将图片转换为字节数组。使用图像处理库将加载的图片转换为字节数组,这样可以方便进行加密操作。 4. 生成密钥。使用Java的密钥生成器类(如javax.crypto.KeyGenerator)生成DES加密需要的密钥。 5. 初始化加密器和解密器。使用javax.crypto.Cipher类初始化加密器和解密器,可以指定加密/解密模式、填充模式和密钥。 6. 加密图片。使用加密器对象,调用其`doFinal()`方法对图片的字节数组进行加密操作,得到加密后的字节数组。 7. 将加密后的字节数组保存为新的图片。使用图像处理库将加密后的字节数组转换为图片格式,然后保存到指定的位置。 8. 解密图片(可选)。如果需要解密图片,可以使用解密器对象,对加密后的字节数组进行解密操作,然后使用图像处理库将解密后的字节数组转换为图片格式。 9. 完成。经过上述步骤,就完成了使用Java实现DES加密图片的过程。 需要注意的是,由于DES已经被认为是不安全的加密算法,推荐使用更为安全的加密算法,比如AES。此外,图片加密后会改变其二进制数据,但无法完全保护其内容安全,如果需要更高级别的图片加密保护,可以考虑使用更复杂的加密算法和安全措施。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值