隐写术工具能把文件或信息藏进一张看起来普通的图片、音频片段或视频里。知名的几个都很老、免费,而且为不同的用途而做:steghide 用命令行处理 JPEG 和 WAV,OpenStego 处理 PNG 图片和水印,OutGuess 用于 JPEG 研究,OpenPuff 在 Windows 上做多文件隐藏,此外还有一长串在线编码器。本指南按“它们藏在什么里、最后更新是什么时候、什么能攻破它、各适合谁”来比较它们,并说明 HideFile 处于什么位置、不处于什么位置。

在 Bing 上搜“steganography tool”,答案是一排总是那几个名字的轮播,后面跟着一段推荐基于浏览器的 LSB 编码器的 AI 摘要。两者都没有告诉你的是:最著名的那个工具自 2003 年以来就没有发布过新版本,而破解工具可以在两秒内对它尝试一千四百万个密码。

Bing 对“steganography tool”的结果:OpenPuff、OutGuess、HiddenWave、StegHide、OpenStego 和 HStego 的轮播,然后是一段 AI 概览,列出 StegoToolkit、SteganoCrypt 和 StegOnline 等在线 LSB 工具。
“steganography tool”,Bing,2026 年 10 月 14 日。轮播里列出了工具名称;其中没有任何东西说明它们有多老、什么能攻破它们。

隐写术工具一览

| 工具 | 藏在什么里 | 最后一次发布 | 界面 | 什么能攻破它 | 适合谁 | | --- | --- | --- | --- | --- | --- | | steghide | JPEG、BMP、WAV、AU | 0.5.1,2003 年 10 月 | 命令行 | stegseek 能破解弱密码短语,并能在没有密码的情况下检测出它的数据 | CTF 题目、课程作业 | | OutGuess | JPEG 系数 | 0.4,2021 年 9 月(复活项目) | 命令行 | 2002 年发表的块状度攻击 | 学习 JPEG 隐写术的原理 | | OpenPuff | 一连串图片、音频、视频、PDF | 4.01,2018 年 | Windows 图形界面 | 复杂性;大文件需要很多载体 | 想要一层诱饵的爱好者 | | OpenStego | 图片,保存为 PNG | 0.8.6,2023 年 1 月 | Java 图形界面和命令行 | zsteg 能识别它的 LSB 数据;密码哈希较弱 | 给自己的图片加水印 | | 在线 LSB 工具 | 通常是 PNG 像素 | 不一 | 网页 | 简单的 LSB 很容易被检测;有些会上传你的图片 | 谜题和演示 | | HideFile | PNG、JPEG、MP4、PDF 中的加密记录 | 当前版本 | 浏览器 | 专门的工具能看出被加了数据 | 共用设备上的私密文件 |

六种工具的对比卡片:steghide、OutGuess、OpenPuff、OpenStego、在线 LSB 工具和 HideFile,每张列出它藏在什么里、最后一次发布、弱点以及适合谁。
这里的每个工具都有已知的弱点。按用途选,然后围绕弱点做规划。

steghide 是经典,而它的密码短语就是全部的防线

steghide 是大多数 CTF 题解和 YouTube 教程默认使用的工具,也是有经验的 Reddit 评论者会推荐的:“don't reinvent stego, just use this”(别重新发明隐写术,用这个就行),有人这样说。它能把任何文件藏进 JPEG、BMP、WAV 或 AU 载体里。它的项目页面仍写着“The current version is 0.5.1”(当前版本是 0.5.1),发布于 2003 年 10 月 15 日。Linux 发行版仍在打包它,所以安装很容易,但代码本身已经二十多年没有上游发布了。

它的设计比它的年纪所显示的要好。steghide 会压缩并加密载荷(默认使用 Rijndael,即 AES 密码),用密码短语在图像或音频数据中挑选伪随机的位置,并且是交换数值对而不是覆盖它们,所以整体的颜色或采样计数保持不变。项目把这描述为能抵抗“first-order statistical tests”(一阶统计检验)。对你自己的文件做基本使用,就像这样:

