基于docx格式文档的水印嵌入和提取方法与流程

文档序号:30449759发布日期:2022-06-18 01:36阅读:280来源:国知局
基于docx格式文档的水印嵌入和提取方法与流程

1.本发明涉及数字水印技术领域,特别涉及一种基于docx格式文档的水印嵌入和提取方法。


背景技术:

2.随着互联网与计算机技术的发展,越来越多的人通过网络传递重要消息、进行电子商务往来、以及发布个人作品。信息数字化、网络化带给人们生活及工作便利的同时,也带来了一系列的安全问题。我们可能遇到个人隐私遭遇泄露、作品版权产生纠纷或是传递的信息被第三方非法篡改等状况。信息隐藏作为信息安全保护的一种重要手段应运而生,其研究的是如何在多媒体载体中嵌入秘密消息,使其不可感知,难以被第三方察觉。信息隐藏根据其嵌入目的的不同可以分为隐写术和数字水印技术。
3.数字水印作为信息隐藏的一个重要分支,在多媒体数字产品版权保护、恶意篡改、非法复制等方面有着重要应用。随着互联网的发展与普及,越来越多的信息安全问题被暴露出来。有些心怀恶意的个人和团体在没有得到任何授权的情况下对互联网上传输的多媒体数字产品进行非法拷贝、恶意篡改甚至非法传播。诸多安全问题的出现加速了数字水印的发展。数字水印研究的是将一些标识版权信息的水印嵌入多媒体数字产品中,当发生版权纠纷问题时,通过提取出里面的水印信息验证版权所有人,从而达到保护数字产品版权的目的。
4.据不完全统计,互联网上约80%的信息都是由文本载体承载的,如我们常用的word、ppt、excel、txt等等,得益于microsoft office办公软件的易编辑性、广泛性和易传播性,使得基于ooxml格式的文档占据了很大一部分,ooxml(全称microsoft office open xml)是微软公司推出的一种新的文件格式,microsoft office 2007及以上版本的文档都使用ooxml格式保存文档,它结合了xml技术及zip压缩技术,具有很多优势。它对文件进行压缩,减少了存储文件所需的磁盘容量;同时,ooxml文件格式也提供了许多新的信息隐藏方法,可以用于隐蔽通信、数字版权保护、身份认证以及内容完整性检验等。利用这类载体进行隐蔽通信、文档版权保护以及文档内容真实性认证等都具有重要意义。
5.针对ooxml文件进行水印嵌入的方案有很多。2015年,孙星明等人提出了一种基于冗余属性的ooxml格式文档的鲁棒水印算法[18],一共包含两个方法:一个方法是添加或删除修改标识符,另一个方法是是增加修改标识符或者文档变量。这两种方法具有较强的鲁棒性和较大的嵌入容量,能够抵抗“另存为”和“清除格式”等操作的攻击。该文中将水印信息嵌入到oox部件的冗余空间中,不会改变原始文档的格式和语义信息,但是它存在的缺点是无法抵抗“复制粘贴”操作攻击。2016年,xiang等人提出了一种通过替换主文档正文中的修订标识符的值来嵌入信息的方法[19],该方法通过替换ooxml格式文档主文档体中修订标识符值的最后三个字节的内容来嵌入水印信息,与此同时能够保持文档的正常属性。另外可以通过添加位置标记来跟踪嵌入信息的位置。为了保持文档内部数据的一致性,将新创建的值添加到其他相关部分中。实验结果表明,该方法不仅具有良好的不可见性和抗检
测能力,而且具有较高的安全性和较大的嵌入容量。但是此方法存在的未解决问题是无法抵抗“插入”和“删除”攻击操作,也无法定位文档中被修改内容的位置。


技术实现要素:

