安装(使用pip):
pip install textwatermark
使用:
命令行调用:
插入水印到文本:
'./tests/text/number.txt' -m ALPHA_NUMERICAL -t HOMOGRAPH_NUMBERS -x 999 -w 123 textwatermark -v insert -f
Ӏ2𝟑𝟒𝟓Ⳓ𝟟890
保存水印参数:
$ textwatermark -v insert -f './tests/text/number.txt' -m ALPHA_NUMERICAL -t HOMOGRAPH_NUMBERS -x 999 -w 123 -e
{"tpl_type": "HOMOGRAPH_NUMBERS", "confusables_chars": [], "confusables_chars_key": "", "wm_base": 7, "method": 1, "wm_mode": 5, "wm_len": 7, "wm_loop": false, "start_at": 0, "version": "0.1.2"}
从文本提取水印:
$ textwatermark -v retrieve -f out.txt -p '{"tpl_type": "HOMOGRAPH_NUMBERS", "confusables_chars": [], "confusables_chars_key": "", "wm_base": 7, "method": 1, "wm_mode": 5, "wm_len": 7, "wm_loop": false, "start_at": 0, "version": "0.1.2"}'
The retrieved watermark is: 123
代码调用:
'''Sample Example'''
import os
from textwatermark.defines import WMMode
from textwatermark.main import TextWatermark
from textwatermark.template_type import WMTemplateType
# 1.Init TextWatermark instance
wm_mode = WMMode.REAL_NUMBER
wm = TextWatermark(wm_mode=wm_mode)
# 2.Choose a watermark template
wm.set_tpl_type(tpl_type=WMTemplateType.HOMOGRAPH_NUMBERS)
# 3.Set the maximum value of the watermark string
wm_max = '9'*9
wm.set_wm_max(wm_max=wm_max)
# 4.Set the text to be watermarked
wm.set_text_file(path=os.path.abspath('../tests/text/1.txt'))
# 5.Insert watermark string to text
wm_str = '123456789'
wm_text = wm.insert_watermark(wm_str=wm_str)
print(wm_text)
##############################################################
# Save the parameters to retrieve the watermark
params = wm.export_params()
# retrieve the watermark
wm_out_str = TextWatermark.retrieve_watermark(wm_text=wm_text, params=params)
assert wm_out_str == wm_str
更多参见:https://textwatermark.jd.army/usage/
找回水印 本库内置了一些的简单的方法去找回水印信息,但只适合水印信息没有任何变化的文本。因为文本可能会在复制粘贴中丢失信息、信息被改造(譬如HTML标签的表示发生变化),或因截屏、屏摄变成图片无法自动找回信息。此时就需要人工分析判断来还原水印信息。 譬如上文通过 FONT_COLOR 水印模板生成的含有水印文本图片,就需要我们在ps中通过调整曲线来人工判断和还原水印信息:10010000011000100000101000110000111
再通过调用还原命令即可解析出水印信息。
$ textwatermark -v retrieve -b 10010000011000100000101000110000111 -p '{"tpl_type": "FONT_COLOR", "confusables_chars": [], "confusables_chars_key": "black4", "wm_base": 2, "method": 3, "wm_mode": 5, "wm_len": 35, "wm_loop": false, "start_at": 0, "version": "0.1.2"}'
The retrieved watermark is: 123456
结束语 本库没有使用唯一的某一种模板,就是希望建立一种通用型文本水印解决方案来给开发者更多的选择。甚至开发者可以摒弃现有模板,去自定义一种自己独特的模板,以便水印有更强的隐蔽性和强壮性(可参考:https://textwatermark.jd.army/usage/#2)。 最后,希望本库能得到更多的开源力量参与和建议,多谢! 参考: DBIR 2022:https://www.verizon.com/business/resources/T27b/reports/dbir/2022-data-breach-investigations-report-dbir.pdf#pdfjs.action=download
马斯克在特斯拉总部抓内鬼:https://www.163.com/dy/article/HS1OQ0O2055302A2.html textwatermark pypi:https://pypi.org/project/textwatermark/ textwatermark website&docs:https://textwatermark.jd.army/ textwatermark github:https://github.com/JDArmy/TextWatermark 点击原文链接跳转到项目Github🔽 原文始发于微信公众号(梦之光芒的电子梦):谁泄露的公司内部机密?TextWatermark助你抓出内鬼!
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论