添加到JPG的随机数据会使其不可用吗?
因此,为了简化我的生活,我希望能够在我的程序正在处理的某些jpg图像的末尾添加1到7个其他字符*。这些是伪填充(填充等,可能全为0x00),只是为了使文件大小为8字节的倍数以进行块加密。
在尝试了一些程序之后,看起来它们可以与添加字符一起使用,这些添加字符出现在指定图像末尾的FF D9之后,因此文件格式定义得足够好,以至于"损坏" -在末尾添加无所谓。
我总是可以在以后需要时对文件进行后期处理,但我的喜好是做最简单的事情就是让它们保留(我正在解密其他文件类型,他们不介意,所以有一种特殊情况很烦人) 。
几年前,我想到了所有有关隐写术的知识,有人在这里提供了一些建议...
(按8个字节的块进行加密处理,我不想保存预加密的文件大小,因此将0x00添加到输入数据,并在解码后保留在那里)
解决方案
回答
不可以,我们可以将位添加到jpg文件的末尾,而不会使其无法使用。 jpg文件的标题说明了如何读取它,因此读取该文件的程序将在jpg数据的末尾停止。
实际上,人们通过将zip数据添加到jpg数据的末尾,将zip文件隐藏在jpg文件中。由于这些格式的结构方式,结果文件在两种格式下均有效。
回答
我们可以..但是结果可能无法预测。
即使格式中有足够的信息告诉客户端忽略多余的数据,程序员也不可能测试这种情况。
偏执的程序可能会查看大小,注意差异并决定它不会处理文件,因为显然它不能完全理解它。当从Web读取数据时,如果文件中的随机字节可能被视为安全风险,则这种情况尤其可能发生。
回答
我们可以将数据嵌入JPEG(或者EXIF或者IPTC字段)内的XMP标签中。
XMP是XML,因此我们在其中拥有自定义内容时具有一定的灵活性。
这可能不是最简单的事情,但是将数据放在此处将保持JPEG的完整性,并且不需要"后处理"。
然后,数据将显示在其他成像软件(例如PhotoShop)中,这可能并不理想。
回答
如其他人所述,我们无法控制程序如何处理图像文件,因此某些程序可能会找到有效的图像,而其他程序则可能没有。
但是,这里有一个更大的问题。从问题来看,我推断我们正在练习"默默无闻的安全性"。人们普遍认为这是非常糟糕的做法。使用Google查找有关该主题的大量文章。