【发布时间】:2012-05-29 20:46:16
【问题描述】:
我想在 PHP 中加密 PNG 文件的内容(不是标题)。
在加密 (RSA) 之后,IDAT 块的大小(包含有关像素的信息)会发生变化。所以我想到了手动更改那些二进制数据(块的长度、整个块和校验和)。宽度、高度、颜色深度等特定信息将保持不变(未加密)。
只是想知道是否有一个函数可以为我创建整个标题,并允许插入二进制数据作为内容(计算校验和以便正确显示图像)或者我必须这样做自己做的吗?
【问题讨论】:
-
为什么不加密整个文件呢?不加密的部分有什么好处?
-
我猜你希望标题保持有效?我倾向于这样做:将图像解压缩为(r,g,b,a)32位整数数组,对块应用加密算法,以便创建另一个有效图像,然后写下图像转换为 PNG。就所有意图和目的而言,新图像只是一张图像 - 但它当然看起来像噪点,需要解密才能恢复原始图像。
-
@Spudley: Steganography
-
重点是,当您使用 RSA(或 ElGamal)加密图像内容并显示时,您的眼睛仍然能够检测到图像的整体轮廓。
标签: php encryption png