在PHP中加密PNG图像内容

时间:2012-05-20 08:49:46

标签: php encryption png

我想在PHP中加密PNG文件的内容(而不是标题)。

加密(RSA)后,IDAT块的大小(包含有关像素的信息)会发生变化。所以我想到手动改变那些二进制数据(块的长度,整块和校验和)。宽度,高度,颜色深度等特定信息将保持不变(未加密)。

只是想知道是否有一个为我创建整个标题的函数,并允许插入二进制数据作为内容(计算校验和以便正确显示图像)或者我必须做我自己呢?

1 个答案:

答案 0 :(得分:1)

最近我在C ++中做了类似的事情。我没有改变 IDAT ,而是使用压缩和加密的图像添加了自定义块(例如。 xRSA )(无论如何加密都是特定于应用程序的)。

我最初能够使用第三方库在 PNG 中保存图像(灰色背景和文本通知此图像已加密)。然后我用自定义块附加了这个文件(记住 IEND 块)。

在PHP中按照这种方式,您可以使用imagecreatetruecolor()(通常为GD)生成背景(可能不是完全灰色但有些噪音看起来更酷),然后在自定义块中添加原始加密图像。

对不起我的英语,我希望我会帮忙。