老板:“有人截图了!”。安全部门:“收到,马上查暗水印!”

你好呀,我是歪歪。

最近接连出了两个和截图相关的互联网大瓜,吃完瓜我得给你提个醒:截图有风险,拍照需谨慎。

因为你以为只是随手一拍,老板却能顺着图片找到你工位。

第一个瓜是来自网易:

三石老板的这一句"有人截图了!"也迅速的成为了 2026 年的一个新梗。

一个是追觅:

但是追觅这个瓜更有意思一点,员工不是截图,而是对着屏幕拍照,然后发到了外面。

老板的原话是:

"谁截屏出去,立即开除。"

但没提"拍照"啊。

追觅这个图片拍完后,还特意给水印打了厚码。把这个聊天框属于哪个员工的信息都抹去了。

看起来是有一定的"反侦察意识",但是不够高,因为即使是手机拍摄,也是存在被找到的风险。

网易的截图里面看起来是没有水印的。

追觅的照片把水印也抹去了。

那么问题就来了:公司是怎么找泄到密者的?找到截图或者照片的源头的呢?

答案就四个字:暗水印。

暗水印你可以简单的理解为:给你的照片、视频或屏幕内容戳了一个章,这个章的内容可能就是你的员工 ID,或者手机号一类的东西,肉眼看不见,但通过特定的方式一解码,就能看出是谁发出来的。

图片是由像素组成的,而暗水印是藏在像素数据里的一串"数学密码",是图片的一部分,所以你用手机拍屏幕也抹不掉暗水印。

拍照只是换了个文件格式,但密码本身没丢。

遥想当年

我第一次知道有暗水印这个玩意,还得追溯到十年前,2016 年 9 月的中秋节。

那一年阿里爆出了著名的"抢月饼"事件。

几位安全部门的程序员哥们,为了在内网抢几盒月饼,人家也没有恶意,抢来也只是为了走亲戚的时候送礼啥的。于是自己写了个抢购脚本,没控制好逻辑,多刷了上百盒。

这事儿惊动了阿里的高层领导,随后内部发布了处罚通告,开除了这几位员工。

这件事情当年在网上引起了巨大的讨论。

大家都记得这几个哥们被开除了。

但是还忽略了一个事情,这件事情当时是怎么爆出来的呢?

是有人把公司内网对该事件的处置内容截图了:

是的,因为:

2026 年的新梗,还能用到 2016 年的老历史上。

有人截图发出去了,然后才迎来了大家巨大的讨论。

当时这个截图的同事也被找了出来。

就是通过暗水印找到的。

我猜测,这个同事在登录内网后,在内部截图的时候,图片里面已经被戳上了他的工号和截图的时间,只是肉眼不可见而已。

然后这张图在网上开始发酵,这张图在各个论坛、网站、微信群里面流转,不论流转多少次,他的工号都在。

对于阿里安全部门做暗水印功能的同事来说,只要提取出工号,找到这个截图的同事就比较容易了。

通过这个事件,我才是第一次知道有暗水印这个东西的存在。

那一年,我刚离开大学,这件事情,给我"幼小"的心灵造成了极大的震撼,所以记忆深刻。

体验一下

在写这篇文章的时候,我找到了一个能直观让大感家受到暗水印存在的网站:

https://numfeel.996.ninja/pages/invisible-watermark

这个网站里面演示了关于暗水印的两种主流方案:

  • 空间域水印------直接修改像素值的最低位(LSB),简单高效但不抗压缩
  • 频域水印(DCT)------在频率空间嵌入信息,抗 JPEG 压缩、缩放等攻击

空间域水印的原理是修改像素最低位:

每个像素的颜色值是 0~255(8 位二进制)。最低位(LSB)的变化只改变亮度 ±1,人眼完全无法分辨。

例如:像素值 10110100(180)→ 改最低位为 1 → 10110101(181) 亮度只变了 0.4%,但这一位就能存储一个 bit 的信息。

频域水印的原理是在频率空间藏信息:

图像可以用 DCT(离散余弦变换)分解为不同频率的分量。低频 = 大面积色块,高频 = 边缘细节。 水印嵌入在中频区域:比低频更隐蔽(不影响整体色调),比高频更鲁棒(不会被压缩丢弃)。 JPEG 压缩本身就是基于 DCT 的,所以频域水印天然抗 JPEG 压缩。

这两个方案背后的技术原理不懂的没关系,并不影响你理解暗水印。

因为我也不懂,上面这两段我是直接从网站上抄过来的。

包括这个方案对比图也是:

我这里用"频域水印"的方式做个演示。

示例图我就直接用追觅的这个图片:

我把图片上传上去后,并输入我想在图片中隐藏的暗水印:

UID:9527|whywhy

然后点击"嵌入水印",页面就会变成这样:

可以把嵌入暗水印之后的图片下载下来,也就是下面这张:

是的,这张照片已经是嵌入水印之后的照片了,肉眼完全看不出来。

