零宽字符隐写

零宽字符隐写是把一段信息编码成看不见的零宽字符、插进正常文字里的方法,常用来做文本盲水印。本页把隐藏内容转成 U+200B 等零宽字符按段嵌入,文字外观和可见字数都不变;把文字粘回来就能提取水印,还能加口令、批量给不同接收人打不同标记,追查是哪一份流出。全程浏览器本地处理,文字不上传。

可见 0 字

0 / 512 字节

嵌入位置
字符集

不加口令时,任何人用本页都能读出隐藏内容。

部分平台(如某些输入框、短信、PDF 导出)会过滤零宽字符,发出前请把结果粘回「提取」自测一次。

嵌入与提取全部在浏览器本地完成,载体文字、隐藏内容和口令不上传、不保存;页面只记住嵌入位置与字符集。

如何使用零宽字符隐写

1

在「嵌入水印」里粘贴载体文字(文章、通知、文案),在「隐藏内容」里写要藏的标记,比如「发给 张三 2026-09」;需要保密就勾选「用口令加密隐藏内容」。

2

点「生成」,复制带水印的文字发出去;可以先点「去提取验证」当场确认能读出来。要发给多人,勾选「为多人生成不同水印」,每行一个名字,一次生成多份。

3

需要追查时切到「提取水印」,粘贴流出的文字,页面立刻列出藏着的标记、出现次数和隐形字符统计;加密的水印输入口令即可解开。

关于零宽字符隐写的常见问题

零宽字符隐写会把我的文字上传到服务器吗?
不会。嵌入、提取和统计都是浏览器里的字符串运算,载体文字、隐藏内容和口令都不经过网络,也不保存到本地存储;页面只记住你选的嵌入位置和字符集。口令加密同样由浏览器内置的 Web Crypto 在本机完成。
文本盲水印加进去之后别人看得出来吗?
肉眼看不出来,可见字数也不变。但它不是保密手段:用本页、Unicode 转换工具,或者在编辑器里打开「显示隐藏字符」都能发现零宽字符,懂行的人还能读出没加口令的内容。所以它适合做追踪标记;不想让别人读出内容,请勾选口令加密。
为什么发到某些平台后零宽字符水印提取不出来?
部分平台、输入框、短信、转 PDF 或截图识字(OCR)会过滤或丢失零宽字符;截图后手动重打一遍,水印必然丢失。建议发出前把结果粘回「提取水印」自测一次;如果某个平台只过滤 U+200D 这类字符,可以改用「兼容」字符集再试。
只复制了文章的一部分,文本水印还能找到吗?
默认「每段都嵌一份」,每个段落里都有一份完整的文本水印,所以只要复制了任意一整段就能提取出来。如果只复制了半段、又刚好没包含插入点(每段第一个字之后),这一份就读不出来了;选「只在开头嵌一份」时,只有开头那段带水印。
零宽字符在线解码为什么显示不是本站格式?
各家零宽字符工具的编码格式不同,本页只能完整识别自己生成的水印(带魔数和 CRC32 校验,不会误报)。遇到别家格式,页面会自动尝试把两种零宽字符当成二进制 0 和 1、按 8 位或 16 位一组解码,CTF 里常见的题型通常能直接出结果;其他私有格式不保证能解。
零宽字符水印会不会把表情符号弄乱?
不会。表情符号的组合(比如一家三口、带肤色的点赞)本身就靠零宽连接符 U+200D 拼起来,所以插入点会避开表情符号两侧,免得把两个表情粘成一个新表情。提取板块的「去掉水印」也只删本站水印,表情里的零宽连接符原样保留,并在统计里单独标出。
零宽字符隐写加口令后为什么出现两条水印?
口令加密每次都会生成随机的盐和初始向量,同一句话加密两次,密文也完全不同,所以对同一段文字加了两次水印时,提取板块会显示成两条加密水印。输入口令解开后,两条的内容是一样的。
零宽字符隐写免费吗,手机上能用吗?
免费,不用注册登录。手机和电脑浏览器都能用:在手机上长按粘贴载体文字,生成后点「复制」即可发到聊天软件或文档里;提取时同样整段粘贴。零宽字符在手机屏幕上一样看不见,所以发出前建议在同一台手机上粘回「提取水印」自测一次。
零宽字符水印最多能藏多少字,会变长吗?
明文隐藏内容上限 512 字节,一个汉字在 UTF-8 里占 3 字节,所以大约能藏 170 个汉字。可见字数不变,但字符串实际长度会变:用标准字符集时,一份水印占(9 + 内容字节数)× 4 个零宽字符,藏满 512 字节就是 2084 个;选「每段都嵌一份」时每段都要再加这么多。按字符数限长的输入框可能因此提示超长,隐藏内容写短一点(如「张三 0927」)更稳妥。
怎么彻底清除文字里的零宽字符?
在「提取水印」里粘贴文字,点「复制去掉水印后的文字」,可以一键去掉本站加的水印,其他字符原样保留。想把所有零宽字符、BOM、方向控制符等隐形字符一次删光,请用文本清理工具。
CTF零宽隐写题怎么用这个工具解?
把题目文字整段粘到「提取水印」。页面会列出每种隐形字符的码点和个数;如果恰好有两种零宽字符,会自动按两种 0/1 对应关系、8 位和 16 位分组试解,把能解出可读文字的候选列出来,并标注推测的对应关系。三种以上字符混杂的题目,可以参考统计表手动推断编码。

