附加到JPG的随机数据是否会使其无法使用?

时间:2008-09-08 23:39:52

标签: jpeg file-format steganography

所以,为了简化我的生活,我希望能够在我的程序处理*的一些jpg图像的末尾附加1到7个附加字符。这些是虚拟填充(填充等,可能全部为0x00),只是为了使文件大小为8字节的倍数进行块加密。

用几个程序试过这个,看起来它们在FF D9 that specifies the end of the image之后出现的附加字符很好 - 所以看起来文件格式定义得足够好'腐败'我'最后添加应该无关紧要。

我可以随时根据需要对文件进行后期处理,但我最喜欢的是做最简单的事情 - 就是让它们保留(我正在解密其他文件类型,他们不介意,所以有一个特殊的案件令人讨厌)。

几年前,我想到了Steganography hullaballo的所有话题,有人在这里有一些意见......

(8字节块的加密处理,我不想保存预先加密的文件大小,所以在输入数据后附加0x00,并在解码后留在那里)

4 个答案:

答案 0 :(得分:20)

不,您可以在jpg文件的末尾添加位,而不会使其无法使用。 jpg文件的标题告诉如何读取它,因此读取它的程序将在jpg数据的末尾停止。

事实上,人们通过将zip数据附加到jpg数据的末尾,将jpg文件中的zip文件隐藏起来。由于这些格式的结构方式,生成的文件无论采用哪种格式都有效。

答案 1 :(得分:7)

您可以..但结果可能无法预测。

即使格式中有足够的信息告诉客户忽略额外的数据,程序员也可能不会这样做。

偏执程序可能会查看大小,注意差异并决定它不会处理您的文件,因为很明显它并不完全理解它。当从文件中读取数据时,文件中的随机字节可能被视为安全风险时,这种情况尤其可能。

答案 2 :(得分:3)

您可以将数据嵌入JPEG(或EXIF或IPTC字段)中的XMP标记中。 XMP是XML,因此您可以在那里拥有相当大的灵活性来自定义内容。

它可能不是最简单的东西,但是将数据放在这里将保持JPEG的完整性,并且不需要“后期处理”。

您的数据将显示在其他成像软件中,例如PhotoShop,这可能并不理想。

答案 3 :(得分:0)

正如其他人所说,您无法控制程序如何处理图像文件,因此某些程序可能会发现其他程序可能无效的图像。

然而,这里有一个更大的问题。从你的问题来看,我推断你正在通过默默无闻来实践“安全”。它被广泛认为是一种非常糟糕的做法。使用Google查找有关该主题的大量文章。