steghide embed -cf photo.jpg -ef note.txt
steghide extract -sf photo.jpg

弱点是密码短语。stegseek 是专门破解 steghide 的工具,它的 README 说它能“run through the entirety of rockyou.txt in under 2 seconds”(在两秒内跑完整个 rockyou.txt),rockyou 是一份泄露的、约一千四百万个真实密码的列表。它还能在没有任何密码的情况下提取 steghide 的元数据,这就告诉分析者这个文件含有 steghide 数据。所以一个字典里的词毫无保护作用。如果你使用 steghide,请用长的随机密码短语,并假定数据的存在可以被确认。

OutGuess 开创了考虑统计特征的 JPEG 隐藏,并在 2002 年被攻破

OutGuess 由 Niels Provos 在 1999 年编写,直接作用于 JPEG 的压缩系数。嵌入之后,它会调整其他系数,使图像整体的系数直方图与原图一致,这是为了对付那种抓住早期 JPEG 工具的卡方攻击而设计的。2002 年,Fridrich、Goljan 和 Hogea 发表了一种基于 JPEG 块边缘“块状度”的攻击,检测出了 OutGuess,还能估算隐藏信息的长度。

原来的项目沉寂了很多年。一个复活小组 Resurrecting Open Source Projects 在 2021 年 9 月发布了 0.4 版,这也是当前 Linux 软件包所带的版本。按 Wikipedia 的说法,它的载荷很脆弱,挺不过 JPEG 重新编码。最好把 OutGuess 当作一个文档齐全的教学示例,看 JPEG 隐写术和隐写分析是怎样互相超越的。

OpenPuff 能跨多个载体隐藏,还带诱饵选项

OpenPuff 是 Cosimo Oliboni 做的、适用于 Windows 的便携程序(网站也提供 Linux 版本),它的最后一个版本 4.01 来自 2018 年。它是这份清单里最有野心的工具。它把一个载荷分散到一连串载体里:图片(BMP、JPG、PCX、PNG、TGA)、音频(AIFF、MP3、WAV 等)、视频(3GP、MP4、MPG、VOB)以及 Flash 或 PDF 文件,最大 256 MB,前提是“if you have enough carriers at disposal”(你手头有足够多的载体)。它叠加了多种密码,并支持可否认隐写术:“Top secret data can be protected using less secret data as a decoy.”(绝密数据可以用不那么机密的数据做诱饵来保护。)

代价是复杂。你要管理密码、载体顺序和每个载体的设置,丢了一个载体,整条链就断了。关于它的许可证,各方说法不一(Wikipedia 称它是闭源免费软件,帮助文件里提到 LGPL),所以如果你需要别人来审计,请在依赖它之前先核实。

OpenStego 是最友好的桌面选项,最适合做水印

OpenStego 是一个免费的、GPL-2.0 的 Java 应用,在 Windows、macOS 和 Linux 上都有图形界面。它在 GitHub 上最新的发布是 2023 年 1 月的 0.8.6。它做两件事:用随机化的 LSB 方法把数据藏进图片,以及给图片加隐形签名的水印,这样你以后就能证明某个副本来自你。

用于隐藏时,输出保存为 PNG,这是无损格式,所以载荷能一直存活,直到有人把图片转成 JPEG。它的检测研究得很透彻:zsteg 是常用的 PNG 和 BMP 分析工具,它把 OpenStego 列在能识别的格式之中。OpenStego 提供基于密码的 AES 加密,但它的源代码派生密钥时用的是固定盐值,且只有很少的迭代次数,这让弱密码很容易被猜出。用它给你自己发布的图片加水印,或者用于“被发现也无所谓”的 LSB 隐藏。

在线隐写术工具适合谜题,不适合私密文件