零宽字符隐写的标准与兼容字符集怎么选

零宽字符隐写把每个字节拆成几个零宽字符:标准字符集用 4 种零宽字符,每字节 4 个;兼容字符集只用零宽空格和零宽非连接符两种,每字节 8 个,长一倍,但个别只过滤 U+200D 的平台上更容易保住。不确定时用标准,发出前自测一次。

零宽字符水印两种字符集对照
对比项标准(默认)兼容
用到的零宽字符U+200B / U+200C / U+200D / U+2060U+200B / U+200C
每字节字符数4 个(基 4)8 个(二进制)
「张三」水印总字符数60 个120 个
适用场景大多数聊天软件、文档、网页标准字符集发出后提取不到时再试

零宽字符水印的帧结构:为什么不会误报

每一份文本水印都是一个完整的「帧」,固定开销 9 字节。算例:「张三」UTF-8 下是 6 字节,加上 9 字节开销共 15 字节,标准字符集乘 4 得 60 个零宽字符。提取时要魔数、版本和 CRC32 校验全部对上才算一条水印,表情符号里的零宽连接符或别家格式的零宽字符不会被当成水印。

零宽字符水印帧结构(按顺序排列)
字段长度说明
魔数2 字节固定为 0x5A(Z) 0x57(W),用来在一串零宽字符里定位水印
版本与标志1 字节高 4 位是版本号 1,最低位表示内容是否经过口令加密
长度2 字节内容的字节数;明文内容上限 512 字节
内容按实际长度隐藏内容的 UTF-8 字节;加口令时是 AES-256-GCM 密文
CRC324 字节覆盖版本、长度和内容,改动或丢失任何一个零宽字符都校验不过

常见的零宽字符与隐形字符一览

提取板块会逐个统计下表中的字符。零宽空格、零宽连接符这类字符在屏幕上不占位置,也常被用来做隐写术;方向控制符、软连字符等虽然不用于本页的水印,但也可能夹在复制来的文字里。

隐形字符码点与名称
码点名称本页水印是否使用
U+200B零宽空格 ZWSP是
U+200C零宽非连接符 ZWNJ是
U+200D零宽连接符 ZWJ是
U+2060单词连接符 WJ是
U+FEFF零宽不换行空格 / BOM否
U+200E从左到右标记 LRM否
U+200F从右到左标记 RLM否
U+202A从左到右嵌入 LRE否
U+202B从右到左嵌入 RLE否
U+202C弹出方向格式 PDF否
U+202D从左到右覆盖 LRO否
U+202E从右到左覆盖 RLO否
U+2061不可见函数应用否
U+2062不可见乘号否
U+2063不可见分隔符否
U+2064不可见加号否
U+180E蒙古文元音分隔符否
U+00AD软连字符否
U+FE0F变体选择符-16(多为 emoji 组成部分)否

零宽字符隐写还有哪些叫法

零宽字符隐写也常被叫作零宽隐写、文本隐写、文字隐写,属于隐写术的一种;拿来追查泄露时,就是文本盲水印、文字水印、文本水印、隐形水印或防泄露水印。给水印加口令,就是常说的零宽字符加密,读出水印就是零宽字符解密或零宽字符在线解码;解 CTF零宽隐写题时,也可以直接把题目粘进来。英文资料里对应的是 zero width steganography 和 zero width characters。

想看清每个字符的码点,用 Unicode 转换;想删光复制来的文字里所有零宽空格等隐形字符,用 文本清理。