[0006]
本发明的目的在于提供一种基于docx格式文档的水印嵌入方法,能够方便的在docx格式的文件中嵌入水印。
[0007]
为实现以上目的,本发明采用的技术方案为:一种基于docx格式文档的水印嵌入方法,包括如下步骤:s110、将待嵌入的信息转换成十六进制的字符串;s120、将字符串中的每个字符处理成标识符,标识符的前六位为0,第七位表示位置,第八位为该字符;s130、解析待嵌入水印的docx格式文档,得到settings.xml文件;s140、向settings.xml文件中写入标识符完成水印嵌入;所述步骤s110~s140按顺序执行或按照步骤s130、步骤s110、步骤s120、步骤s140这样的顺序执行。
[0008]
与现有技术相比,本发明存在以下技术效果:对于docx格式文档而言,其属于ooxml格式的一个子类,通过在settings.xml文件中写入标识符完成水印嵌入,不会对word文档本身的内容和格式造成任何改动,具有很好的隐蔽性,并且,写入的标识符在经过拷贝、另存为、修改等操作后依然存在,具有很好的抗攻击性,非常可靠。
[0009]
本发明的目的在于提供一种基于docx格式文档的水印提取方法,能够快速、准确的提取docx格式文档中的水印。
[0010]
为实现以上目的,本发明采用的技术方案为:一种基于docx格式文档的水印提取方法,包括如下步骤:s210、解析待提取水印的docx格式文档,得到settings.xml文件;s220、读取settings.xml文件所有的w:rsid属性值得到多个标识符;s230、判断多个标识符前六位是否全为0,并剔除前六位不全为0的标识符;s240、根据保留的标识符的第七位字符对保留的标识符进行排序;s250、提取保留的标识符最后一位字符得到十六进制的字符串;s260、从字符串中提取所嵌入的信息。
[0011]
与现有技术相比,本发明存在以下技术效果:通过上述步骤,可以方便的从settings.xml文件中提取写入的标识符,未涉及复杂的算法,提取速度非常快,并且这种提取过程是确定的,提取得到的嵌入信息不会出错,准确率极高,非常可靠。
附图说明
[0012]
图1是本发明中水印嵌入流程图;图2是本发明中水印提取流程图。
具体实施方式
[0013]
下面结合图1至图2,对本发明做进一步详细叙述。
[0014]
参阅图1,本发明公开了一种基于docx格式文档的水印嵌入方法,包括如下步骤:s110、将待嵌入的信息转换成十六进制的字符串,一般来说,待嵌入的信息可以为版权信息、设备或人员信息,一般还需要对带嵌入的信息进行加密;s120、将字符串中的每个字符处理成标识符,标识符的前六位为0,第七位表示位置,第八位为该字符,之所以将前六位取0,是为了避免和settings.xml文件中已有的标识符发生冲突,用第七位来表示位置,是因
为settings.xml文件中的标识符会自动按照顺序进行排序,如果没有表示位置的第七位,会导致按顺序写入的标识符在settings.xml文件中顺序发生错乱,导致提取时无法解析正确的顺序;s130、解析待嵌入水印的docx格式文档,得到settings.xml文件,之所以选择在settings.xml文件中实现数字水印的嵌入,是因为该文件不会随着docx格式文档的拷贝、另存为、修改而发生改变;s140、向settings.xml文件中写入标识符完成水印嵌入;所述步骤s110~s140按顺序执行或按照步骤s130、步骤s110、步骤s120、步骤s140这样的顺序执行。对于docx格式文档而言,其属于ooxml格式的一个子类,通过在settings.xml文件中写入标识符完成水印嵌入,不会对word文档本身的内容和格式造成任何改动,具有很好的隐蔽性,并且,写入的标识符在经过拷贝、另存为、修改等操作后依然存在,具有很好的抗攻击性,非常可靠。
[0015]
需要注意的是,这里的步骤s120必须在执行步骤s110以后,而生成标识符即步骤s110+s120与解析得到settings.xml文件即步骤s130这两个大步骤是可以同时进行或先后进行,只需要保证执行步骤s140时,前面的步骤都已经执行完毕。
[0016]
进一步地,所述的步骤s120中,包括如下步骤:s121、记字符串由字符组合而成,n小于等于16;s122、针对每个字符,生成标识符,其中。举例来说,假设我们需要嵌入的字符串是“5da27bc910ef”,那么按照这个步骤我们生成了12个标识符如下:00000005,0000001d,0000002a,00000032,00000047,0000005b,0000006c,00000079,00000081,00000090,000000ae,000000bf。
[0017]
进一步地,所述的步骤s140中,还向document.xml文件中写入相同的标识符用于校验。document.xml文件中的标识符,可能随着另存为发生改变,但我们在原始的docx格式文档中的document.xml文件中写入相同的标识符,并且之后不对该docx格式文档进行修改,就可以保存这些标识符,这样做有两个好处,其一,可以进行校验,其二,可以通过待检测docx格式文档中的document.xml文件和settings.xml文件内标识符情况,判断该文档通过何种方式泄露的。
[0018]
进一步地,所述的步骤s140中,将标识符作为settings.xml文件w:rsid属性值写入settings.xml文件中,比如对于上述任一个标识符“0000006c”,其写入settings.xml文件中的语句为:《w:rsid w:val="0000006c"/》。所述的步骤s140中,将标识符作为document.xml文件中《w:p》标签中w:rsidr、w:rsidrpr或w:rsidp的属性值写入document.xml文件中,《w:p》标签描述的是段落,在document.xml文件中可能会出现多个,在实际嵌入时,我们对这三个属性值都进行写入,比如对于前面段落中的前3个标识符,写入document.xml文件中的语句为:《w:p w:rsidr="00000005" w:rsidrpr="0000001d" w:rsidp="0000002a"》

《/w:p》。通过上述步骤,可以方便的将标识符写入document.xml文件和settings.xml文件中。
[0019]
参阅图2,本发明还公开了一种基于docx格式文档的水印提取方法,包括如下步骤:s210、解析待提取水印的docx格式文档,得到settings.xml文件;s220、读取settings.xml文件所有的w:rsid属性值得到多个标识符;s230、判断多个标识符前六位是
否全为0,并剔除前六位不全为0的标识符;s240、根据保留的标识符的第七位字符对保留的标识符进行排序;s250、提取保留的标识符最后一位字符得到十六进制的字符串;s260、从字符串中提取所嵌入的信息。通过上述步骤,可以方便的从settings.xml文件中提取写入的标识符,由于不涉及复杂的算法,所以提取速度非常快,并且这种提取过程是确定的,提取得到的嵌入信息不会出错,准确率极高,非常可靠。
[0020]
由于本案中生成的标识符前6位都是0,因此都排在settings.xml文件的前面,并且settings.xml文件中的标识符都是按顺序排列的,为了提高提取速度,本发明中优选地,所述的步骤s220和步骤s230中,按顺序读取w:rsid属性值,每读取一个w:rsid属性值就判断其前六位是否为0,若前六位全为0,则将该标识符保存并读取下一个w:rsid属性值,若前六位不全为0,则停止读取剩余的w:rsid属性值并执行步骤s240~步骤s260。通过这样处理,可以进一步提高嵌入信息的提取速度。
[0021]
本发明还公开了一种计算机可读存储介质和一种电子设备。其中,一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现前述的基于docx格式文档的水印嵌入方法或实现前述的基于docx格式文档的水印提取方法。一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述计算机程序时,实现前述的基于docx格式文档的水印嵌入方法或实现前述的基于docx格式文档的水印提取方法。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1