# 隐藏的照片能被发现吗？隐写分析到底能找出什么

能。里面藏了数据的照片，往往可以被检测出来，但检测通常意味着知道“被加了东西”，而不是读出它是什么。能不能被发现，取决于三件事：用的是什么隐藏方法、谁在看、他们带了什么工具。翻图库的人看到的是一张图片。自动扫描器看到的是统计数字，并会产生很多误报。带着取证工具、训练有素的检查人员，通常能看出一个文件携带的东西超出了它的画面，但没有密码，仍然读不出加密的内容。

本指南说明上面每种“看的人”能看到什么，最著名的实地研究在扫描两百万张图片时发现了什么，以及为什么“扫描干净”和“被标记”一样证明不了什么。

## 检测发生在三个层面

把可能来看的人分开来讲会有帮助，因为每种人看到的东西不同。

<figure><img src="/docs/guides/img/stego/detection-levels.svg" alt="三种“看的人”（随手一瞥的人、自动扫描器、训练有素的检查人员）对四件事的矩阵：画面本身，三者看起来都正常；比画面所需更大的文件，随手看的人只有去检查才会注意到，扫描器可能发现，检查人员能发现；文件结构里的额外数据，随手看的人看不到，扫描器可能标记，检查人员能看到；内容和文件名，没有密码三者都读不出来。" loading="lazy" width="100%"><figcaption>隐藏防住的是第一列。只有加密能防住最后一行。</figcaption></figure>

**随手一瞥的人**，看你的手机或笔记本电脑时，看到的是缩略图。任何种类的隐写术，都能彻底骗过这种人，因为图片看起来一模一样。他们唯一可能抓到的破绽是大小：一张手机照片在文件浏览器里占了几百兆，看起来很奇怪。r/privacy 上一位评论者就用一张“miraculously taking up 12gb of data”（神奇地占了 12GB 数据）的图片说明了这一点。

**自动扫描器**对大量文件运行统计检验或格式检查，并标记不寻常的那些。它从不读取内容，并且要在漏报和误报之间权衡。正如 Hacker News 上一位评论者所说，检测器的阈值必须调好，才能“don't give too many false positives to make them useless. And they're not magic.”（不会产生太多误报而变得没用。而且它们不是魔法。）

**训练有素的检查人员**一次处理一台设备或一个文件，有时间，也有一整套工具。他们通常能看出文件含有图像之外的数据。读取它是另一个问题，而在有强加密和好密码的情况下，这正是他们解决不了的问题。

## 统计型隐写分析，找的是被扰乱的噪声

真正的隐写术改动的是图像数据本身，最常见的是像素值或 JPEG 系数的最低位。这种改动是看不见的，但自然照片在这些位上有一种特有的噪声模式，而看起来完全随机的加密数据会扰乱它。按 Wikipedia 的概括，隐写分析“generally handled with statistical analysis”（通常通过统计分析来处理），理想情况是把可疑文件与“from the same source (for example, the same model of digital camera)”（来自同一来源，例如同一型号数码相机）的未修改文件做比较。

研究历史是一场竞赛。针对简单 LSB 嵌入的统计攻击发表于 2000 年和 2001 年。随后出现了保持简单统计特征的工具，之后又有针对高阶统计的攻击；比如 OutGuess 的 JPEG 方法，就被 2002 年的一次块状度攻击攻破。自 2012 年以来，最先进的是在数千个图像特征上训练的机器学习分类器。从业者描述了两个极端：用一位 Hacker News 评论者的话说，朴素的 LSB 替换“VERY easy to detect”（非常容易检测），而另一位则指出有“whole body of work that focus on statistically undetectable data hiding”（专注于统计上不可检测的数据隐藏的一大批研究）。两者都对。起决定作用的是算法和隐藏数据的量。

有一种情形简单得毫无悬念。如果分析者拿到了原始照片，把两个文件一比，任何改动立刻现形。r/Steganography 上有位 Reddit 用户发布了 100 张图片作为“破解我的方法”的挑战，很快就领教了这一点：最高赞的回复找到了这些图片来自的公开数据集，做了比较，并发现了蓝色通道上的 LSB 改动。

