CN106780280A - 数字水印加密方法及装置 - Google Patents
数字水印加密方法及装置 Download PDFInfo
- Publication number
- CN106780280A CN106780280A CN201611095829.XA CN201611095829A CN106780280A CN 106780280 A CN106780280 A CN 106780280A CN 201611095829 A CN201611095829 A CN 201611095829A CN 106780280 A CN106780280 A CN 106780280A
- Authority
- CN
- China
- Prior art keywords
- character
- digital watermarking
- file
- mark
- extracting
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0021—Image watermarking
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Editing Of Facsimile Originals (AREA)
- Storage Device Security (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种数字水印加密方法,所述数字水印加密方法包括以下步骤:将数字水印添加预设的标识字符,以对所述数字水印进行标识处理,其中,所述数字水印为第一进制格式;将标识处理后的所述数字水印进行第二进制格式转换,生成所述数字水印对应的第二进制格式的第一字符串;按照预设顺序依次提取所述第一字符串中的每一位字符,并根据每次提取的字符,依次对待加密文件中与提取的所述字符对应的节点执行相应处理,生成所述待加密文件对应的加密文件,其中,所述待加密文件包括多个节点。本发明还公开了一种数字水印加密装置。本发明提高了数字水印加密的可靠性。
Description
技术领域
本发明涉及数字水印技术领域,尤其涉及一种数字水印加密方法及装置。
背景技术
数字水印技术是将一些标识信息(即数字水印)嵌入数字载体(包括多媒体、文档、软件等)当中的技术,常用于保护信息安全或者信息隐藏,因此得到广泛应用。在对数字载体进行数字水印加密时,一般是将数字水印直接嵌入到数字载体当中,这会占用数字载体的一定存储空间,而当数字载体的可用存储空间不足时,嵌入数字水印会影响数字载体的正常使用,因此,数字水印加密的可靠性并非很高。
发明内容
本发明的主要目的在于提出一种数字水印加密方法及装置,旨在解决现有数字水印加密的可靠性不高的技术问题。
为实现上述目的,本发明提供的一种数字水印加密方法,所述数字水印加密方法包括以下步骤:
将数字水印添加预设的标识字符,以对所述数字水印进行标识处理,其中,所述数字水印为第一进制格式;
将标识处理后的所述数字水印进行第二进制格式转换,生成所述数字水印对应的第二进制格式的第一字符串;
按照预设顺序依次提取所述第一字符串中的每一位字符,并根据每次提取的字符,依次对待加密文件中与提取的所述字符对应的节点执行相应处理,生成所述待加密文件对应的加密文件,其中,所述待加密文件包括多个节点。
优选地,所述将数字水印添加预设的标识字符的步骤包括:
在所述数字水印的头部位置和尾部位置添加所述标识字符。
优选地,当所述第二进制格式为二进制格式时,所述按照预设顺序依次提取所述第一字符串中的每一位字符,并根据每次提取的字符,依次对待加密文件中与提取的所述字符对应的节点执行相应处理的步骤包括:
按照预设顺序依次提取二进制格式的所述第一字符串中的每一位字符;
若当前提取的所述字符为二进制字符0,则维持所述待加密文件中与当前提取的所述字符对应的节点不变;
若当前提取的所述字符为二进制字符1,则在所述待加密文件中与当前提取的所述字符对应的节点的尾部位置添加一位空格字符。
优选地,所述依次对待加密文件中与提取的所述字符对应的节点执行相应处理,生成所述待加密文件对应的加密文件的步骤之后,还包括:
依次提取所述加密文件的每一个节点,并确定与提取的每一个节点对应的第二进制格式的字符,将确定的字符组成第二进制格式的第二字符串;
对所述第二字符串进行第一进制格式转换,生成第一进制格式的第三字符串,所述第三字符串中包含携带有所述标识字符的数字水印;
查找所述第三字符串中包含的所述标识字符,并根据所述标识字符获取所述数字水印。
优选地,所述查找所述第三字符串中包含的所述标识字符,并根据所述标识字符获取所述数字水印的步骤包括:
查找所述第三字符串中包含的两个所述标识字符;
提取两个所述标识字符之间的字符信息,所述字符信息为所述数字水印。
此外,为实现上述目的,本发明还提出一种数字水印加密装置,所述数字水印加密装置包括:
标识模块,用于将数字水印添加预设的标识字符,以对所述数字水印进行标识处理,其中,所述数字水印为第一进制格式;
转换模块,用于将标识处理后的所述数字水印进行第二进制格式转换,生成所述数字水印对应的第二进制格式的第一字符串;
处理模块,用于按照预设顺序依次提取所述第一字符串中的每一位字符,并根据每次提取的字符,依次对待加密文件中与提取的所述字符对应的节点执行相应处理,生成所述待加密文件对应的加密文件,其中,所述待加密文件包括多个节点。
优选地,所述标识模块用于:
在所述数字水印的头部位置和尾部位置添加所述标识字符。
优选地,当所述第二进制格式为二进制格式时,所述处理模块包括:
提取单元,用于按照预设顺序依次提取二进制格式的所述第一字符串中的每一位字符;
处理单元,用于若当前提取的所述字符为二进制字符0,则维持所述待加密文件中与当前提取的所述字符对应的节点不变;若当前提取的所述字符为二进制字符1,则在所述待加密文件中与当前提取的所述字符对应的节点的尾部位置添加一位空格字符。
优选地,所述处理模块,还用于依次提取所述加密文件的每一个节点,并确定与提取的每一个节点对应的第二进制格式的字符,将确定的字符组成第二进制格式的第二字符串;
所述转换模块,还用于对所述第二字符串进行第一进制格式转换,生成第一进制格式的第三字符串,所述第三字符串中包含携带有所述标识字符的数字水印;
所述数字水印加密装置还包括:
获取模块,用于查找所述第三字符串中包含的所述标识字符,并根据所述标识字符获取所述数字水印。
优选地,所述获取模块包括:
查找单元,用于查找所述第三字符串中包含的两个所述标识字符;
获取单元,用于提取两个所述标识字符之间的字符信息,所述字符信息为所述数字水印。
本发明提出的数字水印加密方法和装置,当要对待加密文件进行数字水印加密时,首先将第一进制格式的数字水印添加预设的标识字符,然后对数字水印进行第二进制格式转换,生成数字水印对应的第二进制格式的第一字符串,之后按照预设顺序依次提取第一字符串中的每一位字符,并根据每次提取的字符,依次对待加密文件中与提取的字符所对应的节点执行相应处理,处理完成后生成该待加密文件对应的加密文件,因此,加密过程只是对待加密文件的节点进行处理,而并没有将数字水印直接嵌入到待加密文件中,避免了由于嵌入数字水印占用存储空间而影响待加密文件使用的问题,从而提高了数字水印加密的可靠性。
附图说明
图1为本发明数字水印加密方法第一实施例的流程示意图;
图2为本发明数字水印加密方法第二实施例的流程示意图;
图3为本发明数字水印加密装置第一实施例的功能模块示意图;
图4为本发明数字水印加密装置第一实施例中处理模块的细化功能模块示意图
图5为本发明数字水印加密装置第二实施例的功能模块示意图;
图6为本发明数字水印加密装置第二实施例中获取模块的细化功能模块示意图。
本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种数字水印加密方法,参照图1,图1为本发明数字水印加密方法第一实施例的流程示意图。
在该实施例中,所述数字水印加密方法包括以下步骤:
步骤S10,将数字水印添加预设的标识字符,以对所述数字水印进行标识处理,其中,所述数字水印为第一进制格式;
数字水印技术是将一些标识信息(即数字水印)嵌入数字载体当中(包括多媒体、文档、软件等)或是间接表示(修改特定区域的结构),且不影响原载体的使用价值,也不容易被探知和再次修改,但可以被生产方识别和辨认的技术,常用于保护信息安全或者信息隐藏。本实施例中,采用数字水印对待加密文件进行加密处理,其中,该待加密文件包括多媒体、文档、软件等等。
首先,对数字水印进行标识处理,将数字水印添加预设的标识字符,比如,预先设置数字水印对应的标识字符为“#”,本领域技术人员可以理解的是,也可以设置标识字符为其他字符,在此不作限制。其中,数字水印为第一进制格式,比如,数字水印为十进制格式。
可选地,所述步骤S10包括:
在所述数字水印的头部位置和尾部位置添加所述标识字符。
当对数字水印进行标识处理时,在数字水印的头部位置和尾部位置添加预设的标识字符,比如,在数字水印的头部位置和尾部位置分别添加字符“#”,以对数字水印进行标识处理。
步骤S20,将标识处理后的所述数字水印进行第二进制格式转换,生成所述数字水印对应的第二进制格式的第一字符串;
当对数字水印进行标识处理之后,将标识处理后的数字水印进行第二进制格式转换,生成该数字水印对应的第二进制格式的第一字符串。比如,若第二进制格式为二进制格式,则将标识处理后的数字水印进行二进制格式转换,生成该数字水印对应的二进制格式的第一字符串,也即生成二进制01字符串。
步骤S30,按照预设顺序依次提取所述第一字符串中的每一位字符,并根据每次提取的字符,依次对所述待加密文件中与提取的所述字符对应的节点执行相应处理,生成所述待加密文件对应的加密文件,其中,所述待加密文件包括多个节点。
本实施例中,当生成第二进制格式的第一字符串之后,按照预设顺序依次提取该第一字符串中的每一位字符,比如按照从高位到低位的顺序依次提取该第一字符串的每一位字符,可以理解的是,也可以按照从低位到高位的顺序依次提取该第一字符串的每一位字符。由于待加密文件包含多个节点,根据每次提取的字符,依次对待加密文件中与提取的字符对应的节点执行相应处理。比如,根据提取的第一位字符,对待加密文件中的第一个节点进行相应处理,根据提取的第二位字符,对待加密文件中的第二个节点进行相应处理,按照此方式依次根据提取的每一位字符,对待加密文件中与该字符对应的节点进行相应处理。当根据第一字符串中的每位字符对待加密文件中与每位字符对应的节点进行相应处理完成之后,也即完成对待加密文件的加密处理,生成该待加密文件对应的加密文件。
可选地,在第二进制格式为二进制格式时,所述步骤S30包括:
步骤a,按照预设顺序依次提取二进制格式的所述第一字符串中的每一位字符;
步骤b,若当前提取的所述字符为二进制字符0,则维持所述待加密文件中与当前提取的所述字符对应的节点不变;
步骤c,若当前提取的所述字符为二进制字符1,则在所述待加密文件中与当前提取的所述字符对应的节点的尾部位置添加一位空格字符。
在第二进制格式为二进制格式时,对标识处理后的数字水印进行二进制格式转换,生成该数字水印对应的二进制格式的第一字符串,然后按照预设顺序依次提取二进制格式的第一字符串中的每一位字符,也即提取二进制字符0和二进制字符1。若当前提取的字符为二进制字符0,则维持待加密文件中与当前提取的字符对应的节点不变;若当前提取的字符为二进制字符1,则在待加密文件中与当前提取的字符对应的节点的尾部位置添加一位空格字符。按照此方式依次根据提取的第一字符串中的每一位字符,对待加密文件中与该字符对应的节点进行相应处理。
下面以安卓应用的apk(AndroidPackage,安卓安装包)文件为例,对本发明数字水印加密方法进行详细说明。
当用户需要对某一款安卓应用的apk文件进行数字水印加密时,用户首先对数字水印进行标识处理,比如在数字水印的头部位置和尾部位置分别添加字符“#”。然后对添加了标识字符的数字水印进行进制格式转换,比如对添加了标识字符的数字水印进行二进制格式转换,生成二进制格式的第一字符串,也即二进制01字符串。
由于apk文件是一个zip压缩包,因此,要对该apk文件进行解压,解压后的apk文件包括AndroidManifest.xml文件、META-INF目录文件、res目录文件、lib目录文件、assets目录文件、classes.dex文件、resources.arsc文件。
其中,AndroidManifest.xml文件是每个安卓应用都必须定义和包含的,它描述了安卓应用的名字、版本、权限、引用的库文件等等信息;META-INF目录文件下存放的是签名信息,用来保证apk包的完整性和系统的安全;res目录文件存放资源文件、布局文件等,其中,drawable存放资源文件,layout、xml存放布局文件;lib目录文件下的子目录armeabi存放的是一些so文件;assets目录文件存放一些配置文件;classes.dex文件是Java源码编译后的代码文件;resources.arsc文件是编译后的资源文件,大多数情况下,需要汉化的单词、语句绝大多数都在这个文件里,汉化的时候首先就要看这个文件。
由于xml文件有巨大的冗余空间,便于嵌入数字水印等信息,因此,在对apk文件解压后,获取res目录文件下的xml文件。获取的该xml文件是经过编译生成的二进制文件,也即该xml文件为二进制格式,因此,在获取到该xml文件后,先对该xml文件进行十进制格式转换,获取到格式转换后的十进制格式xml文件。
之后,按照预设顺序依次提取第一字符串中的每一位字符,也即提取二进制字符0和二进制字符1。若当前提取的字符为二进制字符0,则维持十进制格式xml文件中与当前提取的字符对应的item节点不变;若当前提取的字符为二进制字符1,则在十进制格式xml文件中与当前提取的字符对应的item节点的尾部位置添加一位空格字符。按照此方式依次根据提取第一字符串中的每一位字符,对十进制格式xml文件中与每一位字符对应的item节点进行相应处理,生成加密后的xml文件。
例如,若提取的第一位字符为二进制字符1,则在十进制格式xml文件的第一个item节点的尾部位置添加一位空格字符;若提取的第二位字符为二进制字符0,则维持十进制格式xml文件的第二个item节点不变。按照此方式依次根据提取的每一位字符,对十进制格式xml文件中与每一位字符对应的item节点进行相应处理。
加密完成之后,将加密后的xml文件进行二进制格式转换,然后将二进制格式转换后的xml文件与其他AndroidManifest.xml文件、META-INF目录文件、resources.arsc文件等各个文件一起压缩打包,生成加密后的apk文件。进一步地,由于有些apk文件需要通过签名进行校验,因此,在生成加密apk文件之后,对该加密apk文件进行签名处理。
本实施例提供的方案,当要对待加密文件进行数字水印加密时,首先将第一进制格式的数字水印添加预设的标识字符,然后对数字水印进行第二进制格式转换,生成数字水印对应的第二进制格式的第一字符串,之后按照预设顺序依次提取第一字符串中的每一位字符,并根据每次提取的字符,依次对待加密文件中与提取的字符所对应的节点执行相应处理,处理完成后生成该待加密文件对应的加密文件,因此,加密过程只是对待加密文件的节点进行处理,而并没有将数字水印直接嵌入到待加密文件中,避免了由于嵌入数字水印占用存储空间而影响待加密文件使用的问题,从而提高了数字水印加密的可靠性。
进一步地,如图2所示,基于第一实施例提出本发明数字水印加密方法第二实施例,在本实施例中,所述步骤S30之后,还包括:
步骤S40,依次提取所述加密文件的每一个节点,并确定与提取的每一个节点对应的第二进制格式的字符,将确定的字符组成第二进制格式的第二字符串;
步骤S50,对所述第二字符串进行第一进制格式转换,生成第一进制格式的第三字符串,所述第三字符串中包含携带有所述标识字符的数字水印;
步骤S60,查找所述第三字符串中包含的所述标识字符,并根据所述标识字符获取所述数字水印。
在本实施例中,要提取第一实施例中生成的加密文件所对应的数字水印时,首先依次提取该加密文件的每一个节点,由于加密文件中的节点是根据第二进制格式的第一字符串中的每一位字符进行相应处理过的,因此,根据提取的节点,可确定与提取的该节点对应的第二进制格式的字符。在依次确定出与提取的每一个节点对应的第二进制格式的字符之后,将确定的第二进制格式的字符组成第二进制格式的第二字符串,该第二字符串中包含了第二进制格式的第一字符串。
之后,对第二进制格式的该第二字符串进行第一进制格式转换,生成第一进制格式的第三字符串。在对第二字符串进行第一进制格式转换时,也即对第二进制格式的第一字符串进行了第一进制格式转换,而第一字符串进行第一进制格式转换之后会生成携带有标识字符的数字水印,也即第三字符串中包含了携带有标识字符的数字水印。从该第三字符串中查找出该标识字符,当查找到该标识字符时,根据该标识字符,获取到数字水印。
可选地,若在对待加密文件进行数字水印加密的过程中,在数字水印的头部位置和尾部位置添加了标识字符,则生成的第三字符串中包含有两个标识字符。此时,所述步骤S60包括:
步骤d,查找所述第三字符串中包含的两个所述标识字符;
步骤e,提取两个所述标识字符之间的字符信息,所述字符信息为所述数字水印。
当生成第三字符串后,从第三字符串中查找出其包含的两个标识字符,然后提取出该两个标识字符之间的字符信息,该字符信息即为待加密文件在进行数字水印加密时所采用的数字水印,也即实现了从加密文件中提取出数字水印。
下面以加密apk文件为例,对本实施例中的数字水印加密方法进行详细说明。
当用户要从加密apk文件中提取出数字水印时,首先对该加密apk文件进行解压,获取解压后的res目录文件下的xml文件。由于该xml文件是二进制格式的,因此,对该xml文件进行十进制格式转换,生成格式转换后的十进制格式xml文件。然后依次提取十进制格式xml文件中的item节点,并根据提取的item节点,确定与该item节点对应的二进制字符。例如,判断提取的每一个item节点的尾部位置是否有一位空格字符,当item节点的尾部位置有一位空格字符时,确定该item节点对应二进制字符1;当item节点的尾部位置没有空格字符时,确定该item节点对应二进制字符0。在确定每一个item节点对应的二进制字符之后,将确定的字符组成第二进制格式的第二字符串。
然后,将该第二字符串进行十进制格式转换,生成十进制的第三字符串,该第三字符中包含了携带标识字符的数字水印。从该第三字符串中查找出标识字符,并根据标识字符获取数字水印。比如,若在对apk文件进行数字水印加密的过程中,在数字水印的头部位置和尾部位置添加了标识字符,则在第三字符串中查找出两个标识字符,提取出该两个标识字符之间的字符信息,该字符信息就是在对apk文件进行数字水印加密时所采用的数字水印,也即完成了从加密apk文件中提取出数字水印。
本实施例提供的方案,要提取加密文件所对应的数字水印时,首先依次提取该加密文件的每一个节点,并确定与提取的每一个节点对应的第二进制格式的字符,将确定的字符组成第二进制格式的第二字符串,然后对该第二字符串进行第一进制格式转换,生成第一进制格式的第三字符串,该第三字符串中就包含携带有标识字符的数字水印,从第三字符串中查找出标识字符后,根据标识字符获取到数字水印,因此,本实施例的方案不仅实现了数字水印加密,而且还实现了加密文件的数字水印提取。
本发明提供一种数字水印加密装置。
参照图3,图3为本发明数字水印加密装置第一实施例的功能模块示意图。
需要强调的是,对本领域的技术人员来说,图4所示功能模块图仅仅是一个较佳实施例的示例图,本领域的技术人员围绕图4所示的数字水印加密装置的功能模块,可轻易进行新的功能模块的补充;各功能模块的名称是自定义名称,仅用于辅助理解该数字水印加密装置的各个程序功能块,不用于限定本发明的技术方案,本发明技术方案的核心是,各自定义名称的功能模块所要达成的功能。
在本实施例中,所述数字水印加密装置包括:
标识模块10,用于将数字水印添加预设的标识字符,以对所述数字水印进行标识处理,其中,所述数字水印为第一进制格式;
数字水印技术是将一些标识信息(即数字水印)嵌入数字载体当中(包括多媒体、文档、软件等)或是间接表示(修改特定区域的结构),且不影响原载体的使用价值,也不容易被探知和再次修改,但可以被生产方识别和辨认的技术,常用于保护信息安全或者信息隐藏。本实施例中,采用数字水印对待加密文件进行加密处理,其中,该待加密文件包括多媒体、文档、软件等等。
首先,标识模块10对数字水印进行标识处理,将数字水印添加预设的标识字符,比如,预先设置数字水印对应的标识字符为“#”,本领域技术人员可以理解的是,也可以设置标识字符为其他字符,在此不作限制。其中,数字水印为第一进制格式,比如,数字水印为十进制格式。
可选地,所述标识模块10具体用于:
在所述数字水印的头部位置和尾部位置添加所述标识字符。
当对数字水印进行标识处理时,标识模块10在数字水印的头部位置和尾部位置添加预设的标识字符,比如,标识模块10在数字水印的头部位置和尾部位置分别添加字符“#”,以对数字水印进行标识处理。
转换模块20,用于将标识处理后的所述数字水印进行第二进制格式转换,生成所述数字水印对应的第二进制格式的第一字符串;
当标识模块10对数字水印进行标识处理之后,转换模块20将标识处理后的数字水印进行第二进制格式转换,生成该数字水印对应的第二进制格式的第一字符串。比如,若第二进制格式为二进制格式,则转换模块20将标识处理后的数字水印进行二进制格式转换,生成该数字水印对应的二进制格式的第一字符串,也即生成二进制01字符串。
处理模块30,用于按照预设顺序依次提取所述第一字符串中的每一位字符,并根据每次提取的字符,依次对待加密文件中与提取的所述字符对应的节点执行相应处理,生成所述待加密文件对应的加密文件,其中,所述待加密文件包括多个节点。
本实施例中,当生成第二进制格式的第一字符串之后,处理模块30按照预设顺序依次提取该第一字符串中的每一位字符,比如按照从高位到低位的顺序依次提取该第一字符串的每一位字符,可以理解的是,也可以按照从低位到高位的顺序依次提取该第一字符串的每一位字符。由于待加密文件包含多个节点,根据每次提取的字符,处理模块30依次对待加密文件中与提取的字符对应的节点执行相应处理。比如,处理模块30根据提取的第一位字符,对待加密文件中的第一个节点进行相应处理,根据提取的第二位字符,对待加密文件中的第二个节点进行相应处理,处理模块30按照此方式依次根据提取的每一位字符,对待加密文件中与该字符对应的节点进行相应处理。当根据第一字符串中的每位字符对待加密文件中与每位字符对应的节点进行相应处理完成之后,也即完成对待加密文件的加密处理,生成该待加密文件对应的加密文件。
可选地,如图4所示,在第二进制格式为二进制格式时,所述处理模块30包括:
提取单元31,用于按照预设顺序依次提取二进制格式的所述第一字符串中的每一位字符;
处理单元32,用于若当前提取的所述字符为二进制字符0,则维持所述待加密文件中与当前提取的所述字符对应的节点不变;若当前提取的所述字符为二进制字符1,则在所述待加密文件中与当前提取的所述字符对应的节点的尾部位置添加一位空格字符。
在第二进制格式为二进制格式时,转换模块20对标识处理后的数字水印进行二进制格式转换,生成该数字水印对应的二进制格式的第一字符串,然后提取单元31按照预设顺序依次提取二进制格式的第一字符串中的每一位字符,也即提取二进制字符0和二进制字符1。若当前提取的字符为二进制字符0,则处理单元32维持待加密文件中与当前提取的字符对应的节点不变;若当前提取的字符为二进制字符1,则处理单元32在待加密文件中与当前提取的字符对应的节点的尾部位置添加一位空格字符。处理单元32按照此方式依次根据提取的第一字符串中的每一位字符,对待加密文件中与该字符对应的节点进行相应处理。
下面以安卓应用的apk(AndroidPackage,安卓安装包)文件为例,对本发明数字水印加密装置进行详细说明。
当用户需要对某一款安卓应用的apk文件进行数字水印加密时,标识模块10首先对数字水印进行标识处理,比如在数字水印的头部位置和尾部位置分别添加字符“#”。然后转换模块20对添加了标识字符的数字水印进行进制格式转换,比如对添加了标识字符的数字水印进行二进制格式转换,生成二进制格式的第一字符串,也即二进制01字符串。
由于apk文件是一个zip压缩包,因此,要对该apk文件进行解压,解压后的apk文件包括AndroidManifest.xml文件、META-INF目录文件、res目录文件、lib目录文件、assets目录文件、classes.dex文件、resources.arsc文件。
其中,AndroidManifest.xml文件是每个安卓应用都必须定义和包含的,它描述了安卓应用的名字、版本、权限、引用的库文件等等信息;META-INF目录文件下存放的是签名信息,用来保证apk包的完整性和系统的安全;res目录文件存放资源文件、布局文件等,其中,drawable存放资源文件,layout、xml存放布局文件;lib目录文件下的子目录armeabi存放的是一些so文件;assets目录文件存放一些配置文件;classes.dex文件是Java源码编译后的代码文件;resources.arsc文件是编译后的资源文件,大多数情况下,需要汉化的单词、语句绝大多数都在这个文件里,汉化的时候首先就要看这个文件。
由于xml文件有巨大的冗余空间,便于嵌入数字水印等信息,因此,在对apk文件解压后,获取res目录文件下的xml文件。获取的该xml文件是经过编译生成的二进制文件,也即该xml文件为二进制格式,因此,在获取到该xml文件后,转换模块20先对该xml文件进行十进制格式转换,获取到格式转换后的十进制格式xml文件。
之后,处理模块30按照预设顺序依次提取第一字符串中的每一位字符,也即提取二进制字符0和二进制字符1。若当前提取的字符为二进制字符0,则维持十进制格式xml文件中与当前提取的字符对应的item节点不变;若当前提取的字符为二进制字符1,则在十进制格式xml文件中与当前提取的字符对应的item节点的尾部位置添加一位空格字符。按照此方式依次根据提取第一字符串中的每一位字符,对十进制格式xml文件中与每一位字符对应的item节点进行相应处理,生成加密后的xml文件。
例如,若提取的第一位字符为二进制字符1,则处理模块30在十进制格式xml文件的第一个item节点的尾部位置添加一位空格字符;若提取的第二位字符为二进制字符0,则处理模块30维持十进制格式xml文件的第二个item节点不变。按照此方式依次根据提取的每一位字符,对十进制格式xml文件中与每一位字符对应的item节点进行相应处理。
加密完成之后,转换模块20将加密后的xml文件进行二进制格式转换,然后将二进制格式转换后的xml文件与其他AndroidManifest.xml文件、META-INF目录文件、resources.arsc文件等各个文件一起压缩打包,生成加密后的apk文件。进一步地,由于有些apk文件需要通过签名进行校验,因此,在生成加密apk文件之后,对该加密apk文件进行签名处理。
本实施例提供的方案,当要对待加密文件进行数字水印加密时,首先标识模块10将第一进制格式的数字水印添加预设的标识字符,然后转换模块20对数字水印进行第二进制格式转换,生成数字水印对应的第二进制格式的第一字符串,之后处理模块30按照预设顺序依次提取第一字符串中的每一位字符,并根据每次提取的字符,依次对待加密文件中与提取的字符所对应的节点执行相应处理,处理完成后生成该待加密文件对应的加密文件,因此,加密过程只是对待加密文件的节点进行处理,而并没有将数字水印直接嵌入到待加密文件中,避免了由于嵌入数字水印占用存储空间而影响待加密文件使用的问题,从而提高了数字水印加密的可靠性。
进一步地,如图5所示,基于第一实施例提出本发明数字水印加密装置第二实施例,在本实施例中,所述处理模块30还用于:
依次提取所述加密文件的每一个节点,并确定与提取的每一个节点对应的第二进制格式的字符,将确定的字符组成第二进制格式的第二字符串;
所述转换模块20还用于:
对所述第二字符串进行第一进制格式转换,生成第一进制格式的第三字符串,所述第三字符串中包含携带有所述标识字符的数字水印;
所述数字水印加密装置还包括:
获取模块40,用于查找所述第三字符串中包含的所述标识字符,并根据所述标识字符获取所述数字水印。
在本实施例中,要提取第一实施例中生成的加密文件所对应的数字水印时,首先处理模块30依次提取该加密文件的每一个节点,由于加密文件中的节点是根据第二进制格式的第一字符串中的每一位字符进行相应处理过的,因此,根据提取的节点,可确定与提取的该节点对应的第二进制格式的字符。在依次确定出与提取的每一个节点对应的第二进制格式的字符之后,将确定的第二进制格式的字符组成第二进制格式的第二字符串,该第二字符串中包含了第二进制格式的第一字符串。
之后,转换模块20对第二进制格式的该第二字符串进行第一进制格式转换,生成第一进制格式的第三字符串。在对第二字符串进行第一进制格式转换时,也即对第二进制格式的第一字符串进行了第一进制格式转换,而第一字符串进行第一进制格式转换之后会生成携带有标识字符的数字水印,也即第三字符串中包含了携带有标识字符的数字水印。获取模块40从该第三字符串中查找出该标识字符,当查找到该标识字符时,根据该标识字符,获取到数字水印。
可选地,若在对待加密文件进行数字水印加密的过程中,标识模块10在数字水印的头部位置和尾部位置添加了标识字符,则生成的第三字符串中包含有两个标识字符。此时,如图6所示,所述获取模块40包括:
查找单元41,用于查找所述第三字符串中包含的两个所述标识字符;
获取单元42,用于提取两个所述标识字符之间的字符信息,所述字符信息为所述数字水印。
当生成第三字符串后,查找单元41从第三字符串中查找出其包含的两个标识字符,然后获取单元42提取出该两个标识字符之间的字符信息,该字符信息即为待加密文件在进行数字水印加密时所采用的数字水印,也即实现了从加密文件中提取出数字水印。
下面以加密apk文件为例,对本实施例中的数字水印加密装置进行详细说明。
当用户要从加密apk文件中提取出数字水印时,首先对该加密apk文件进行解压,获取解压后的res目录文件下的xml文件。由于该xml文件是二进制格式的,因此,转换模块20对该xml文件进行十进制格式转换,生成格式转换后的十进制格式xml文件。然后处理模块30依次提取十进制格式xml文件中的item节点,并根据提取的item节点,确定与该item节点对应的二进制字符。例如,处理模块30判断提取的每一个item节点的尾部位置是否有一位空格字符,当item节点的尾部位置有一位空格字符时,确定该item节点对应二进制字符1;当item节点的尾部位置没有空格字符时,确定该item节点对应二进制字符0。在确定每一个item节点对应的二进制字符之后,将确定的字符组成第二进制格式的第二字符串。
然后,转换模块20将该第二字符串进行十进制格式转换,生成十进制的第三字符串,该第三字符中包含了携带标识字符的数字水印。获取模块40从该第三字符串中查找出标识字符,并根据标识字符获取数字水印。比如,若在对apk文件进行数字水印加密的过程中,标识模块10在数字水印的头部位置和尾部位置添加了标识字符,则获取模块40在第三字符串中查找出两个标识字符,提取出该两个标识字符之间的字符信息,该字符信息就是在对apk文件进行数字水印加密时所采用的数字水印,也即完成了从加密apk文件中提取出数字水印。
本实施例提供的方案,要提取加密文件所对应的数字水印时,首先处理模块30依次提取该加密文件的每一个节点,并确定与提取的每一个节点对应的第二进制格式的字符,将确定的字符组成第二进制格式的第二字符串,然后转换模块20对该第二字符串进行第一进制格式转换,生成第一进制格式的第三字符串,该第三字符串中就包含携带有标识字符的数字水印,获取模块40从第三字符串中查找出标识字符后,根据标识字符获取到数字水印,因此,本实施例的方案不仅实现了数字水印加密,而且还实现了加密文件的数字水印提取。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数字水印加密方法,其特征在于,所述数字水印加密方法包括步骤:
将数字水印添加预设的标识字符,以对所述数字水印进行标识处理,其中,所述数字水印为第一进制格式;
将标识处理后的所述数字水印进行第二进制格式转换,生成所述数字水印对应的第二进制格式的第一字符串;
按照预设顺序依次提取所述第一字符串中的每一位字符,并根据每次提取的字符,依次对待加密文件中与提取的所述字符对应的节点执行相应处理,生成所述待加密文件对应的加密文件,其中,所述待加密文件包括多个节点。
2.如权利要求1所述的数字水印加密方法,其特征在于,所述将数字水印添加预设的标识字符的步骤包括:
在所述数字水印的头部位置和尾部位置添加所述标识字符。
3.如权利要求1所述的数字水印加密方法,其特征在于,当所述第二进制格式为二进制格式时,所述按照预设顺序依次提取所述第一字符串中的每一位字符,并根据每次提取的字符,依次对待加密文件中与提取的所述字符对应的节点执行相应处理的步骤包括:
按照预设顺序依次提取二进制格式的所述第一字符串中的每一位字符;
若当前提取的所述字符为二进制字符0,则维持所述待加密文件中与当前提取的所述字符对应的节点不变;
若当前提取的所述字符为二进制字符1,则在所述待加密文件中与当前提取的所述字符对应的节点的尾部位置添加一位空格字符。
4.如权利要求2所述的数字水印加密方法,其特征在于,所述依次对待加密文件中与提取的所述字符对应的节点执行相应处理,生成所述待加密文件对应的加密文件的步骤之后,还包括:
依次提取所述加密文件的每一个节点,并确定与提取的每一个节点对应的第二进制格式的字符,将确定的字符组成第二进制格式的第二字符串;
对所述第二字符串进行第一进制格式转换,生成第一进制格式的第三字符串,所述第三字符串中包含携带有所述标识字符的数字水印;
查找所述第三字符串中包含的所述标识字符,并根据所述标识字符获取所述数字水印。
5.如权利要求4所述的数字水印加密方法,其特征在于,所述查找所述第三字符串中包含的所述标识字符,并根据所述标识字符获取所述数字水印的步骤包括:
查找所述第三字符串中包含的两个所述标识字符;
提取两个所述标识字符之间的字符信息,所述字符信息为所述数字水印。
6.一种数字水印加密装置,其特征在于,所述数字水印加密装置包括:
标识模块,用于将数字水印添加预设的标识字符,以对所述数字水印进行标识处理,其中,所述数字水印为第一进制格式;
转换模块,用于将标识处理后的所述数字水印进行第二进制格式转换,生成所述数字水印对应的第二进制格式的第一字符串;
处理模块,用于按照预设顺序依次提取所述第一字符串中的每一位字符,并根据每次提取的字符,依次对待加密文件中与提取的所述字符对应的节点执行相应处理,生成所述待加密文件对应的加密文件,其中,所述待加密文件包括多个节点。
7.如权利要求6所述的数字水印加密装置,其特征在于,所述标识模块用于:
在所述数字水印的头部位置和尾部位置添加所述标识字符。
8.如权利要求6所述的数字水印加密装置,其特征在于,当所述第二进制格式为二进制格式时,所述处理模块包括:
提取单元,用于按照预设顺序依次提取二进制格式的所述第一字符串中的每一位字符;
处理单元,用于若当前提取的所述字符为二进制字符0,则维持所述待加密文件中与当前提取的所述字符对应的节点不变;若当前提取的所述字符为二进制字符1,则在所述待加密文件中与当前提取的所述字符对应的节点的尾部位置添加一位空格字符。
9.如权利要求7所述的数字水印加密装置,其特征在于,所述处理模块,还用于依次提取所述加密文件的每一个节点,并确定与提取的每一个节点对应的第二进制格式的字符,将确定的字符组成第二进制格式的第二字符串;
所述转换模块,还用于对所述第二字符串进行第一进制格式转换,生成第一进制格式的第三字符串,所述第三字符串中包含携带有所述标识字符的数字水印;
所述数字水印加密装置还包括:
获取模块,用于查找所述第三字符串中包含的所述标识字符,并根据所述标识字符获取所述数字水印。
10.如权利要求9所述的数字水印加密装置,其特征在于,所述获取模块包括:
查找单元,用于查找所述第三字符串中包含的两个所述标识字符;
获取单元,用于提取两个所述标识字符之间的字符信息,所述字符信息为所述数字水印。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611095829.XA CN106780280B (zh) | 2016-11-30 | 2016-11-30 | 数字水印加密方法及装置 |
PCT/CN2016/112858 WO2018098879A1 (zh) | 2016-11-30 | 2016-12-29 | 数字水印加密方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611095829.XA CN106780280B (zh) | 2016-11-30 | 2016-11-30 | 数字水印加密方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106780280A true CN106780280A (zh) | 2017-05-31 |
CN106780280B CN106780280B (zh) | 2019-02-01 |
Family
ID=58884131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611095829.XA Active CN106780280B (zh) | 2016-11-30 | 2016-11-30 | 数字水印加密方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106780280B (zh) |
WO (1) | WO2018098879A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111400670A (zh) * | 2020-03-06 | 2020-07-10 | 全球能源互联网研究院有限公司 | 一种水印添加方法、装置、设备及存储介质 |
CN117034220A (zh) * | 2023-10-10 | 2023-11-10 | 北京安华金和科技有限公司 | 一种数字水印处理方法和系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559497B (zh) * | 2020-12-25 | 2023-06-23 | 北京百度网讯科技有限公司 | 一种数据处理方法、一种信息传输方法、装置及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101751656A (zh) * | 2008-12-22 | 2010-06-23 | 北京大学 | 一种水印嵌入和提取方法及装置 |
US20110243374A1 (en) * | 2010-04-02 | 2011-10-06 | Ying-Jieh Huang | Method of embedding information in input image, method of extracting information from input image, and related apparatus |
CN103873954A (zh) * | 2012-12-13 | 2014-06-18 | 航天信息股份有限公司 | 将不见数字水印嵌入到流媒体的方法、装置和系统 |
CN104134023A (zh) * | 2014-08-15 | 2014-11-05 | 北京邮电大学 | 一种水印处理方法和水印处理系统 |
-
2016
- 2016-11-30 CN CN201611095829.XA patent/CN106780280B/zh active Active
- 2016-12-29 WO PCT/CN2016/112858 patent/WO2018098879A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101751656A (zh) * | 2008-12-22 | 2010-06-23 | 北京大学 | 一种水印嵌入和提取方法及装置 |
US20110243374A1 (en) * | 2010-04-02 | 2011-10-06 | Ying-Jieh Huang | Method of embedding information in input image, method of extracting information from input image, and related apparatus |
CN103873954A (zh) * | 2012-12-13 | 2014-06-18 | 航天信息股份有限公司 | 将不见数字水印嵌入到流媒体的方法、装置和系统 |
CN104134023A (zh) * | 2014-08-15 | 2014-11-05 | 北京邮电大学 | 一种水印处理方法和水印处理系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111400670A (zh) * | 2020-03-06 | 2020-07-10 | 全球能源互联网研究院有限公司 | 一种水印添加方法、装置、设备及存储介质 |
CN111400670B (zh) * | 2020-03-06 | 2023-12-15 | 全球能源互联网研究院有限公司 | 一种水印添加方法、装置、设备及存储介质 |
CN117034220A (zh) * | 2023-10-10 | 2023-11-10 | 北京安华金和科技有限公司 | 一种数字水印处理方法和系统 |
CN117034220B (zh) * | 2023-10-10 | 2024-01-05 | 北京安华金和科技有限公司 | 一种数字水印处理方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2018098879A1 (zh) | 2018-06-07 |
CN106780280B (zh) | 2019-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109445834B (zh) | 基于抽象语法树的程序代码相似性快速比较方法 | |
CN104486075B (zh) | 一种智能变电站icd模型文件数字签名的验证方法 | |
CN106780280A (zh) | 数字水印加密方法及装置 | |
CN110007906B (zh) | 脚本文件的处理方法、装置和服务器 | |
CN110704854B (zh) | 针对文本数据保留格式的流式加密方法 | |
CN102194081A (zh) | 自然语言信息隐藏方法 | |
CN105281898B (zh) | 密钥生成装置及方法 | |
Zhang et al. | A novel robust text watermarking for word document | |
Khairullah | A novel text steganography system using font color of the invisible characters in microsoft word documents | |
CN110781462A (zh) | 一种资源的混淆方法和装置 | |
CN110322386A (zh) | 一种数字文本水印嵌入及检测方法和装置 | |
CN108122274A (zh) | 一种二维码动画的生成方法以及装置 | |
Wen et al. | Two Zero-Watermark methods for XML documents | |
US8750605B2 (en) | Searchable color encoded file composing method and searchable color encoded file system | |
Fu et al. | Digital forensics of Microsoft Office 2007–2013 documents to prevent covert communication | |
CN113626645A (zh) | 分级优化的高效密文模糊检索方法及相关设备 | |
CN112118564A (zh) | 生成个性化简档包的方法、系统和计算机程序产品 | |
KR101045222B1 (ko) | 개인 정보를 순서 정보와 내용 정보로 분리하여 암호화하고 합성하는 방법, 장치,서버 및 기록 매체 | |
CN111355709A (zh) | 数据验证方法、装置、电子设备及计算机可读存储介质 | |
Chou et al. | A Webpage Data Hiding Method by Using Tag and CSS Attribute Setting | |
Choche et al. | A methodology to conceal QR codes for security applications | |
CN113792323A (zh) | 一种基于农产品的敏感数据加密方法、装置及电子设备 | |
CN104424619A (zh) | 信息处理设备和信息处理方法 | |
CN114091080A (zh) | 一种字幕文件加密解密方法、系统、存储介质及电子设备 | |
CN110008663B (zh) | 一种用于pdf文档保护和分发跟踪的信息快速嵌入和提取的方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |