如何隐藏jpg或gif照片中的信息?
-
06-07-2019 - |
题
如何在不破坏图像的情况下在jpg或gif等照片文件中写入一些信息?当然没有在照片上显示,因为整个想法是在任何人都未检测到的照片文件中发送信息(在某种程度上提供安全/隐私)!
其他提示
您可以将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