## 文件大小和结构，暴露了大多数实际的隐藏做法

日常使用中的大多数“图片里藏文件”的方法，根本不是统计型的。它们是在图像结束标记之后追加数据，或添加文件格式允许的额外数据块。[隐写术是什么？把数据藏进图片的原理](/zh/guides/how-steganography-works)详细讲解了每种方法。这些做法能放更多数据，并让画面保持像素级完好，但会留下明显的结构性破绽：文件比同样尺寸和质量的图像应有的大，而读取整个文件的程序会发现图像并不需要的内容。

对任何可疑文件的一般取证流程，都从这类朴素的检查开始，而不是从什么冷门的统计开始。r/computerforensics 上的从业者描述了这些做法：先了解该格式的正常文件长什么样，检查文件的开头和结尾，提取可读的文本，列出文件的内部结构，按特征签名雕刻出任何嵌入的文件，并测量熵，因为加密或压缩的数据得分接近随机。只有在那之后，他们才运行针对特定格式的检测器。追加的数据几秒钟就能显现。加密的数据则表现为读不出来的一块噪声。

## 两百万张图片，约 17,000 个标记，零条信息

衡量现实中隐写术的最著名尝试，是 Niels Provos 和 Peter Honeyman 在 2001 年的研究。他们从 eBay 拍卖中下载了两百万张图片，并对全部图片运行了他们的 JPEG 检测器 Stegdetect。它标记了约 17,000 张，大约 0.85%。他们随后对被标记的图片运行了分布式字典攻击，却一无所获：“We have analyzed two million images downloaded from eBay auctions but have not been able to find a single hidden message.”（我们分析了从 eBay 拍卖中下载的两百万张图片，但没能找到哪怕一条隐藏信息。）

<figure><img src="/docs/guides/img/stego/provos-funnel.svg" alt="漏斗：2001 年扫描了 2,000,000 张 eBay 图片，Stegdetect 标记了约 17,000 张，占 0.85%，发现的隐藏信息为零。" loading="lazy" width="100%"><figcaption>Provos 和 Honeyman，2001 年。几乎每个标记都是误报。</figcaption></figure>

这项研究虽然年代久远，仍有两条教训留存。第一，标记很廉价，而且大多是错的，这就是为什么 Wikipedia 的隐写分析文章，把仅凭检测器输出采取行动称为“a very dicey proposition unless a payload has been completely recovered and decrypted”（除非载荷已被完全恢复并解密，否则是非常冒险的）。第二，检测和恢复是不同的步骤；恢复需要密码。这些数字是 2001 年对拍卖照片上 JPEG 工具的一个快照，不是当前的检出率，而且对于追加或插入的数据，也没有可比的近期数字。r/computerforensics 上一位 2012 年的评论者，描述了一个类似的个人项目，“scanned millions of images and discovered about 200”（扫描了数百万张图片，发现了约 200 张）被标记，并暴力破解了其中六张。

## 扫描干净，并不证明文件是干净的

检测器也会漏。在 r/computerforensics 上，有位用户用几个检测器测试一张他用 steghide（它会加密并分散载荷）做的图片，反映道：“None of these tool found anything.”（这些工具一个都没发现。）Stegdetect 本身也不再开发了。没有命中，只能说明那个工具和那种方法的情况，并不能证明什么都没有。

同一个帖子也是检验“究竟有多少人会去看”的一个现实参照。那里的取证从业者把图像隐写术描述为在夺旗赛（CTF）谜题里很常见、在实际案件里很少见：“In a CTF? Lots! Real life? Not as much as you would think.”（在 CTF 里？很多！现实中？没你想的那么多。）这并不是假定没人会看的理由。它是不要把隐私计划建立在“光靠隐藏就能撑住”这个希望上的理由。

## 这对你手机里隐藏的照片意味着什么