上面 Bing 的摘要指向了基于浏览器的工具,如 StegoToolkit、SteganoCrypt 和 StegOnline,而“steganography tools”排在最前面的自然结果是一个在线编码器。大多数做的是对 PNG 的简单 LSB 嵌入,这恰恰是统计检测器专门调好要对付的。更大的问题是你的图片去了哪里。有些页面在你的浏览器里处理图片;另一些则把它上传到服务器去编码。页面很少讲清楚是哪一种,所以在往里面放任何私密的东西之前,请先打开浏览器的网络工具,或阅读网站的文档。

检测工具是这片图景的另一半

构建隐藏工具的那些社区,也在构建查找工具。stegseek 针对 steghide。zsteg 检查 PNG 和 BMP 文件里的 LSB 数据和已知工具的特征。Stegdetect,也就是 2001 年 eBay 研究中用的 JPEG 检测器,已不再开发。在 r/computerforensics 上,有位用户想找一个现代的替代品,反映说,包括 StegExpose 在内的一组检测器,在一张他用 steghide 做的图片里什么也没发现:“None of these tool found anything.”(这些工具一个都没发现。)干净的结果几乎证明不了什么,被标记也证明不了多少,隐藏的照片能被发现吗用数字说明了这一点。

HideFile 是“隐蔽加加密”,不是经典隐写术

HideFile 是一个网站,在任何现代浏览器里使用,把私密照片、视频、PDF 和文档放进一个普通的封面文件:你选的一张照片、视频或 PDF。封面在任何地方都是一个正常文件地打开。在 hidefile.app 输入密码打开,它就把里面的文件显示成一个私密图库。

它严格说来不是隐写术,也不假装是。HideFile 不改动任何一个像素,也不试图让自己在统计上看起来正常。它在浏览器里加密你的文件(XChaCha20-Poly1305,密钥由你的密码通过 Argon2id 保护),并把它们存成文件格式允许存放额外数据的记录,所以文件保持有效。专门的工具能看出被加了数据;没有密码读不出内容。文件不会上传到 HideFile 的服务器。

它提供而经典工具不提供的是实用性:整个文件夹、大视频和 PDF、一个可浏览的图库、不需要安装任何东西,以及一个你可以像其他任何文件一样复制到新手机或备份的封面。它不提供的是对分析者的隐形。隐写术是什么?把数据藏进图片的原理讲了各种方法之间的区别。

选择指南:做 CTF 或上课,用 steghide 或 OutGuess;给你发布的图片加水印,用 OpenStego;让私密文件避开使用你设备的人,用 HideFile 封面文件;对训练有素的分析者隐藏一条信息,这里没有任何工具是安全的,少带数据。
公开发布的工具,恰恰是分析者会专门测试的对象。对专业人员来说,它们没有一个是隐蔽信道。

HideFile 能帮上什么

如果你比较隐写术工具,是因为想让手机或笔记本电脑里的私密照片或文件不再显眼,那么经典工具很不合适。steghide 和 OutGuess 只能放小载荷,还需要终端。OpenStego 需要桌面和 PNG。在线编码器可能会上传你的图片。照片保险箱 App,也就是另一个常见的答案,会用它的图标宣告自己,照片保险箱 App 安全吗讲了这一点。

HideFile 就是为这种日常情形而做的。选一个封面,添加文件,设置密码,然后把封面保存在你存放其他照片或文档的地方。任何翻过去的人,看到的都是一张普通图片。请把局限看清楚:HideFile 能挡住随手窥探,挡不住取证工具;密码无法找回,所以忘了密码,文件就没了;而会重新编码照片的 App 可能会把隐藏的部分去掉,所以请把封面当作文件来发送和备份。对于训练有素的检查人员、边境检查或法律压力,它不合适,这张表里的其他所有工具也都不合适。对于人们不用任何特殊软件就能用的技巧,见怎么把文件藏在眼皮底下。

资料来源