首页 > 其他分享 >text_blind_watermark%3A 给文本加隐水印

text_blind_watermark%3A 给文本加隐水印

时间:2024-05-09 14:48:25浏览次数:22  
标签:blind watermark% watermark text wm password extract

项目简介

文本隐水印,用来把一段信息嵌入到一段明文中,使信息隐密不可见,并且旁人无法察觉到嵌入后明文的变化。
经测试,在这些场景下信息隐藏比较完美

  • MacBook 版本的 Chrome 浏览器,包括知乎网页版、微博网页版等。
  • 微信、钉钉。Mac/Iphone 版均可
  • 苹果备忘录
  • 用 Chrome 打开 github.com 上的代码文件和文本文件(但md文件不行)
  • 用复制/黏贴 (ctrl+c/v) 的方式在上述平台之间黏贴
  • 欢迎补充

不太行的

  • Safari 浏览器

在线演示(旧版算法,仅用于展示效果): https://www.guofei.site/pictures_for_blog/app/text_watermark/v1.html
视频展示:https://www.bilibili.com/video/BV1m3411s7kT

如何使用

安装

>pip install text_blind_watermark

把信息不可见地嵌入到文本中

from text_blind_watermark import TextBlindWatermark2


password = '20190808'
text = '这句话中有盲水印,你能提取出来吗?'
watermark = 'github.com/guofei9987'


text_blind_wm = TextBlindWatermark2(password=password)


text_with_wm = text_blind_wm.embed(text=text, watermark=watermark)
print(text_with_wm)

从文本中提取不可见的信息

text_blind_wm2 = TextBlindWatermark2(password=password)
wm_extract = text_blind_wm2.extract(text_with_wm)
print('提取内容:', wm_extract)

**chr_type**

可以指定 chr_type 使其在不同的系统环境中有更好的表现

from text_blind_watermark import TextBlindWatermark2


password = '20190808'
text = '这句话中有盲水印,你能提取出来吗?'
watermark = 'github.com/guofei9987'


text_blind_wm = TextBlindWatermark2(password=password, chr_type=(3, 4))


text_with_wm = text_blind_wm.embed(text=text, watermark=watermark)
print(text_with_wm)


text_blind_wm2 = TextBlindWatermark2(password=password, chr_type=(3, 4))
wm_extract = text_blind_wm2.extract(text_with_wm)
print('提取内容:', wm_extract)
assert watermark == wm_extract

更稳定的版本

张三:把隐秘消息嵌入到另一段文本中

from text_blind_watermark import TextBlindWatermark


watermark = "绝密:两点老地方见!"
text = "这句话中有盲水印,你能提取出来吗?" * 16
password = "20190808"


twm = TextBlindWatermark(password=password)
twm.read_wm(watermark=watermark)
twm.read_text(text=text)
text_embed = twm.embed()


print("打上盲水印之后:")
print(text_embed)

显示的明文可以粘贴到任何地方
It uses AES to encrypt

李四:拿到明文,解出暗文

from text_blind_watermark import TextBlindWatermark
password = "20190808"


twm_new = TextBlindWatermark(password=password)
wm_extract = twm_new.extract(text_embed)
print("解出的盲水印:")
print(wm_extract)

项目链接

https://github.com/guofei9987/text_blind_watermark

标签:blind,watermark%,watermark,text,wm,password,extract
From: https://www.cnblogs.com/luckzack/p/18182212

相关文章

  • text-generation-webui 推理模型Qwen1.5-7B-Chat相关报错问题解决
    推理代码text-generation-webui推理模型Qwen1.5-7B-Chatsysinfo nvcc--versioncuda11.8importtorch>>>print(torch.__version__)1路径错误2依赖没安装ImportError:Thismodelingfilerequiresthefollowingpackagesthatwerenotfoundinyourenvironme......
  • 文本向量化模型acge_text_embedding
    1.背景文本向量化模型是自然语言处理(NLP)中的一项核心技术,它可以将单词、句子或图像特征等高维的离散数据转换为低维的连续向量,从而将文本数据转换为计算机能够处理的数值型向量形式。当文本信息被转换为向量形式后,输出的结果能够进一步地为多种后续任务提供有力支持,例如:搜索、聚......
  • Itextsharp_v416-非商用项目中的PDF生成方案
        项目演示地址:https://gitee.com/qq28069933146_admin/itextsharp_v416_qrcoder_simple(因为itextsharp_v416涉及敏感开源协议的原因项目已删除;虽然只是LGPL协议)1、主要可参考代码如下:///<summary>///生成PDF按钮-带二维码///</summar......
  • textwrap:Python格式化文本段落
    前言前文是针对普通的字符串数据进行处理。今天,我们要讲解的textwrap库,是对多文本进行处理的库。比如对于段落的缩进,填充,截取等,都可以通过textwrap库进行操作。特别是自己编写打印程序的时候,可以使用该库进行校正文档非常便捷,大大的加快了文本格式的处理。话不多说,我们来一步步......
  • pdf.js源码分析-textLayer中的坐标计算
    在pdf.js中显示pdf内容和选择pdf文字属于不同的层,一个是canvas绘制,一个是使用dom进行布局,那么接下来先看一下在textLayer中的文字节点div是怎么计算每段文字的布局位置的吧。首先找到pdf.js源码中的text_layer.js文件,然后得到下面方法appendText方法,下面的解释是在字体没有发生旋......
  • text_blind_watermark%3A 给文本加隐水印
    项目简介文本隐水印,用来把一段信息嵌入到一段明文中,使信息隐密不可见,并且旁人无法察觉到嵌入后明文的变化。经测试,在这些场景下信息隐藏比较完美MacBook版本的Chrome浏览器,包括知乎网页版、微博网页版等。微信、钉钉。Mac/Iphone版均可苹果备忘录用Chrome打开github......
  • SwiftUI Text 文字处理
    代码////ContentView.swift//SwiftUIText////CreatedbyCHENHaoon2024/5/6.//importSwiftUIstructContentView:View{varbody:someView{VStack{Text("Yourtimeislimited,sodon’twasteitlivingsomeoneels......
  • Text Representation
    1StatisticalModel1.1One-Hot1.2Bagofwords(BOW)https://web.stanford.edu/class/datasci112/lectures/lecture8.pdf1.3N-grams1.4TF-IDF2WordEmbedding(NeuralNetworkModel)2.1Word2Vechttps://projector.tensorflow.org/ContinuousBagofWords(CBOW......
  • applicationContext.xml
    我真服了,搜了半天没有我想看见的就是关于取代mybatis.xml的文件只能自己写一个了并不能完全取代,至少日志部分还得保留1<?xmlversion="1.0"encoding="UTF-8"?>2<beansxmlns="http://www.springframework.org/schema/beans"3xmlns:xsi="http://www.w3.org/2......
  • WPF Text MultiBinding StringFormat
    <TextBlock.Text><MultiBindingStringFormat="R:{0:N0},G:{1:N0},B:{2:N0}"><BindingPath="Value"ElementName="_red"/><BindingPath="Value"ElementName="_green"/>......