乐于分享
好东西不私藏

源码分享 | 盲水印

本文最后更新于2026-01-01,某些文章具有时效性,若有错误或已失效,请在下方留言或联系老夜

源码分享 | 盲水印

0、前言

    盲水印是一种将数字标记嵌入数字媒体的技术,无需原始文件即可嵌入,具有不可逆特性,无法被轻易删除。它主要作用于版权保护、数据追踪和防伪验证。实现方式分为空域、频域和变换域,空域适合隐蔽通信,但鲁棒性差;频域抗JPEG压缩能力强,但对镂空PNG支持不足;变换域适合高鲁棒性场景,但计算复杂度较高。本文以空域LSB算法实现盲水印webapi,验证了其在图片嵌入和解析中的效果。

1、概述

1.1 什么是盲水印

    盲水印(Blind Watermarking)指将数字签名或其他标记嵌入到图像、音频或视频等数字媒体中,以证明其来源或所有权。与传统的数字水印技术不同,盲水印是一种不可逆的过程,即使攻击者知道了嵌入的信息,也无法将其从图像或视频中删除    在盲水印技术中,嵌入信息时并不需要原始文件,在保留原始数据完整性的同时添加标记。这种方法可以防止未经授权使用和复制内容,并且可以帮助追踪侵犯版权行为。

    下图为数字图像处理领域中最为著名的“lena”图片

1.2 盲水印有什么作用

A:这个东西怎么证明是你的,写你名字了吗?

B:写了,你好好看

A:我怎么拿放大镜也看不到

B:要用特制眼镜才能看到

所以,盲水印有以下作用

1、版权保护:当数字作品被非法复制或盗用时,暗水印可以作为证据,证明原始版权所有者的身份。

2、数据追踪:在企业内部,暗水印可以用来追踪文档的流转路径,一旦发生泄露,可以通过暗水印信息找到责任人。

3防伪验证:暗水印可以作为验证文件真实性的依据,帮助识别伪造或篡改过的文件。

1.3 主要实现方式

提示词:盲水印 的三种实现方式,对比一下 频阈 空阈 变换域

1.4 案例

2、实现

    本文以空域水印为例,实现水印webapi

提示词如下:一、功能要求:1、使用LSB算法2、加完水印的图片颜色、大小没有明显变化(重要!)3、将处理方法封,封装方法包括:加文字盲水印、提取水印(不需要提取出字符串,只需要提取其中的水印图片)4、控制器返回图片base645、我不需要将过程图片存储6、健壮性要求,1)打上多个水印,2)在截图的情况下依然有效二、版本说明:1、我使用的是spring boot22、jdk版本1.8三、请给出完整的可执行代码,包括:1、controller2、工具类3、maven包

3、使用

3.1 加水印前

3.2 添加盲水印

    将图片文件导入接口,返回带盲水印的图片,水印文字内容为:仅用于报销。

    可以看到,打完水印的图片,肉眼不可见。

3.3 解析水印

    可以解析出水印文字

4、总结

1、空阈的水印鲁棒性差,容易被攻击

2、频域的水印对镂空的PNG图片支持不好

3、频域水印主要基于opencv实现

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 源码分享 | 盲水印
×
订阅图标按钮