1

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

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

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

4

1 回答 1

1

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

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

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

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

于 2012-05-29T12:46:16.703 回答