CN116028901A - 一种嵌入水印的方法、装置、设备及存储介质 - Google Patents
一种嵌入水印的方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116028901A CN116028901A CN202211667235.7A CN202211667235A CN116028901A CN 116028901 A CN116028901 A CN 116028901A CN 202211667235 A CN202211667235 A CN 202211667235A CN 116028901 A CN116028901 A CN 116028901A
- Authority
- CN
- China
- Prior art keywords
- watermark
- bright
- dark
- bit
- embedding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Editing Of Facsimile Originals (AREA)
- Image Processing (AREA)
Abstract
本申请实施例提供一种嵌入水印的方法、装置、设备及存储介质,该方法包括根据登录用户的身份标识信息生成第一水印内容;根据第一水印内容构建水印DOM元素,以在对象中嵌入明水印,并基于第一水印内容在对象中嵌入暗水印;监听对象中包含的明水印的DOM元素的状态,若监听到对象中的DOM元素的状态发生改变或DOM元素的CSS样式发生改变,则重新基于身份标识信息生成明水印并嵌入到对象中。由于同时嵌入明水印和暗水印,并且在明水印的DOM元素的状态或CSS样式发生改变时重新嵌入明水印,可以充分保障水印的安全性,并且由于嵌入了暗水印,即使明水印被篡改也能至少保证存在暗水印实现溯源,从而可以提高水印的可靠性。
Description
技术领域
本申请涉及数据安全技术领域,特别涉及一种嵌入水印的方法、装置、设备及存储介质。
背景技术
在大数据环境下,因环境、人为等多种因素导致的数据泄露往往是不可避免的。因此现实中,当捕获到被泄露给第三方的数据后,能够通过分析非法数据的相关特性追查到泄露源和相关责任人,从而实施补救与追责具有重要意义。为实现数据的可追溯性,通常采用数字水印技术。
当前,越来越多的企业及个人通过自建网站来分享或发布各类信息,网页已成为最通用的信息传递方式之一,其安全性也受到越来越多的重视。其中,前端水印因其响应速度快且能减轻服务端压力的优势成为研究重点。目前,许多前端水印内容是相对固定的,通过添加相关logo用以申明版权,然而很多时候,给页面加水印的目的并不是申明版权,而是为了实现溯源,此时需要根据网页访问对象的各种身份标识动态生成唯一性的水印内容。
此外,现有前端水印方案通常基于canvas和js实现,每次添加水印都要经过canvas渲染,费时费力。并且访问对象可以通过浏览器控制台删除或破坏水印代码、篡改水印信息。尽管部分方案通过监听器增加了水印检活功能,但是针对监听器失效以及一些CSS样式攻击场景仍然无能为力。
发明内容
本申请实施例提供一种嵌入水印的方法、装置、设备及存储介质,用于提高数字水印的安全性。
第一方面,本申请实施例提供一种嵌入水印的方法,包括:
根据登录用户的身份标识信息生成第一水印内容;
根据所述第一水印内容构建水印DOM元素,以在对象中嵌入明水印,并基于所述第一水印内容在所述对象中嵌入暗水印;
监听所述对象中包含的明水印的DOM元素的状态,若监听到所述对象中的所述DOM元素的状态发生改变或所述DOM元素的CSS样式发生改变,则重新基于所述身份标识信息生成明水印并嵌入到所述对象中。
在一些实施例中,所述根据所述第一水印内容构建水印DOM元素,包括:
根据所述第一水印内容配置SVG对象,并将配置好的SVG对象转换为Base64图片;
创建div节点,将所述Base64图片填充至所述div节点以构建所述水印DOM元素。
在一些实施例中,所述基于所述第一水印内容在所述对象中嵌入暗水印,包括:
将所述第一水印内容编码为比特流序列,并将所述比特流序列作为第一水印序列;
将所述对象分解为至少两个像素组,对所述至少两个像素组应用Ballot变换得到Bat系数;
基于水印序列的比特位和Bat系数的比特位之间的映射关系,确定所述第一水印序列各比特位对应的Bat系数的比特位;其中,所述映射关系是基于遗传算法确定的;
针对所述第一水印序列的任意一个比特位,基于所述第一水印序列的任意一个比特位的值以及对应的Bat系数的比特位的值,对所述对应的Bat系数的比特位上的值进行修改;
对修改后的Bat系数进行反向Ballot变换,以完成在所述对象中嵌入所述暗水印。
在一些实施例中,所述CSS样式是利用Element.getComputedStyle函数获取的。
第二方面,本申请实施例提供一种验证水印的方法,包括:
获取对象中的明水印以及暗水印,其中所述明水印和所述暗水印是基于用户身份标识信息生成的;
将所述明水印和所述暗水印进行比较;
基于比较结果确定未被篡改的水印。
在一些实施例中,所述基于比较结果确定未被篡改的水印,包括:
若所述明水印中的身份标识信息和所述暗水印中的身份标识信息一致,则确定所述明水印和所述暗水印均未被篡改,
若所述明水印中的身份标识信息和所述暗水印中的身份标识信息不一致,则确定所述明水印被篡改。
第三方面,本申请实施例提供一种嵌入水印的装置,包括:
生成单元,用于根据登录用户的身份标识信息生成第一水印内容;
嵌入单元,用于根据所述第一水印内容构建水印DOM元素,以在对象中嵌入明水印,并基于所述第一水印内容在所述对象中嵌入暗水印;
监听单元,用于监听所述对象中包含的明水印的DOM元素的状态,若监听到所述对象中的所述DOM元素的状态发生改变或所述DOM元素的CSS样式发生改变,则重新基于所述身份标识信息生成明水印并嵌入到所述对象中。
在一些实施例中,所述嵌入单元具体用于:
根据所述第一水印内容配置SVG对象,并将配置好的SVG对象转换为Base64图片;
创建div节点,将所述Base64图片填充至所述div节点以构建所述水印DOM元素。
在一些实施例中,所述嵌入单元具体用于:
将所述第一水印内容编码为比特流序列,并将所述比特流序列作为第一水印序列;
将所述对象分解为至少两个像素组,对所述至少两个像素组应用Ballot变换得到Bat系数;
基于水印序列的比特位和Bat系数的比特位之间的映射关系,确定所述第一水印序列各比特位对应的Bat系数的比特位;其中,所述映射关系是基于遗传算法确定的;
针对所述第一水印序列的任意一个比特位,基于所述第一水印序列的任意一个比特位的值以及对应的Bat系数的比特位的值,对所述对应的Bat系数的比特位上的值进行修改;
对修改后的Bat系数进行反向Ballot变换,以完成在所述对象中嵌入所述暗水印。
在一些实施例中,所述CSS样式是利用Element.getComputedStyle函数获取的。
第四方面,本申请实施例提供一种验证水印的装置,包括:
获取单元,用于获取对象中的明水印以及暗水印,其中所述明水印和所述暗水印是基于用户身份标识信息生成的;
比较单元,用于将所述明水印和所述暗水印进行比较;
确定单元,用于基于比较结果确定未被篡改的水印。
在一些实施例中,所述确定单元具体用于:
若所述明水印中的身份标识信息和所述暗水印中的身份标识信息一致,则确定所述明水印和所述暗水印均未被篡改,
若所述明水印中的身份标识信息和所述暗水印中的身份标识信息不一致,则确定所述明水印被篡改。
第五方面,本申请实施例提供一种电子设备,包括存储器和处理器;
所述存储器用于存储指令;
所述处理器用于执行所述存储器存储的指令,当所述处理器执行所述存储器存储的指令时,使得所述电子设备执行如第一方面和第二方面任一项所述的方法。
第六方面,本申请实施例还提供一种计算机存储介质,所述计算机存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行如第一方面和第二方面任一项所述的方法。
本申请实施例提供一种嵌入水印的方法、装置、设备及存储介质,该方法包括根据登录用户的身份标识信息生成第一水印内容;根据第一水印内容构建水印DOM元素,以在对象中嵌入明水印,并基于第一水印内容在对象中嵌入暗水印;监听对象中包含的明水印的DOM元素的状态,若监听到对象中的DOM元素的状态发生改变或DOM元素的CSS样式发生改变,则重新基于身份标识信息生成明水印并嵌入到对象中。由于同时嵌入明水印和暗水印,并且在明水印的DOM元素的状态或CSS样式发生改变时重新嵌入明水印,可以充分保障水印的安全性,并且由于嵌入了暗水印,即使明水印被篡改也能至少保证存在暗水印实现溯源,从而可以提高水印的可靠性。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种嵌入水印的方法的流程示意图;
图2为本申请实施例提供的一种验证水印的方法的流程示意图;
图3为本申请实施例提供的一种嵌入水印的装置的结构示意图;
图4为本申请实施例提供的一种验证水印的装置的结构示意图;
图5为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
在大数据环境下,数字水印的安全性需要得到充分保障,因此本申请提供了一种明暗双重水印的嵌入以及验证的方法,明暗双重水印的嵌入可以提高数字水印的安全性,并且可以充分利用明水印与暗水印的震慑性与隐蔽性优势,解决各种水印攻击场景下的水印篡改问题。
如图1所示,为本申请实施例提供的一种嵌入水印的方法,该方法包括如下步骤:
S101、根据登录用户的身份标识信息生成第一水印内容;
S102、根据第一水印内容构建水印DOM元素,以在对象中嵌入明水印,并基于第一水印内容在对象中嵌入暗水印;
S103、监听对象中包含的明水印的DOM元素的状态,若监听到对象中的DOM元素的状态发生改变或DOM元素的CSS样式发生改变,则重新基于身份标识信息生成明水印并嵌入到对象中。
本申请实施例提供的嵌入水印的方法,由于同时嵌入明水印和暗水印,并且在明水印的DOM元素的状态或CSS样式发生改变时重新嵌入明水印,可以充分保障水印的安全性,并且由于嵌入了暗水印,即使明水印被篡改也能至少保证存在暗水印实现溯源,从而可以提高水印的可靠性。
值得说明的是,本申请中的“对象”指的是可以嵌入水印的任何对象,例如,对于明水印来说,此处的对象可以指代的是网页,也就是说,明水印是嵌入到整个网页中的;对于暗水印来说,此处的对象可以指代的是网页里的图像,也就是说,暗水印是嵌入到网页里的图像中的。
在具体实施中,若有用户登录网页进行内容查看,首先接收用户对目标页面的访问请求,请求中包含用户的身份标识信息,例如登录所需的用户姓名、身份ID、手机号码、IP地址和时间戳等,然后将上述用户的身份标识信息通过API从服务器端传到网页前端,动态生成具有唯一性的第一水印内容W1。
考虑到水印添加效率及浏览器兼容性,本申请实施例基于svg矢量图形对象实现水印添加,具体的,根据第一水印内容构建水印DOM元素,可以包括如下过程:
根据第一水印内容配置SVG对象,并将配置好的SVG对象转换为Base64图片,其中,SVG对象的属性可以包括水印元素对齐方式(text-anchor)、水印元素颜色(stroke)、水印元素透明度(stroke-opacity)、水印元素字体宽度(font-weight)、水印元素填充方式(fill)、水印元素旋转角度(transform)、水印元素字体大小(font-size)等;
创建div节点,将Base64图片填充至div节点以构建水印DOM元素,设置水印DOM元素的背景(background)、Z指数(zIndex)、定位(position)、宽度与高度(width,height)、点击穿透(pointer-events)等属性样式。
接下来还可以将上述水印DOM元素插入到网页body上,并使用Element.attachShadow({mode:'closed'})将水印DOM元素进行封装,提高web水印的隐蔽性。
在具体实施中,本申请实施例监听对象中包含的明水印的DOM元素的状态,若监听到对象中的DOM元素的状态发生改变或DOM元素的CSS样式发生改变,则重新基于身份标识信息生成明水印并嵌入到对象中。
具体的,使用MutationObserver监听上述div节点的DOM元素结构变化、属性变化、内容变化,一旦监听到DOM元素被修改或者删除,就立即重新插入一个。但是,使用CSSselector可以命中水印元素并设置其为不可见,这种CSS攻击并不会触发MutationObserver,因此无法监听。对此本申请利用Element.getComputedStyle函数获取上述水印元素的CSS计算样式,检查其是否被修改并重新绘制水印。
本申请在监听明水印的过程中,也会同步对网页中的图像添加暗水印。
在具体实施中,基于第一水印内容在对象中嵌入暗水印,可以包括如下步骤:
将第一水印内容编码为比特流序列,并将比特流序列作为第一水印序列;例如将第一水印内容编码为M[]=[10 01 11 00],那么就将该M[]=[10 01 11 00]作为第一水印序列。
将对象分解为至少两个像素组,对至少两个像素组应用Ballot变换得到Bat系数;例如,将载体图像S分解成m个不重叠的像素组并应用Ballot变换得到BaT系数,假设载体图像S的4个连续像素为[224 107 125 87],将其以m=2进行分解,得到[[224 107],[12587]]的像素组,对该像素组应用Ballot变换得到BaT系数,即Ballot[[224 107],[125 87]]=[[224 2×224+107],[1252×125+87]]=[[224 555],[125 337]],假设以有效载荷2bpp将水印比特嵌入,则需从每组BaT系数中提取2个LSB(即最低有效位),即构成待修改系数组Mo[r×c×2],其中r和c分别是载体图像S的行数和列数,即BaT系数组[[224555],[125337]]所构成的待修改系数组Mo[]=[00,11,01,01]。
基于水印序列的比特位和Bat系数的比特位之间的映射关系,确定第一水印序列各比特位对应的Bat系数的比特位;其中,映射关系是基于遗传算法确定的;这里的映射关系指的是Mo[]和M[]数组的对应关系,这个对应关系是根据遗传算法确定出的最优解,具体表现为一个k位向量,比如最优解是一个8位向量,随机的8位向量为"46 25 31 78",则表示M比特流的任意8比特块中的每一个的第4比特替换Mo序列的相应8比特块中的每一个的第1比特,类似地,M比特流的每个8比特块的第6比特替换Mo比特流的每个8比特块的第2比特,依此类推。
针对第一水印序列的任意一个比特位,基于第一水印序列的任意一个比特位的值以及对应的Bat系数的比特位的值,对对应的Bat系数的比特位上的值进行修改;也就是使用索引值映射机制,以Mo[]=[00,11,01,01],M[]=[10 01 1100]为例:Mo的第1比特'0'被M的第4比特'1'替换,Mo的第2比特'0'被M的第6比特'1'替换,最终生成Mo被替换后的序列为[11,01,01,00],替换操作完成后得到修改后的BaT系数组为[[227 553],[125 336]],这个过程使得数据提取过程几乎不可能被入侵者发现。
对修改后的Bat系数进行反向Ballot变换,以完成在对象中嵌入暗水印。针对替换操作完成后得到的修改后BaT系数组应用反向Ballot变换获得水印嵌入后的图像像素值,生成兼具安全性与视觉质量的水印图像S′。以修改后BaT系数组[[227 553],[125 336]]为例,IBallot[[227 553],[125 336]]=[[227553-2×227],[125 336-2×125]]=[[22799],[125 86]],即暗水印图像S′的4个连续像素为[227 99 125 86]。
对暗水印的提取其实就是暗水印的嵌入的反向过程,将水印图像S′分解成1×m的不重叠像素组,并对其应用Ballot变换得到BaT系数,从每个BaT系数中提取2比特位,以构成数组M′[],使用上述确定的最佳k位向量(以“4625 31 78”为例)进行反向索引值映射(RIVM),即M′[]的第1位就是水印序列的第4位,M′[]的第2位就是水印序列的第6位,以此类推,得到完整的水印信息比特流并反编码,这样便可以提取到暗水印的信息了。
本申请实施例还提供一种验证水印的方法,如图2所示,包括如下步骤:
S201、获取对象中的明水印以及暗水印,其中明水印和暗水印是基于用户身份标识信息生成的;
S202、将明水印和暗水印进行比较;
S203、基于比较结果确定未被篡改的水印。
当监听器及监控组件未被触发时,并不能排除监听器失效或监听器避开等攻击所造成的水印篡改,此时需要对明水印进行验证。具体的,若明水印中的身份标识信息和暗水印中的身份标识信息一致,则确定明水印和暗水印均未被篡改,若明水印中的身份标识信息和暗水印中的身份标识信息不一致,则确定明水印被篡改。
本申请通过设置明暗双重水印,然后对明水印和暗水印的水印信息进行验证,可以保证明暗水印至少一方是有效的,为网页数据安全提供双重验证保障。
相对于现有技术而言,本申请具备如下优点:
针对Mutation Observer监听器无法监听的水印元素CSS样式攻击,利用Element.getComputedStyle函数获取水印节点的CSS计算样式并进行比对监控、水印复原,可以解决因现有监听器的监听局限性而导致的水印篡改问题。
针对因各种原因导致的监听器失效的攻击场景,通过在监听阶段同步向网页中的图像元素添加不可见暗水印来确保明暗水印至少一方的有效性,这种明暗水印双重验证机制实现了Web网页不同数据元素的多重安全保障,可以解决因监听器失效而导致的明水印不可信问题。
首次使用Ballot变换实现图像数据水印添加,与DCT、DFT、DWT和IWT变换相比,充分利用Ballot变换基于整数计算及变换矩阵的二进制因式分解的优势,降低了算法复杂度,提升了运算效率,适用于网页中多尺寸、大尺寸的图像数据。
引入索引值映射机制生成水印比特流与图像Ballot系数的索引映射序列,置乱水印比特流与图像Ballot系数的嵌入对应关系,依据所述的索引值映射序列修改图像特定位置完成水印嵌入,增加了攻击者破译提取过程的难度,提升了水印安全性。
基于最优k位向量确定水印比特流与待修改BaT系数的对应关系,保证水印安全性的同时兼顾最终生成的水印图像具有良好的视觉效果。
提供了搜索构建特定索引值映射序列的优化方案,为了保证在提高水印安全性的同时使得根据所述索引值映射系列所生成的水印图像具有最佳的视觉效果、平衡水印的视觉质量、容量与安全性,需要寻找最优索引值映射序列,使用迭代遗传算法来解决这个优化问题能够降低搜索空间,将NP问题转化为P问题。
本申请针对网页内容使用明暗水印双重添加及验证机制,保证水印信息在各种攻击场景下的有效性。明水印的添加能够起到威慑作用,针对修改DOM元素、修改CSS样式等水印攻击行为实行监控,一旦检测到水印元素变化就重新绘制水印;针对监测器无法监测或监测失效的场景,暗水印的添加能够辅助保证至少一种水印的有效性。在实践过程中,本申请实施例提供的方法还可在多个场景下实施并运用,如下列举:
1、共享系统数据溯源
在安全数据中台项目中,一份数据资源通常并非与单独的用户绑定,而是同时支持多名用户查看,伴随着业务部门之间的数据交换、数据分析、外包数据分发等场景,且资源中通常涉及某些含机密信息或重要信息网页数据,需要在每个用户查看该项资源的时候添加各个用户特有的水印,并且保证该水印真实有效,从而在资源外流的时候可以追究到至少一名责任人。
2、电商平台订单系统敏感数据防泄漏
当前,电子商务行业发展迅速,基于电商平台的线上购物已成为“常态”,电商平台中的订单系统包含大量个人隐私信息,如:姓名、手机号、收货地址,身份证号等敏感数据。另一方面,由于电商业务涉及的环节众多,从业人员流动性大,通过内部人员泄露数据的比例接近50%。因此,实现一个针对订单系统的安全水印机制,有助于防止因内部人员截屏拍照、批量导出等引发的敏感数据泄露,确保用户隐私安全与平台安全运营。
基于相同的构思,本申请实施例还提供一种嵌入水印的装置,该装置的实施可以参见上述方法的实施,重复之处不再赘述。如图3所示,该装置包括:
生成单元301,用于根据登录用户的身份标识信息生成第一水印内容;
嵌入单元302,用于根据第一水印内容构建水印DOM元素,以在对象中嵌入明水印,并基于第一水印内容在对象中嵌入暗水印;
监听单元303,用于监听对象中包含的明水印的DOM元素的状态,若监听到对象中的DOM元素的状态发生改变或DOM元素的CSS样式发生改变,则重新基于身份标识信息生成明水印并嵌入到对象中。
在一些实施例中,嵌入单元302具体用于:
根据第一水印内容配置SVG对象,并将配置好的SVG对象转换为Base64图片;
创建div节点,将Base64图片填充至div节点以构建水印DOM元素。
在一些实施例中,嵌入单元302具体用于:
将第一水印内容编码为比特流序列,并将比特流序列作为第一水印序列;
将对象分解为至少两个像素组,对至少两个像素组应用Ballot变换得到Bat系数;
基于水印序列的比特位和Bat系数的比特位之间的映射关系,确定第一水印序列各比特位对应的Bat系数的比特位;其中,映射关系是基于遗传算法确定的;
针对第一水印序列的任意一个比特位,基于第一水印序列的任意一个比特位的值以及对应的Bat系数的比特位的值,对对应的Bat系数的比特位上的值进行修改;
对修改后的Bat系数进行反向Ballot变换,以完成在对象中嵌入暗水印。
在一些实施例中,CSS样式是利用Element.getComputedStyle函数获取的。
基于相同的构思,本申请实施例还提供一种验证水印的装置,该装置的实施可以参见上述方法的实施,重复之处不再赘述。如图4所示,该装置包括:
获取单元401,用于获取对象中的明水印以及暗水印,其中明水印和暗水印是基于用户身份标识信息生成的;
比较单元402,用于将明水印和暗水印进行比较;
确定单元403,用于基于比较结果确定未被篡改的水印。
在一些实施例中,确定单元403具体用于:
若明水印中的身份标识信息和暗水印中的身份标识信息一致,则确定明水印和暗水印均未被篡改,若明水印中的身份标识信息和暗水印中的身份标识信息不一致,则确定明水印被篡改。
基于相同的构思,本申请实施例还提供一种电子设备,该电子设备的实施可以参见上述方法的实施,重复之处不再赘述。如图5所示,该电子设备包括存储器501和处理器502;
存储器501用于存储指令;
处理器502用于执行存储器501存储的指令,当处理器502执行存储器501存储的指令时,使得电子设备执行上述任一项的方法。
进一步的,本申请实施例还提供一种计算机存储介质,计算机存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一项的方法。
本申请实施例提供一种嵌入水印的方法、装置、设备及存储介质,该方法包括根据登录用户的身份标识信息生成第一水印内容;根据第一水印内容构建水印DOM元素,以在对象中嵌入明水印,并基于第一水印内容在对象中嵌入暗水印;监听对象中包含的明水印的DOM元素的状态,若监听到对象中的DOM元素的状态发生改变或DOM元素的CSS样式发生改变,则重新基于身份标识信息生成明水印并嵌入到对象中。由于同时嵌入明水印和暗水印,并且在明水印的DOM元素的状态或CSS样式发生改变时重新嵌入明水印,可以充分保障水印的安全性,并且由于嵌入了暗水印,即使明水印被篡改也能至少保证存在暗水印实现溯源,从而可以提高水印的可靠性。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (14)
1.一种嵌入水印的方法,其特征在于,包括:
根据登录用户的身份标识信息生成第一水印内容;
根据所述第一水印内容构建水印DOM元素,以在对象中嵌入明水印,并基于所述第一水印内容在所述对象中嵌入暗水印;
监听所述对象中包含的明水印的DOM元素的状态,若监听到所述对象中的所述DOM元素的状态发生改变或所述DOM元素的CSS样式发生改变,则重新基于所述身份标识信息生成明水印并嵌入到所述对象中。
2.如权利要求1所述的方法,其特征在于,所述根据所述第一水印内容构建水印DOM元素,包括:
根据所述第一水印内容配置SVG对象,并将配置好的SVG对象转换为Base64图片;
创建div节点,将所述Base64图片填充至所述div节点以构建所述水印DOM元素。
3.如权利要求1所述的方法,其特征在于,所述基于所述第一水印内容在所述对象中嵌入暗水印,包括:
将所述第一水印内容编码为比特流序列,并将所述比特流序列作为第一水印序列;
将所述对象分解为至少两个像素组,对所述至少两个像素组应用Ballot变换得到Bat系数;
基于水印序列的比特位和Bat系数的比特位之间的映射关系,确定所述第一水印序列各比特位对应的Bat系数的比特位;其中,所述映射关系是基于遗传算法确定的;
针对所述第一水印序列的任意一个比特位,基于所述第一水印序列的任意一个比特位的值以及对应的Bat系数的比特位的值,对所述对应的Bat系数的比特位上的值进行修改;
对修改后的Bat系数进行反向Ballot变换,以完成在所述对象中嵌入所述暗水印。
4.如权利要求1所述的方法,其特征在于,所述CSS样式是利用Element.getComputedStyle函数获取的。
5.一种验证水印的方法,其特征在于,包括:
获取对象中的明水印以及暗水印,其中所述明水印和所述暗水印是基于用户身份标识信息生成的;
将所述明水印和所述暗水印进行比较;
基于比较结果确定未被篡改的水印。
6.如权利要求5所述的方法,其特征在于,所述基于比较结果确定未被篡改的水印,包括:
若所述明水印中的身份标识信息和所述暗水印中的身份标识信息一致,则确定所述明水印和所述暗水印均未被篡改,
若所述明水印中的身份标识信息和所述暗水印中的身份标识信息不一致,则确定所述明水印被篡改。
7.一种嵌入水印的装置,其特征在于,包括:
生成单元,用于根据登录用户的身份标识信息生成第一水印内容;
嵌入单元,用于根据所述第一水印内容构建水印DOM元素,以在对象中嵌入明水印,并基于所述第一水印内容在所述对象中嵌入暗水印;
监听单元,用于监听所述对象中包含的明水印的DOM元素的状态,若监听到所述对象中的所述DOM元素的状态发生改变或所述DOM元素的CSS样式发生改变,则重新基于所述身份标识信息生成明水印并嵌入到所述对象中。
8.如权利要求7所述的装置,其特征在于,所述嵌入单元具体用于:
根据所述第一水印内容配置SVG对象,并将配置好的SVG对象转换为Base64图片;
创建div节点,将所述Base64图片填充至所述div节点以构建所述水印DOM元素。
9.如权利要求7所述的装置,其特征在于,所述嵌入单元具体用于:
将所述第一水印内容编码为比特流序列,并将所述比特流序列作为第一水印序列;
将所述对象分解为至少两个像素组,对所述至少两个像素组应用Ballot变换得到Bat系数;
基于水印序列的比特位和Bat系数的比特位之间的映射关系,确定所述第一水印序列各比特位对应的Bat系数的比特位;其中,所述映射关系是基于遗传算法确定的;
针对所述第一水印序列的任意一个比特位,基于所述第一水印序列的任意一个比特位的值以及对应的Bat系数的比特位的值,对所述对应的Bat系数的比特位上的值进行修改;
对修改后的Bat系数进行反向Ballot变换,以完成在所述对象中嵌入所述暗水印。
10.如权利要求7所述的装置,其特征在于,所述CSS样式是利用Element.getComputedStyle函数获取的。
11.一种验证水印的装置,其特征在于,包括:
获取单元,用于获取对象中的明水印以及暗水印,其中所述明水印和所述暗水印是基于用户身份标识信息生成的;
比较单元,用于将所述明水印和所述暗水印进行比较;
确定单元,用于基于比较结果确定未被篡改的水印。
12.如权利要求11所述的装置,其特征在于,所述确定单元具体用于:
若所述明水印中的身份标识信息和所述暗水印中的身份标识信息一致,则确定所述明水印和所述暗水印均未被篡改,
若所述明水印中的身份标识信息和所述暗水印中的身份标识信息不一致,则确定所述明水印被篡改。
13.一种电子设备,其特征在于,包括存储器和处理器;
所述存储器用于存储指令;
所述处理器用于执行所述存储器存储的指令,当所述处理器执行所述存储器存储的指令时,使得所述电子设备执行如权利要求1-4和5-6任一项所述的方法。
14.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行如权利要求1-4和5-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211667235.7A CN116028901A (zh) | 2022-12-23 | 2022-12-23 | 一种嵌入水印的方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211667235.7A CN116028901A (zh) | 2022-12-23 | 2022-12-23 | 一种嵌入水印的方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116028901A true CN116028901A (zh) | 2023-04-28 |
Family
ID=86072127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211667235.7A Pending CN116028901A (zh) | 2022-12-23 | 2022-12-23 | 一种嵌入水印的方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116028901A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117076003A (zh) * | 2023-10-13 | 2023-11-17 | 深圳竹云科技股份有限公司 | 生成应用页面水印的方法、装置、计算机设备 |
-
2022
- 2022-12-23 CN CN202211667235.7A patent/CN116028901A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117076003A (zh) * | 2023-10-13 | 2023-11-17 | 深圳竹云科技股份有限公司 | 生成应用页面水印的方法、装置、计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105577684B (zh) | 防爬虫抓取的方法、服务端、客户端和系统 | |
Abu-Marie et al. | Image Based Steganography Using Truth Table Based and Determinate Array on RGB Indicator. | |
US20160253772A1 (en) | Secure content and document watermarking | |
Kamau | An enhanced least significant bit steganographic method for information hiding | |
US9928352B2 (en) | System and method for creating, processing, and distributing images that serve as portals enabling communication with persons who have interacted with the images | |
CN110348182A (zh) | 一种网页文档水印嵌入的方法和装置 | |
Gugelmann et al. | Screen watermarking for data theft investigation and attribution | |
CN108881230B (zh) | 一种政务大数据的安全传输方法及装置 | |
US20220084063A1 (en) | Dynamic machine-readable codes | |
CN113486406A (zh) | 一种电子签名保护还原方法、系统、电子设备及存储介质 | |
CN116028901A (zh) | 一种嵌入水印的方法、装置、设备及存储介质 | |
Yari et al. | An overview and computer forensic challenges in image steganography | |
Al-Otum et al. | Copyright protection of color images for android-based smartphones using watermarking with quick-response code | |
Memon et al. | Dual watermarking of CT scan medical images for content authentication and copyright protection | |
Fei et al. | A reversible watermark scheme for 2D vector map based on reversible contrast mapping | |
CN116702103A (zh) | 数据库水印处理方法、数据库水印溯源方法及装置 | |
CN116305294A (zh) | 数据泄露溯源方法、装置、电子设备及存储介质 | |
Sasikaladevi et al. | RIGID-reversible lightweight, high payload semantically secured e-record hiding technique for smart city applications using pseudo-random matrices | |
CN107085689B (zh) | 一种在Flash中对图片资源进行加密保护的方法及装置 | |
Rastogi et al. | Implementation of digital watermarking technique to secure IPR of web application code | |
Jani Anbarasi et al. | Robust watermarking scheme using Weber Law for 3D mesh models | |
Soualmi et al. | Toward a secure and robust medical image watermarking in untrusted environment | |
US20220351323A1 (en) | Steganographic techniques for tracking video access events | |
CN114070950B (zh) | 图像处理方法及相关装置、设备 | |
CN114385984B (zh) | 一种应用溯源管理方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |