Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中加密PNG图像内容_Php_Encryption_Png - Fatal编程技术网

在PHP中加密PNG图像内容

在PHP中加密PNG图像内容,php,encryption,png,Php,Encryption,Png,我想用PHP加密PNG文件的内容(不是标题) 加密(RSA)后,IDAT块(包含像素信息)的大小发生变化。所以我想手动更改这些二进制数据(块的长度、整个块和校验和)。宽度、高度、颜色深度等特定信息将保持不变(未加密) >强>只是想知道是否有一个函数为我创建整个标题,并能够插入二进制数据作为内容< /强>(计数校验和,因此图像被正确显示)还是我必须自己做?< /P> < P>最近我在C++中做了类似的事情。我没有改变IDAT,而是添加了带有压缩和加密图像的自定义块(名为xRSA)(这样的加密是特

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

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


>强>只是想知道是否有一个函数为我创建整个标题,并能够插入二进制数据作为内容< /强>(计数校验和,因此图像被正确显示)还是我必须自己做?< /P> < P>最近我在C++中做了类似的事情。我没有改变IDAT,而是添加了带有压缩和加密图像的自定义块(名为xRSA)(这样的加密是特定于应用程序的)

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

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


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

最近我在C++中做了一些类似的事情。我没有改变IDAT,而是添加了带有压缩和加密图像的自定义块(名为xRSA)(这样的加密是特定于应用程序的)

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

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


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

为什么不加密整个文件呢?保留部分未加密有什么好处?我猜您希望标题保持有效?我倾向于这样做:将图像解压缩为(r,g,b,a)32位整数的数组,对块应用加密算法以创建另一个有效图像,然后将该图像写入PNG。从所有的意图和目的来看,新图像只是一个图像-但它当然看起来像噪声,需要解密才能恢复原始图像。@Spudley:关键是当您使用RSA(或ElGamal)加密图像内容并显示它时,你的眼睛仍然能够检测图像的整体轮廓。为什么不加密整个文件呢?保留部分未加密有什么好处?我猜您希望标题保持有效?我倾向于这样做:将图像解压缩为(r,g,b,a)32位整数的数组,对块应用加密算法以创建另一个有效图像,然后将该图像写入PNG。不管怎么说,新图像只是一幅图像——当然它看起来像噪声,需要解密才能恢复原始图像。@Spudley:关键是当你使用RSA(或ElGamal)加密图像内容并显示它时,你的眼睛仍然能够检测到图像的整体轮廓。