用大模型对话藏消息,这开源项目一周涨了895颗星
当AI生成的内容越来越像人,怎么在一段正常对话里悄悄藏一层信息?这款Go写的开源工具一周拿下895颗星,思路值得拆一拆。

适合:需要在公开内容里留识别标记、做隐写研究、或想摸清LLM生成边界的开发者与内容工作者。
先说结论
这是一款用大模型做“对话隐写”的工具。它把真正的秘密信息拆开,揉进一段看起来像闲聊的英文对话里,发出去后旁观者看不出破绽,接收方用同一个程序就能还原。它一周涨了895颗星,说明这件事戳中了AI时代一个真实焦虑:现在“让AI写得像人”已经是标配,“藏东西不被发现”才是新问题。
真正的问题
过去几年,行业在研究怎么让AI生成的内容更像真人。现在风向悄悄转了:怎么让一段人看不出、AI也看不出的对话,悄悄承载一层额外含义。
场景很具体。比如你想在不引人注意的频道留一段备份消息,或者你想给一段公开内容打上只有合作方能识别的水印,又或者你想验证一段对话有没有被中间人篡改过。这些需求以前都靠换行、空格、unicode这类“老花样”,识别门槛太低,截图加个文本框就废了,常规检测一搜就穿。
大模型把隐写的颗粒度抬到了新维度。它能把一段话的语气、节奏、用词都调成和真人一模一样,再把二进制信息嵌进选词的细微差异里。要抓这种痕迹,得拿大规模语料做概率统计才有可能。这件事一旦跑通,就不只是一件玩具——它会改变我们对“信任一段对话”这件事的基本判断,因为以后你看到的每一段对话,都可能藏着另一层意思。
怎么做更省力
工具本身是Go写的,单文件就能跑,思路分四步:
| 步骤 | 你做什么 | 程序做什么 |
|---|---|---|
| 准备明文 | 写好要藏的字符串 | 无 |
| 选定载体 | 给一段普通话题 | LLM按话题扩写成正常对话 |
| 嵌入 | 把明文和载体都交给程序 | 按词替换规则编进对话 |
| 还原 | 把文本交给接收方 | 反向解码出原文 |
省力点在第三步。你不需要懂编码细节,也不用训练模型——把明文粘进去,让程序生成一段谁看都正常的对话就行。生成出来的文本可以直接发到任何地方,邮件、评论区、留言、聊天截图,都不会显得突兀。
如果你打算把它接进自己的内容生产链路,比如在公众号长文里给合作方留一道隐形识别标记,可以先用人味儿写作打磨把全文调一遍,把AI腔和模板句先压下去,再让隐写工具在固定段落嵌签名,这样伪装层会自然得多,不容易被一眼识破。
哪些坑要避开
第一,载体话题要够普通。一旦对话里冒出冷门细节、奇怪人名、过分专业的术语,对方排查时就会把这段放大看。聊美食、聊天气、聊周末计划,比聊量子计算安全得多。话题越像随手写的,承载能力越强。
第二,接收方必须拿到同一版本。隐写依赖程序里的编码表,如果你或合作方改了载体里的某句话,接收方解码会直接报错或乱码。想让改动也解不出来?提前在末尾设计一段校验文本,让接收方先校验完整性再解码。
第三,别指望它对抗国家级对手。它抬高的是“看不出来”的成本,不是“解不出来”的成本。专业检测、概率统计、对照语料依然能抓出来,而且对手一旦怀疑,会反过来收集你的所有历史对话做回溯分析。
第四,Go不是噱头。单文件分发、零依赖、跨平台,意味着工具可以随身带在身边随时用,不用拉一堆环境。这一点在做现场演示和取证时尤其重要——你不需要依赖网络,也不需要GPU。
现在就能动手
去仓库clone下来,按README跑一次encode/decode流程。先用一句话的明文试,比如自己的邮箱前缀;让程序生成一段英文闲聊;让朋友看一眼,问他能不能读出隐藏信息;再让他用程序解一次确认。整套流程五分钟能跑完。
之后想正经用,就固定三件事:载体话题模板、校验段格式、接收方使用的版本号。三件事定下来,工具才算在你的工作流里站稳;任一个松了,对方拿到也没用。