综合起来，对日常照片隐藏的老实回答是这样的。对使用或借用你设备的人，一个看起来像普通照片的封面文件是管用的，因为他们看到的是图片，别的什么都看不到。对专门的工具或训练有素的检查人员，应当假定隐藏的数据会被注意到，并依靠加密和强密码来保护内容的私密。对能依法强迫你交出密码的人，隐藏和加密都不是防御，少带数据是唯一安全的建议。

<figure><img src="/docs/guides/img/stego/protects.svg" alt="两栏。HideFile 能防的：翻看你照片或文件的人；没有密码就读取内容和文件名；保险箱 App 图标暴露你；换新手机时丢失文件。它不能防的：专门的工具看出被加了数据；忘记密码；重新编码或重建文件的 App；间谍软件或被入侵的设备；被迫交出密码。" loading="lazy" width="100%"><figcaption>边界一图看清：是日常的隐私，不是对取证工具或法律权力的防护。</figcaption></figure>

## HideFile 能帮上什么

HideFile 在任何现代浏览器里通过 [hidefile.app](https://hidefile.app)，把私密照片和文件放进一张普通的照片、视频或 PDF 里，并在浏览器里用你的密码加密。文件不会上传到 HideFile 的服务器。封面在“照片”、视频播放器或 PDF 阅读器里是一个正常的文件，所以扫一眼你图库的人看到的是他们预期的东西。

我们把局限说得直白，因为本页讲的就是它：HideFile 能挡住随手窥探，挡不住取证工具。它不改动像素，也不试图骗过统计检验。专门的工具能看出封面里被加了数据；内容保持加密，没有密码就读不出来。密码无法找回。会重新编码照片的 App 可能会把隐藏的部分去掉，所以请把封面当作文件来保存和分享。对于边境检查、训练有素的检查人员或法律压力，它不合适。

对这个问题双方的工具，见[隐写术工具对比](/zh/guides/steganography-tools)。更简单的技巧以及每种能骗过谁，见[怎么把文件藏在眼皮底下](/zh/guides/how-to-hide-files-in-plain-sight)。保险箱 App 的对比，见[照片保险箱 App 安全吗](/zh/guides/is-photo-vault-safe)。

## 资料来源

- Provos and Honeyman，[Detecting Steganographic Content on the Internet](http://www.citi.umich.edu/techreports/reports/citi-tr-01-11.pdf)，CITI Technical Report 01-11，2001（读取于 2026-10-14）
- Wikipedia：[Steganalysis](https://en.wikipedia.org/wiki/Steganalysis) 和 [Steganography](https://en.wikipedia.org/wiki/Steganography)（核对于 2026-10-14）
- Wikipedia：[OutGuess](https://en.wikipedia.org/wiki/OutGuess)（核对于 2026-10-14）
- Kodovsky, Fridrich and Holub，“Ensemble Classifiers for Steganalysis of Digital Media”，IEEE TIFS，2012，[doi:10.1109/tifs.2011.2175919](https://doi.org/10.1109/tifs.2011.2175919)
- Fridrich, Goljan and Du，“Detecting LSB steganography in color and gray-scale images”，IEEE Multimedia，2001，[doi:10.1109/93.959097](https://doi.org/10.1109/93.959097)
- Reddit，r/computerforensics：[Is there any tool to identify steganography?](https://www.reddit.com/comments/be92z5/)
- Reddit，r/computerforensics：[Hidden files in jpeg images?](https://www.reddit.com/comments/1659of7/)
- Reddit，r/computerforensics：[Does digital steganography actually see use in the real world?](https://www.reddit.com/comments/xilk5/)
- Reddit，r/Steganography：[Can you break my steganography method?](https://www.reddit.com/comments/1rzxpol/)
- Reddit，r/privacy：[Steganography - How to Hide Data from the Feds](https://www.reddit.com/comments/4spy4y/)
- Hacker News：[comment on detector thresholds](https://news.ycombinator.com/item?id=2046357)
- Hacker News：[comment on naive LSB detection](https://news.ycombinator.com/item?id=11581277)
- Hacker News：[comment on statistically undetectable hiding](https://news.ycombinator.com/item?id=3091161)
