如何在不破坏图像的情况下在jpg或gif等照片文件中写入一些信息?当然没有在照片上显示,因为整个想法是在任何人都未检测到的照片文件中发送信息(在某种程度上提供安全/隐私)!

有帮助吗?

解决方案

您可以在图像元数据中存储一些信息。事实上,这就是人类数码相机如何“标记”他们制作的照片(相机型号,日期和时间,GPS坐标等)。

此数据格式称为 EXIF (可交换图像文件格式)。有很多例子如何在编程语言中使用它。 这是 Java中的示例。

如果你想阻止用户阅读这些数据,你可以用某种方式加密它们,但是它们总能将它从你的图片中删除(例如在Photoshop中打开并使用另存为)。

其他提示

您可以将gif和zip(要隐藏的信息)连接到一个文件中。从文件的开头读取Gif,同时从文件的末尾读取拉链。

在linux中创建这样的文件:

$ cat file1.gif >> outfile.gif
$ cat file2.zip >> outfile.gif

生成的文件应该与file1.gif和file2.zip一起大小,并且应该可以由任何gif查看器和zip文件处理程序打开。

我敢肯定有很多方法。这是一个:

在一张照片中,肉眼看不到颜色的微小变化,或者即使被注意到,也很容易被误认为是图片质量的缺陷。

举一个简单的例子,假设您有一个灰度GIF图像,其中调色板按照从白色到黑色的顺序排列,中间有一系列平滑的灰色。我不确定您对图形文件格式了解多少,但在GIF中,每个像素有一个字节,每个可能的字节值映射到某种特定颜色。所以在这种情况下,我们可以说托盘#0 = RGB(0,0,0),托盘#1 = RGB(1,1,1),...调色板#255 = RGB(255,255,255)。

然后你把一个普通的,真实的照片。将您的秘密消息分解为单个位。将每个托盘索引号的最后一位设置为消息的连续位。

例如,假设原始照片的前八个像素是01 00 C9 FF FF C8 42 43.您的消息以字母“C”开头,ascii代码0110 0111.因此您更改了最后一位第一个字节为0,将字节从01更改为00.将第二个字节的最后一位更改为1,将字节从00更改为01.将第三个字节的最后一位更改为1.已经为1 ,这没什么区别。等等。最终编码的8个字节为00 01 C9 FE FF C9 43 43。

颜色的变化会如此微妙,以至于任何看到图片的人都不会注意到。即使他们确实注意到了,除非他们有理由怀疑,否则他们很可能会得出这样的结论:质量并不完美。

当然没有什么说你必须为每个字节使用1比特的秘密消息。根据您认为可以逃脱的质量下降程度,您可以使用每字节2位,或者每隔一个字节更改1位等。

当然,相同的技术可用于彩色照片:更改每个RGB组件的最后一位,以编码每像素3位等。

嘿,这种方法被称为隐写术。有了它,我们不仅可以隐藏图像中的信息,还可以隐藏音频,视频和其他格式的信息。

这是一个名为 steganotool 的opensouce隐写术软件。这个项目是一个开源的隐写术工具,可用于隐藏和从位图图像中提取文本。

关于隐写媒体

图像中的隐写术

这种隐写术对发现非常有效,可以用于各种目的。这些目的可以包括认证,隐藏消息和加密密钥的传输。这类隐写术最有效的方法通常是最低有效位方法。这只是意味着隐藏的消息将改变图片中字节的最后一位。通过改变最后一位,载波图像内该像素的颜色将相对没有变化。这可以防止轻松检测到消息。隐藏信息的最佳类型的图像文件是24位位图。这是因为文件很大,质量很高。

音频中的隐写术

在音频文件中,隐藏信息的最突出方法是低位编码方法。低位编码方法有点类似于图像文件中使用的最低有效位方法。秘密信息附加到文件的末尾。低位编码的一个问题是人耳可以注意到它。如果有人试图隐藏信息,这可能会有风险,因为它很容易被发现。扩频方法是另一种用于隐藏音频文件中信息的方法。这种方法的作用是将随机噪声添加到音频广播中。该方法使得信息能够在频谱上扩展并且在随机噪声下保持隐藏。在音频隐写术中看到的最后一种方法是回声隐藏数据。该方法试图通过使用声音文件中自然发生的回声来隐藏信息。然后,可以向这些回声添加额外的声音,额外的声音是隐藏的消息。这是一种隐藏信息的充分方法,特别是因为它甚至可以改善原始音频文件的声音。

视频中的隐写术

视频中的隐写术基本上隐藏了每个视频帧中的信息。只有少量信息隐藏在视频内部,它通常根本不可察觉,但隐藏的信息越多,信息就越明显。这种方法也很有效,但必须正确完成或者显示更多信息而不是隐藏。

文件中的隐写术

这基本上是在文档行的末尾添加空格和制表符。这类 隐写术非常有效,因为在大多数文本/文档编辑器中,人眼看不到使用空格和制表符。

您也可以参考此开源项目

文章非常实用。

如果要在jpeg文件中隐藏数据(文本,其他图像等),只需将其附加到文件末尾即可。查看图像时,您只会看到原始图像,而您添加的数据将被忽略。

虽然不是隐藏数据的超级方式,但这是隐藏另一个jpeg的好方法,就好像有人在记事本或十六进制编辑器中打开文件一样,他们可能不会注意到有两个jpeg而不是一个因为无论如何第二张图像的结尾看起来都像第一张。

在Windows中,您可以使用简单命令隐藏图像中的存档:copy / b cat.jpg + Documents.rar cat_new.jpg。 然后使用例如winrar从存档中提取数据ftom图像 但更好的方法是使用隐写术。
适用于Linux和Windows的简单程序: http://linux01.gwdg.de/~alatham/ stego.html
使用这个程序你将使用密码短语,没有它甚至没有人知道,你隐藏了图片中的一些数据))

gif文件中的压缩数据是可变大小的块。每个块以一个长度字节开始。通常这些块是255个字节的数据(长度字节表示255),除了最后两个块(最后一个是0)

但你可以用大小来解释消息的块来重新编码gif 例如,使用ASCII文本字符或字节 1 2 3 4 代表 00 <代码> 01 10 11 二进制数据,

gif上的字节频率分析将显示少于预期的255个字节。 并且尺寸将大于原始尺寸,但图像看起来完全相同。

您不需要任何类型的高级工具来隐藏图像中的文件&#8211;&#8211;你只需要知道一些基本的DOS命令&#8230;只需点击下面的链接,看看如何做到这一点(它是图像隐写的简短描述):

https://www.youtube.com/watch?v= ox9ArqXtaWw&安培;列表= PLqEKOAKK4IbSTfDJZE_lH-DiOjOzZUczx&安培;索引= 2

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top