Linux如何隐藏文件到图片中
我们可以把一个文件隐藏在图片文件中,打开时,显示的是图片内容。
解压后可以提取隐藏的文件。
隐藏Linux中图像内的文件
我们可以以不同的方法隐藏图像内的文件。
其中我有5种方法。
方法1
此方法不需要任何其他软件。
只是一个基本的Linux命令行知识就足够了。
我有一个名为image.jpg的图像文件和一个名为sk的目录。
在此目录中,有一个名为secret.txt的文件,其中包含一些机密信息。
这是我们将要嵌入Image.jpg文件中的文件。
我们可以放置要隐藏在此目录中的任意数量的文件。
然后,我将压缩目录sk并将其另存为secret.zip以使其作为单个文件。
最后,我将使用cat命令连接zip文件(secret.zip)和图像文件(image.jpg)并将其另存为theitroad.jpg。
更清楚地把东西放进去
- image.jpg - 一个随机图像文件。
- SK - 包含所有秘密文件的目录。
- secret.zip - SK目录的存档。
- theitroad.jpg - 包含secret.zip和image.jpg的输出镜像文件。
步骤1:将图像文件和文件夹中的目录放在文件夹中。
我把它们放在文件文件夹中。
第2步:移动要隐藏文件夹"SK"内部的所有文件。
然后,压缩此文件夹并将其另存为"secret.zip"。
要压缩文件夹,请右键单击它,然后选择压缩。
第3步:接下来打开终端。
转到我们存储ZIP和图像文件的位置(在我们的情况下是文档)。
最后,将secret.zip和test.jpg文件连接,并使用cat命令将其作为onitad.jpg保存为onitad.jpg。
$cd Documents
$cat image.jpg secret.zip > theitroad.jpg
我们现在隐藏了theitroad.jpg中的机密文件。
这是重要的文件。
只需删除除theitroad.jpg之外的所有其他文件。
theitroad.jpg将看起来像普通图像文件,任何人都可以使用任何图像查看器应用程序查看它。
但是,他们可能不知道这个文件有一些机密文件。
要查看图像文件中的隐藏文件theitroad.jpg,请使用以下命令解压缩:
$unzip theitroad.jpg
或者,
$unzip -t theitroad.jpg
示例输出:
Archive: theitroad.jpg warning [theitroad.jpg]: 712139 extra bytes at beginning or within zipfile (attempting to process anyway) creating: sk/ inflating: sk/secret.txt
正如我们在上面的输出中看到,已提取包含秘密文件的目录SK。
现在,返回文件夹并检查内容。
我们将看到那里的所有文件。
此方法的一个缺点是我们无法将任何密码添加到图像文件中。
不用担心!在以下方法中,我们可以将密码添加到输出文件。
方法2 - 使用雄蕊
Steghide是一个命令行实用程序,有助于我们隐藏图像或者音频文件内的机密数据。
它支持JPEG,BMP,WAV和AU文件。
Steghide可以在许多Linux发行版的默认存储库中提供。
在Arch Linux及其变体上,我们可以使用命令安装它:
$sudo pacman -S steghide
在Debian,Ubuntu:
$sudo apt install steghide
现在,我们可以在图像或者音频中隐藏机密文件。
我假设我们已将要加密的机密文件和同一文件夹中的图像或者音频文件放入。
如果将它们放在不同的文件夹中,则需要在以下命令中提供完整路径。
$steghide embed -ef secret.txt -cf theitroad.jpg
我们将被要求输入密码。
Enter passphrase: Re-Enter passphrase: embedding "secret.txt" in "theitroad.jpg"... done
在上面的示例中,我已将名为secret.txt的文本文件嵌入到名为theitroad.jpg的图像文件中。
我们现在可以删除原始秘密。
因为,我们刚嵌入在图像文件中。
如果要嵌入多个文件,请将它们放在一个文件夹中并拉开它,然后将其隐藏如上所述。
要从图像中提取秘密文件,只需运行:
$steghide extract -sf theitroad.jpg
输入密码才能提取:
Enter passphrase: wrote extracted data to "secret.txt".
有关更多详细信息,请参阅Man页面,
$man steghide
方法3 - 使用OutGuess
outgeess是另一个命令行术语,可以隐藏图像内的机密文件。
目前,它支持PPM,PNM和JPEG图像格式。
要在Debian,Ubuntu和其他基于Deb的系统上安装它,请运行:
$sudo apt install outguess
一旦安装,转到秘密文件和图像的位置,并使用以下命令将秘密文件嵌入到图像中:
$outguess -d secret.txt theitroad.jpg output.jpg
示例输出:
Reading theitroad.jpg.... JPEG compression quality set to 75 Extracting usable bits: 158203 bits Correctable message size: 77641 bits, 49.08% Encoded 'secret.txt': 160 bits, 20 bytes Finding best embedding... 0: 88(45.8%)[55.0%], bias -17(-0.19), saved: -1, total: 0.06% 1: 90(46.9%)[56.2%], bias -27(-0.30), saved: -1, total: 0.06% 12: 85(44.3%)[53.1%], bias -36(-0.42), saved: 0, total: 0.05% 26: 91(47.4%)[56.9%], bias -45(-0.49), saved: -1, total: 0.06% 174: 87(45.8%)[54.4%], bias -48(-0.55), saved: 0, total: 0.05% 174, 39: Embedding data: 160 in 158203 Bits embedded: 190, changed: 87(45.8%)[54.4%], bias: -48, tot: 158844, skip: 158654 Foiling statistics: corrections: 77, failed: 6, offset: 864.696970 +- 310.577032 Total bits changed: 39 (change 87 + bias -48) Storing bitmap into data... Writing output.jpg....
其中输出.jpg文件是具有我们机密数据文件的文件。
保持安全并删除其他所有内容。
我们还可以将密码添加到下面的输出文件中。
$outguess -k "my secret key" -d secret.txt theitroad.jpg output.jpg
用自己的密码替换"我的秘密密钥"。
要提取文件,只需执行以下操作:
$outguess -r output.jpg secret.txt
示例输出:
Reading output.jpg.... Extracting usable bits: 158203 bits Steg retrieve: seed: 174, len: 20
如果我们使用过密码,请使用此命令(而不是:
$outguess -k "my secret key" -r output.jpg secret.txt
有关更多详细信息,请参阅Man页面。
$man outguess
我们已经看到三个命令行实用程序隐藏图像内或者音频内的文件。
如果我们不喜欢命令行方式,这里有两个图形隐写工具。
方法4 - 使用stegosuite
stegosuite是一个图形的书签工具,用于隐藏图像内的文件。
它是一个用java编写的一个免费和开源的隐士工具。
它使用AES加密方法嵌入数据。
它支持BMP,GIF和JPG图像格式。
要在Debian,Ubuntu和其他基于Deb的系统上安装它,请运行:
$sudo apt install stegosuite
安装后,从短划线或者菜单启动stegosuite。
单击文件 - >从菜单列打开,然后选择要用于隐藏文件的图像。
然后在第一列中输入消息。
右键单击第二列,然后选择"添加文件"。
最后在第三列上输入密码。
最后,单击STEGOUITE接口底部的"嵌入"按钮。
现在,将在同一文件夹本身中使用名称"filename_embed"创建一个新的图像文件,我们可以从中选择图像。
例如,如果从文档文件夹中选择了名为"image.jpg"的图像,则将在文档文件夹本身中使用名称"image_embed.jpg"创建新的镜像文件。
要从图像中提取秘密文件,请在STEGOUITE接口中再次打开它,输入密码并单击"提取"按钮。
所有文件都将在同一文件夹本身中提取。