明明我才是作者,结果热度全让隔壁薅走?这剧情我拒绝!
——某深夜码字的二次元博主 · 2025 大绵羊
1. 反派登场:内容创作者 99% 会遇到的“抄袭危机”
- 公众号推文 转眼就被搬去某乎,连 emoji 都没换!
- WordPress 博客 熬夜肝三千字,被一键整站搬运!
- 平台投诉?“请提供原创证据”——(陷入沉默.jpg)
这波叫“我有苦,但无证” → 伤害 +114514。
2. 拯救剧情的神器:文本盲水印(text_watermarking)
传统做法 | 被反制方式 | 文本盲水印 buff |
---|---|---|
明显版权标注 | 剪裁 / 删除 | 肉眼完全隐形,颜值满分 |
图片可视水印 | AI 一键消除 | 深度绑定文字,复制也带走 |
人工维权 | 找证、走流程、爆肝 | 工具秒提取,证据一键到手 |
一句话:这是给文字套上的“透明结界”,抄袭者想跑?请先过结界检测!
3. 技术原理:把版权信息变成“暗号符”
- 隐形嵌入
- 把字节映射到零宽字符 / 变体选择器(肉眼 100% 看不见)
- 精准提取
- 专用工具(或几行 PHP)就能还原暗号
类比:给每个字符都贴了“忍术查克拉”,平时看不到,一旦识破瞬间现形。
4. 三大实战场景(操作 0 门槛,萌新也能秒会)
4.1 微信公众号 & 短文本 —— 在线工具「5 秒套圈圈」
- 打开 文本盲水印 Online(纯网页,咸鱼电脑也能跑)
- 粘贴内容 → 输入水印信息(例:
大绵羊博客-20250804
) - 把生成结果复制回公众号后台,发布完事!
适合:偶尔发文 / 不是 WP 博客。
缺点:需要手动加工,长篇大论会累到怀疑人生。
4.2 WordPress 长文 —— 开源插件「自动打怪」
插件 GitHub 地址:
twsh0305/text_watermarking
(墙裂建议 Star,给作者一点小心心 ✨)
- 安装 & 启用 → 后台上传 ZIP,点“激活”
- 关键配置
- 最小段落字数:固定间隔(每 20 字),长文最稳(少于此字数的段落不插入水印)
- 水印字段:勾选
IP + USER ID + 时间戳 + 自定义
- 运行方式:
- 动静混合(默认/推荐)
- 静态(纯JS)
- 动态(纯PHP)
- 调试模式:启用后水印将以可见文本形式显示([水印调试….])用于测试水印效果,正式环境建议关闭