但是你用这张照片去提取水印,是完全可以提取出来的:

那如果我对着这张图片,再拍一张,然后再去提取暗水印,你猜能提出来吗?

能?

还是不能?

答案是能,也不能。

你注意这里有个"嵌入强度"的选项,越高越抗攻击,但越容易看出:

虽然话是这样说,但是具体到我的这张图片,其实就算拉到 80,你肉眼也看不出啥问题:

我测试了一下,如果用默认的 30 强度,把有水印的图片通过手机再拍一次后去提取水印,有一定的概率能成功,只能说概率不高。

但是如果用最高的 80 强度生成的图片,在用手机拍了去提取,我试了好几张,百分百能提取成功:

而你要知道,这个网站只是 Demo 级别的,如果是企业级的暗水印通常采用更高强度的频域算法,甚至还会结合屏幕上的动态波纹,手机翻拍几乎百分百能还原,比这个 Demo 强多了。

一旦从图片中提取出了"UID:9527|whywhy",拿到了 UID,再把人找到办公室一对峙,就破案了。

甚至,现在职场都有监控,再把监控调出来,拉到从水印中提取出来的时间,看看你有没有对着屏幕拍照的动作...

所以,通过上面这个案例,你就知道我开篇说的这句话,是多么的有道理:

截图有风险,拍照需谨慎。

AI 时代的暗水印

我之前写过这样一篇文章:《可怕,看到一个如此冷血的算法。》

里面提到了一个关于 Gemini SynthID 水印的东西:

这个东西,其实和我们前面说的"暗水印"有异曲同工之妙。

这是官方关于 SynthID 的介绍:

https://deepmind.google/models/synthid/

其中 SynthID 的工作原理里面是这样说的:

对人类不可察觉------但 SynthID 技术可以检测到。

这玩意怎么用呢?

非常简单,直接问就行了:

我给你实操一下。

我用 Gemini 让它给我生成一张风景照片,因为风景照片一眼看上去,想要识别出是否 AI 生成的,还比较困难:

这个就是它给我生成的图片,但是我截去了右边的明水印:

然后我再把这张图扔给它,让它验证一下这张照片是否是 AI 生成的,并给出实锤:

它给出的实锤,就是这个图片包含 SynthID。

只要检测到 SynthID 水印,就表明相应图片或视频的全部或部分内容是由 Google AI 模型生成或修改过的:

https://support.google.com/gemini/answer/16722517

这里还有几个关于 SynthID 的常见问题,可以看一下:

另外,在官方关于 SynthID 的介绍中,我关注到了这样一个点:

图像、音频、视频中插入 SynthID 我能理解,文本里面怎么能插入 SynthID 呢?

这个问题,在官方的介绍视频里面有一个非常简短的答疑:

https://www.youtube.com/watch?v=9btDaOcfIMY\&t=85s

大概意思就是模型在生成文本时,在不改变原有意思的前提下,会在特定位置选择特定词汇,形成可识别的模式。

我把这段翻译扔给 Gemini,让它举一个更加形象的例子便于理解。

这是它给我的例子,确实形象:

另外,我翻了一下官网,没有看到 SynthID 具体生成的细节。

其实我是想要找一个证据来论证我的猜想:这个 SynthID 里面包含着用户信息。

换句话说,官方能通过 SynthID 找到这个图片是哪个用户生成的。

虽然,没有找到官方的证据,但是我觉得这是个大概率的事情。

所以,这个事情的想象空间就比较大了。

你想想,如果有人不怀好意的生成了一些图片,试图用这些照片以假乱真,去引发舆论。

你以为没人能找的到你。

实际上,你生成的图片可能从到头尾都写着你的名字。

所以说:莫乱整,乱整必被抓。

写在最后

歪师傅作为一个写了好几年文章的博主,也是遇到过被搬运,洗稿的情况。

所以关于"文字暗水印"也有一点点研究。

早期的时候我会故意在文章里面藏几个错别字,别人抄的时候不带脑子,也就一起抄过去了。

这算是一个被抄袭的证据。

后来这个方式被读者看到的时候,会提醒我写了错别字,我也不好解释我的良苦用心,不然显得我嘴硬的很。

当然了,有些错别字确实是我写错了。

反正错别字这种方式不太好。

后来,受到这句话启发:汉字调整序顺不影响阅读,绝大多数人压根不到感觉。

我觉得这也算是一种文字的"暗水印",而且比错别字高级。

这篇文章里面也有几处类似的地方,不知道你发现了没有:

  • 那么问题就来了:公司是怎么找泄到密者的?
  • 我找到了一个能直观让大感家受到暗水印存在的网站。
  • 实际上,你生成的图片可能从到头尾都写着你的名字。

好了,最后还是提醒一下各位打工人、各位在网上冲浪的朋友:

截图有风险,

拍照需谨慎。

指尖轻点处,

云端已记名。

莫道无人见,

暗纹即汝名。

好诗啊,好诗,收工!

最后,欢迎关注公众号【why技术】,全网首发。