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

text_blind_watermark%3A 给文本加隐水印

时间:2024-05-07 14:45:23浏览次数:26  
标签: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/18177294

相关文章

  • 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"/>......
  • WPF DataContext="{Binding SelectedItem,ElementName=_master}"
    <Windowx:Class="WpfApp80.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.......
  • Servlet中的Config和Context
    ServletConfig在servlet对象创建之后创建,每有一个servlet对象就有对应的servletConfig对象。ServletContext在Tomcat服务器加载Web项目后由Tomcat创建,一个web项目在Tomcat的启动运行中只有一个Context对象。ServletContext对象:ServletContext是一个全局对象,代表整个Web应......
  • TextMeshPro - 基本使用
    1 选中字体文件(这边使用了华文行楷),然后创建FontAsset创建后会生成一个TMP用的字体资源 2,创建一个TextMeshPro的Text将字体资源设置为刚刚创建的那个,就可以开始使用了 3,粗体,斜体,下划线,删除线,文字颜色设置  4,字符间距,单词间距,行间距,段落间距的控制 5, 文字......
  • TextMeshPro - 和UGUI Text的简单对比
    已经有uguiText了,为什么还要再来个TextMeshPro?1)TextMeshPro使用了更先进的渲染技术,渲染效果更好。同样的36号斜体字在Scene窗口中,我们放大后,Text可以明显的看到锯齿,而TextMeshPro字体的边缘还是圆润光滑。2)TextMeshPro默认支持多种渐变效果3) 性能更好的描边(TextMes......
  • 【发现一个小问题】golang http client: 配置了Client 对象的 Timeout 就会导致 conte
    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!cnblogs博客zhihuGithub公众号:一本正经的瞎扯我这样初始化了客户端:varclient=http.Client{Timeout:time.Duration(1000)*time.Millisecond,}然后在request创建过程中使用了context的timeout机制:tim......
  • android更改EditText下划线颜色
    在res——》values——》themes中添加下列代码<stylename="editTextStyle"><!--选中时下划线的颜色--><itemname="colorControlActivated">@color/gray1</item><!--默认时下划线的颜色--><itemname="colorControlNormal"&......