优势:
- 新文章自动加水印,躺着也能反抄袭
- 代码开源,随便魔改,放心食用
4.3 自研 / 进阶 —— 零宽字符编码(附萌系 PHP 示例)
// 王先生笔记
// 文章URL:https://wxsnote.cn/6395.html
// 代码随意使用,文章不可转载!
// 变体选择器范围定义(用于映射水印字节)
define('VARIATION_SELECTOR_START', 0xfe00); // 基础选择器起始(U+FE00)
define('VARIATION_SELECTOR_END', 0xfe0f); // 基础选择器结束(U+FE0F)
define('VARIATION_SELECTOR_SUPPLEMENT_START', 0xe0100); // 补充选择器起始(U+E0100)
define('VARIATION_SELECTOR_SUPPLEMENT_END', 0xe01ef); // 补充选择器结束(U+E01EF)
/**
* 字节转变体选择器(核心编码:实现文本水印不可感知性)
*/
function wxs_toVariationSelector($byte) {
if ($byte >= 0 && $byte < 16) {
return mb_chr(VARIATION_SELECTOR_START + $byte, 'UTF-8');
} elseif ($byte >= 16 && $byte < 256) {
return mb_chr(VARIATION_SELECTOR_SUPPLEMENT_START + ($byte - 16), 'UTF-8');
}
return null;
}
/**
* 变体选择器转字节(核心解码:保障文本水印安全性)
*/
function wxs_fromVariationSelector($codePoint) {
if ($codePoint >= VARIATION_SELECTOR_START && $codePoint <= VARIATION_SELECTOR_END) {
return $codePoint - VARIATION_SELECTOR_START;
} elseif ($codePoint >= VARIATION_SELECTOR_SUPPLEMENT_START && $codePoint <= VARIATION_SELECTOR_SUPPLEMENT_END) {
return ($codePoint - VARIATION_SELECTOR_SUPPLEMENT_START) + 16;
}
return null;
}
/**
* 嵌入文本水印(优化鲁棒性:分散嵌入+末尾补全)
*/
function wxs_embedWatermark($text, $watermark) {
if (empty($watermark)) return $text;
// 水印转字节数组(支持任意文章版权信息)
$watermarkBytes = [];
$length = strlen($watermark);
for ($i = 0; $i < $length; $i++) {
$watermarkBytes[] = ord($watermark[$i]);
}
$chars = preg_split('//u', $text, -1, PREG_SPLIT_NO_EMPTY);
$result = '';
$watermarkIndex = 0;
$watermarkTotal = count($watermarkBytes);
// 分散嵌入:每个字符后插水印,提升鲁棒性(抗部分字符删除)
foreach ($chars as $char) {
$result .= $char;
if ($watermarkTotal > 0) {
$byte = $watermarkBytes[$watermarkIndex];
$selector = wxs_toVariationSelector($byte);
if ($selector !== null) {
$result .= $selector; // 插入不可见水印
}
$watermarkIndex = ($watermarkIndex + 1) % $watermarkTotal;
}
}
// 末尾补全:确保水印完整,避免因原文过短导致信息丢失(增强鲁棒性)
while ($watermarkIndex < $watermarkTotal) {
$byte = $watermarkBytes[$watermarkIndex];
$selector = wxs_toVariationSelector($byte);
if ($selector !== null) {
$result .= $selector;
}
$watermarkIndex++;
}
return $result;
}
/**
* 提取文本水印(保障安全性:精准还原原始信息)
*/
function wxs_extractWatermark($text) {
$watermarkBytes = [];
// 过滤变体选择器,转字节数组
$chars = preg_split('//u', $text, -1, PREG_SPLIT_NO_EMPTY);
foreach ($chars as $char) {
$codePoint = mb_ord($char, 'UTF-8');
$byte = wxs_fromVariationSelector($codePoint);
if ($byte !== null) {
$watermarkBytes[] = $byte;
}
}
// 字节转字符串(验证UTF-8格式,提升安全性)
$watermarkBinary = '';
foreach ($watermarkBytes as $byte) {
$watermarkBinary .= chr($byte);
}
return mb_check_encoding($watermarkBinary, 'UTF-8') ? $watermarkBinary : '';
}
调用测试:
$original = "这是一篇原创短文,用于测试文本水印";
$watermark = "文章版权©2025 大绵羊博客,侵权必究";
$withWatermark = wxs_embedWatermark($original, $watermark);
$extracted = wxs_extractWatermark($withWatermark);
// 输出结果:原始水印与提取水印完全一致,且带水印文本肉眼不可辨
Tips:零宽字符不止一种,合理混合更防御。别忘备份“无水印原文”,以防万一!
5. 维权神操作:两招秒提取证据
场景 | 工具 | 步骤 |
---|---|---|
临时/单篇 | 在线提取 | 粘贴抄袭文本 → 点“提取” → 复制结果 |
批量处理 | PHP 脚本 | require 'extract.php'; echo extract($text); |
输出示例:
侵权证据:IP=203.0.113.42|USER:1|TIME=2025-08-04 01:23:45|大绵羊博客
PDF、截图都能附上,一键递交平台 or 律师函,抄袭者大概率当场原地爆炸 ⚡
6. 掉坑小指南(别让你的护符翻车)
- 文本太短 (<20 字) → 水印密度过高,容易被看出端倪
- 部分平台过滤特殊字符 → 发布前先预览,看有没有被吃掉
- 备份原文 → 万一水印挂了,也能自证原创
- 法律流程 →
水印≠最终胜利,要配合正式投诉 / 起诉
7. 资源包·一键打包
类型 | 地址 |
---|---|
在线工具 | 文本盲水印-给文本添加隐藏信息 |
WordPress 插件 | twsh0305/text_watermarking |
8. 结语:给每一行文字戴上“次元防护罩”!
文本盲水印 ≠ 无敌,但 性价比超神:几分钟配置 → 长期坐享维权加成。
无论你是魔法少女·公众号运营,还是赛博剑士·独立博主,都值得给内容套上这层隐形护符。
如果你有更硬核、更中二的反抄袭姿势,欢迎评论区“放大招”!
一起把抄袭怪兽打回老家,让原创之光,在次元宇宙闪耀!
鸣谢
- 倦意:插件灵感 + 设置参考
- 大绵羊:共同开发 & 调试
- 张洪 Heo:早期技术方案分享
- emoji-encoder 项目:字符映射思路启发
- 本文由大绵羊SAMA 编写
阿巴阿巴
有点意思,不知道能不能做成typecho的插件?我博客是typecho的,主要是记录一点个人技术折腾记录,搜索引擎权重也不高(![[g=doge]](https://dmyblog.cn/wp-content/themes/dmytheme/emojis/doge.png)
![[g=笑哭]](https://dmyblog.cn/wp-content/themes/dmytheme/emojis/笑哭.png)
有兴趣可以去看看:nekopara.uk (真是个好域名呢,鉴定为玩nekopara上头导致的x)
不过就国内这个互联网环境,他抄了就抄了,没办法拿他怎么样。一大堆的低质量采集站已经说明问题了,都是剽窃的成果,网站和各种平台互相引流,什么关注下载资源,积分下载资源,积分要赞助冲钱或在看广告,真无语了,你拿他一点办法的没有。只能说国内还在坚持作好网站,更新原创内容的人真的不多。
可以做成typecho的插件,我提供了基础文件example.php,这是核心代码,可以在github看一下