java - 将加密图像(字节数组)打印到新图像中
问题描述
我做错了什么我希望图像的加密字节创建一个新图像,但它抛出异常 IllegalArgumentException:
RC6Algorithm rc6 = new RC6Algorithm();
byte[] enc = rc6.encrypt(imageByte, key.getBytes());
ByteArrayInputStream in = new ByteArrayInputStream(enc);
BufferedImage newImage = ImageIO.read(in);
ImageIO.write(newImage, "jpg", new File(
"d:/s.jpg"));
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException:
image == null!
解决方案
令人惊讶的是,图像文件的加密字节不能被解码为图像文件。
您可以尝试加密图像未压缩像素的字节,然后让这些字节代表另一个图像的像素,并根据需要保存此图像。但是,如果您希望能够将生成的图像解密回原始的未加密图像,则需要以无损格式(例如 PNG)写入加密图像。JPEG 不行。
推荐阅读
- ssis - 将 SSIS 连接到 Heroku PostgreSQL 数据库
- python-camelot - 如何使用 tabula_py 或 camelot 读取分布在多个页面上的表格
- django - 无法在迁移中创建对象
- apache-spark - 停止特定的火花动作
- coq - 在 Coq 中指定导出文件的路径?
- python - 无法上传使用 curl 在 selenium 中超过一定大小下载的文件
- terraform-provider-azure - 在 Terraform 中如何从自定义 VHD 创建 Azure 虚拟机
- cumulocity - 通过 Cumulocity 中的 REST API 将全局角色和应用程序分配给用户
- python - Adding a new node using jsonpath_ng
- java - Java Spring Boot 安全登录配置和页面控制器