数据百变系列——用Python盲水印保护自己写的文章

本文是数据百变系列的第一篇,后续还将有以下文章,关注获取更多动态+

  • 使图片在不同的背景下显示不同的图片
  • 把数据以图片形式存放
  • 把数据藏在一个图片中
  • 把图片和文件黏在一起,并存为图片
  • 把一段信息放到图片的EXIF中
  • 把数据以音频的形式存放
  • 把数据隐藏在一个音频中
  • 把数据以文本文件的形式存放
  • 把数据隐藏在一段文本中

背景

身为程序员, 一定看过或者写过技术文章,国内体量最大的技术论坛莫属某四字网站了,但是这网站有个弊病,抄袭横行,甚至会出现抄袭&洗稿的文章比原文权重都高,估计在座的都深受其害,这时候给自己的文章加个盲水印就十分必要了,并且盲水印还有以下用途:

  1. 保护版权:在数字化时代,文本可以很容易地被复制、传播和篡改,盲水印可以帮助作者或出版商在文本中嵌入不可见的标识,以证明其版权。
  2. 内容追踪:在大规模的信息传播中,盲水印可以用于追踪信息的传播路径和使用情况,从而提供有关信息的分析和监控。
  3. 防伪验证:盲水印可以用于验证文本的真实性和完整性,防止信息被篡改或伪造。
  4. 数据溯源:盲水印可以用于追溯数据的来源和使用情况,对于研究、法律调查等领域具有重要意义。

以后投诉盗版又多了一个证据

样例

以下是一篇刚出炉的冷笑话:

text 复制代码
当程序员走进酒吧,服务员问道:"你们这里有没有Wi-Fi?" 
程序员回答:"不,我们这里使用Ethernet。" 
服务员一脸茫然地说:"那又是什么?" 
程序员笑着解释道:"就是一根看起来像面条的东西,用来连接网络。" 
服务员忍不住笑了起来,说:"难怪我总觉得饭菜来得这么快!原来都是靠一根面条传输的!"

如果不加水印,很容易被盗版,可以使用以下代码添加盲水印:

python 复制代码
from text_blind_watermark import TextBlindWatermark2

password = '炼数成金'
text = '''当程序员走进酒吧,服务员问道:"你们这里有没有Wi-Fi?" 
程序员回答:"不,我们这里使用Ethernet。" 
服务员一脸茫然地说:"那又是什么?" 
程序员笑着解释道:"就是一根看起来像面条的东西,用来连接网络。" 
服务员忍不住笑了起来,说:"难怪我总觉得饭菜来得这么快!原来都是靠一根面条传输的!"'''
watermark = '我是一个冷笑话'
text_blind_wm = TextBlindWatermark2(password=password)
text_with_wm = text_blind_wm.embed(text=text, watermark=watermark)
print(text_with_wm)

输出结果

text 复制代码
当程序员走进酒吧,服务员问道:"你们这里有没有Wi-Fi?" 
程序员回答:"不,我们这里使用Ethernet。" 
服务员一脸茫然地说:"那又是什么?" 
程序员笑着解释道:"就是一根看起来像面条的东西,用来连接网络。" 
服务员忍不住笑了起来,说:"难怪我总觉得饭菜来得这么快!原来都是靠一根面条传输的!"

看起来是不是和最开始的没有差别,毕竟盲水印,如果看到了那就是普通水印了 但是当你用以下代码处理时,就能输出加进去的水印了

python 复制代码
text_blind_wm_new = TextBlindWatermarkThin(password=password)
wm_extract = text_blind_wm_new.extract(text_embed)
print('提取内容:', wm_extract)

输出内容

text 复制代码
提取内容:我是一个冷笑话

目前这个方法,就算经过复制粘贴,或者微信等通讯软件发送,也能保证盲水印一直在,针对简单的文本数据防盗版还是有一定的保护效果

相关推荐
miaowmiaow几秒前
PSD2Code 近期更新与深度解析:从设计稿到生产级代码的完整技术栈
前端·人工智能·ai编程
Hilaku11 分钟前
多标签页并发请求导致 Token 刷新失败?只有 15行代码就能解决 !
前端·javascript·程序员
Nile20 分钟前
解密Palantir系列一:4. Ontology 不是哲学
开发语言·前端·javascript
因_崔斯汀38 分钟前
ECharts 区域地图可视化实战:以山东地图为例
前端
Bacon1 小时前
手摸手带你搞清楚 AI Agent 的六大核心概念
前端·人工智能
王林不想说话1 小时前
TypeScript 进阶知识总结:从 extends、泛型到 infer,一篇打通 TS 类型系统
前端·javascript·typescript
罗超驿1 小时前
15.JavaScript 函数与作用域完全指南:语法、参数、表达式与作用域链实战
开发语言·前端·javascript
.千余1 小时前
【C++】C++类与对象2:C++构造函数、运算符重载与流输入输出全面解析
c语言·开发语言·前端·c++·经验分享
卡次卡次11 小时前
vibecoding起步注意点:插件、Skills、MCP、Hooks
服务器·数据库·python·oracle
我的xiaodoujiao1 小时前
API 接口自动化测试详细图文教程学习系列24--如何用Pytest去设计接口测试用例并执行
python·学习·测试工具·pytest