如何在显示图像的同时加密图像?

时间:2014-02-11 09:38:12

标签: php image encryption

我正在研究PHP中的图像加密。如何在仍然能够查看图像的同时加密图像(我期待完全不同的颜色或失真,具体取决于所使用的加密方法)。

我的方法现在是加密图像文件的整个二进制数据,但我认为我的问题是图像文件的标题丢失了。

如何在不丢失标题和其他内容的情况下更改图像的正文(数据)?

非常感谢!

1 个答案:

答案 0 :(得分:0)

  

在仍然能够查看图像的同时如何加密图像(我期望完全不同的颜色或失真,具体取决于所使用的加密方法)。

听起来您想经历菲利波·瓦尔索达(Filippo Valsorda)曾经制作的ECB Penguin pop art仪式:

  

我愿意接受

     

首先需要的是一种图像格式,其中像素按纯字节顺序表示,没有任何压缩,并且可能带有简单的标头。最终的理想选择是PPM binary format,它是Netpbm规范的一部分。 (基本上,它只是一个ASCII标头,然后是一个3字节的RGB像素表示序列。)

     

这里是过程:

# First convert the Tux to PPM with Gimp
# Then take the header apart
head -n 4 Tux.ppm > header.txt
tail -n +5 Tux.ppm > body.bin
# Then encrypt with ECB (experiment with some different keys)
openssl enc -aes-128-ecb -nosalt -pass pass:"ANNA" -in body.bin -out body.ecb.bin
# And finally put the result together and convert to some better format with Gimp
cat header.txt body.ecb.bin > Tux.ecb.ppm
     

结果!点击获取原图。就像“加密安全程序”一样,它可以带来很好的书呆子办公室装饰!

当然,如果您希望能够在不加密的情况下显示未更改的图像,那根本不可能。