首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在jpeg文件中隐藏文件?

如何在jpeg文件中隐藏文件?
EN

Stack Overflow用户
提问于 2015-04-15 00:07:39
回答 4查看 1.3K关注 0票数 16

我正在读一篇解释How to Hide Files in JPEG Pictures的文章。

我想知道一个文件怎么可能同时包含jpeg数据和rar文件,而不会对图像或压缩文件产生任何明显的失真。

我的猜测是,这与压缩文件或jpeg文件如何以二进制形式表示有关,但我不知道这是如何工作的。

有人能详细说明一下吗?

EN

回答 4

Stack Overflow用户

发布于 2015-04-15 04:02:17

所要做的就是将归档文件添加到JPEG流的末尾。然后,您希望您的JPEG解码器不会读取超过EOI标记的内容,在那里找到数据,然后说出错误。

JPEG图像是以SOI标记开始并以EOI标记结束的字节流。

ZIP和RAR是字节流。ZIP流以50 4B开头。RAR流以52 61 72 21 1A 07开头。

上述链接中描述的方法获取(多个) JPEG流的二进制副本,并将ZIP或RAR流附加到它。

RAR/ZIP解码器扫描流,直到找到RAR或ZIP的签名(忽略JPEG流)。

票数 12
EN

Stack Overflow用户

发布于 2015-04-23 16:09:30

此答案没有解决您给出的链接中的确切情况,但它提供了另一种隐藏数据的方法:

从理论上讲,在JPEG图片中隐藏文件也是可能的,但您需要一个复杂的程序来写入编码的数据,然后再次读取它。

基本上,JPEG照片包含许多信息,如果更改,人眼将不会注意到这些信息。想象一下,你有一张穿蓝色衬衫的人的照片。如果你放大那件衬衫,你会发现它不是均匀的蓝色,而是由许多斑点组成的,其中大部分是蓝色的色调(但也可能是其他颜色)。您可以很容易地将其中一些斑点更改为略微不同的色调,这不会对图片产生明显的可见差异。

一个聪明的程序可以通过微妙地将像素更改为表示数据的图案来在照片中嵌入代码。一个非常简单的例子:如果“色调”(即色调)由0到255之间的数字表示,则偶数色调的像素可以表示"0“比特,奇数色调的像素表示"1”比特。人眼很难察觉到图片中的这种差异。

这是一个古老的想法,本文讨论了以这种方式可以隐藏多少数据:High capacity data hiding in JPEG-compressed images (2004)

票数 3
EN

Stack Overflow用户

发布于 2015-04-25 01:03:55

通常,将一个文件隐藏在另一个文件中是一种称为Steganography的做法。您提供的链接中描述的方法使用+操作符简单地将.rar连接到.jpg的末尾,利用每种文件类型的不同标头。@user3344003很好地解释了为什么这在his/her answer中有效。这不会扭曲图像,因为图像数据保持不变。

在图像中隐藏文件的另一种常见方法是使用每个字节的最低有效位(LSB)。执行此操作的方法是将图像位流中的每8位替换为您希望隐藏的文件的下一位。这是因为图像的颜色可能会轻微失真,而不容易被人眼察觉。在这种方法中,磁盘上的图像大小不会像您的链接中的方法那样增长。这使得隐藏文件的证据更难检测。有关此方法和其他隐写方法的详细信息,请参阅this paper by Bret Dunbar

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29632224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档