24

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

用一些程序尝试了这一点后,似乎它们对附加字符很好,这些字符出现在指定图像结尾的 FF D9之后- 所以看起来文件格式定义得很好,以至于“损坏”我我在最后添加应该没关系。

如果需要,我总是可以稍后处理文件,但我的偏好是尽可能做最简单的事情 - 让它们保留(我正在解密其他文件类型,他们不会介意,所以有一个特殊情况很烦人)。

我认为,多年前关于隐写术hullaballo 的讨论,有人在这里有一些意见......

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

4

4 回答 4

23

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

事实上,人们通过将 zip 数据附加到 jpg 数据的末尾来隐藏 jpg 文件中的 zip 文件。由于这些格式的结构方式,生成的文件在任何一种格式下都有效。

于 2008-09-08T23:43:45.627 回答
7

你可以..但结果可能是不可预测的。

尽管格式中有足够的信息告诉客户端忽略额外的数据,但程序员测试的情况可能不是这样。

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

于 2008-09-08T23:53:17.007 回答
3

您可以将数据嵌入 JPEG(或 EXIF 或 IPTC 字段)内的 XMP 标记中。XMP 是 XML,因此您可以灵活地处理自己的自定义内容。

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

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

于 2008-09-09T00:59:10.593 回答
0

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

However, there is a bigger issue here. Judging by your question, I'm deducing you're practicing "security through obscurity." It's widely considered a very bad practice. Use Google to find a plethora of articles about the topic.

于 2008-09-09T03:44:53.050 回答