CN115495439B - 数据库水印的嵌入方法、溯源方法、装置和电子设备 - Google Patents
数据库水印的嵌入方法、溯源方法、装置和电子设备 Download PDFInfo
- Publication number
- CN115495439B CN115495439B CN202211179867.9A CN202211179867A CN115495439B CN 115495439 B CN115495439 B CN 115495439B CN 202211179867 A CN202211179867 A CN 202211179867A CN 115495439 B CN115495439 B CN 115495439B
- Authority
- CN
- China
- Prior art keywords
- data
- preset
- zero
- binary
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Editing Of Facsimile Originals (AREA)
Abstract
本发明公开了一种数据库水印的嵌入方法、溯源方法、装置和电子设备,该嵌入方法包括:根据预设编码规则将待处理数据转换为初步编码数据;将初步编码数据中的每位字符转换为预设长度的二进制数并得到二进制数据;根据预设映射关系表将二进制数据映射为零宽字符串数据;在零宽字符串数据的前、后分别添加预设零宽字符串并得到最终编码数据;将最终编码数据作为数据库水印嵌入与待处理数据对应的嵌入位置;其中,预设长度不小于与字符对应的原始二进制数的长度,预设映射关系表是根据预设位数的不同二进制数和不同零宽字符串之间的映射关系确定的,从而在不影响数据展示的基础上实现高效的数据库水印嵌入。
Description
技术领域
本申请涉及数据库技术领域,更具体地,涉及一种数据库水印的嵌入方法、溯源方法、装置和电子设备。
背景技术
数据库水印技术是用隐秘的手段将版权说明、用户身份等水印信息,在不影响原数据使用情况下,嵌入到表数据、文件数据中,从而解决数据在共享、分发、使用中数据泄露无法溯源的技术难题,并在数据共享、分发和使用的过程中保障数据安全,提升数据共享的价值。
现有技术中,实现数据库水印的算法通常是根据数据的不同类型,通过采用不同变换算法对数据做不可感知的变换,从而将水印数据隐藏在具体的数据中,完成数据库水印的嵌入;数据溯源时,再使用与采用的算法类型对应的回溯算法对水印信息进行还原,实现数据泄漏等情况下的数据溯源。
此种基于不同变换算法和回溯算法实现数据库水印的方法,虽然解决了数据泄露数据无法溯源的技术难题,但是该方法需要采用采用不同变换算法才能对不同类型的数据进行变换,通用型差;另外,在通过变换算法将数据进行变换后,水印数据也被插入数据,成为数据的组成部分,使得数据在变换后的数据值发生改变,用户无法直接读取数据的值,必须通过回溯方法才能读取,计算环节较为复杂;同时,不同算法的计算需要占用数据库系统一部分计算资源,降低了数据库性能,也严重影响了数据展示。
因此,如何在不影响数据展示的基础上实现高效的数据库水印嵌入,是目前有待解决的技术问题。
发明内容
本申请实施例提供一种数据库水印的嵌入方法、溯源方法、装置和电子设备,用以在不影响数据展示的基础上实现高效的数据库水印嵌入。
第一方面,提供一种数据库水印的嵌入方法,所述方法包括:
根据预设编码规则将待处理数据转换为初步编码数据;
将所述初步编码数据中的每位字符转换为预设长度的二进制数并得到二进制数据;
根据预设映射关系表将所述二进制数据映射为零宽字符串数据;
在所述零宽字符串数据的前、后分别添加预设零宽字符串并得到最终编码数据;
将所述最终编码数据作为数据库水印嵌入与所述待处理数据对应的嵌入位置;
其中,所述预设长度不小于与所述字符对应的原始二进制数的长度,所述预设映射关系表是根据预设位数的不同二进制数和不同零宽字符串之间的映射关系确定的。
在一些实施例中,在将所述最终编码数据作为数据库水印嵌入与所述待处理数据对应的嵌入位置之前,所述方法还包括:
根据所述待处理数据的标签标记确定所述嵌入位置;
其中,所述标签标记是预先根据所述待处理数据的类型、长度、位置和属性确定的。
在一些实施例中,根据预设映射关系表将所述二进制数据映射为零宽字符串数据,具体为:
按所述预设位数将所述二进制数据划分为多组子数据;
将各组所述子数据按照所述预设映射关系表分别映射为零宽字符串并得到所述零宽字符串数据。
在一些实施例中,将所述初步编码数据中的每位字符转换为预设长度的二进制数并得到二进制数据,具体为:
按先后顺序依次对每位所述字符进行二进制转换得到各所述原始二进制数;
若所述原始二进制数的长度小于所述预设长度,在所述原始二进制数的最高位之前补零并使所述原始二进制数的长度达到所述预设长度;
根据与各所述字符对应的为预设长度的二进制数得到所述二进制数据。
在一些实施例中,所述预设编码规则包括与十六进制Unicode编码,或十进制Unicode编码,或十六进制GBK编码,或十进制GBK编码对应的编码规则。
第二方面,提供一种如第一方面所述数据库水印的溯源方法,所述方法包括:
根据所述嵌入位置确定所述最终编码数据;
去除所述最终编码数据前、后的所述预设零宽字符串并得到所述零宽字符串数据;
根据所述预设映射关系表将所述零宽字符串数据映射为所述二进制数据;
按所述预设长度将所述二进制数据划分为多组二进制数,并将各组二进制数转换为所述初步编码数据的各字符;
根据所述预设编码规则将各所述字符转换为所述待处理数据,并将所述待处理数据作为溯源结果数据。
在一些实施例中,所述嵌入位置由标签标记确定,所述标签标记是预先根据所述待处理数据的类型、长度、位置和属性确定的。
第三方面,提供一种数据库水印的嵌入装置,所述装置包括:
第一转换模块,用于根据预设编码规则将待处理数据转换为初步编码数据;
第二转换模块,用于将所述初步编码数据中的每位字符转换为预设长度的二进制数并得到二进制数据;
第一映射模块,用于根据预设映射关系表将所述二进制数据映射为零宽字符串数据;
添加模块,用于在所述零宽字符串数据的前、后分别添加预设零宽字符串并得到最终编码数据;
嵌入模块,用于将所述最终编码数据作为数据库水印嵌入与所述待处理数据对应的嵌入位置;
其中,所述预设长度不小于与所述字符对应的原始二进制数的长度,所述预设映射关系表是根据预设位数的不同二进制数和不同零宽字符串之间的映射关系确定的。
第四方面,提供一种如第三方面所述数据库水印的溯源装置,所述装置包括:
确定模块,用于根据所述嵌入位置确定所述最终编码数据;
去除模块,用于去除所述最终编码数据前、后的所述预设零宽字符串并得到所述零宽字符串数据;
第二映射模块,用于根据所述预设映射关系表将所述零宽字符串数据映射为所述二进制数据;
第三转换模块,用于按所述预设长度将所述二进制数据划分为多组二进制数,并将各组二进制数转换为所述初步编码数据的各字符;
第四转换模块,用于根据所述预设编码规则将各所述字符转换为所述待处理数据,并将所述待处理数据作为溯源结果数据。
第五方面,提供一种电子设备,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行第一方面中任意一项所述的嵌入方法或第二方面中任意一项所述的溯源方法。
通过应用以上技术方案,根据预设编码规则将待处理数据转换为初步编码数据;将初步编码数据中的每位字符转换为预设长度的二进制数并得到二进制数据;根据预设映射关系表将二进制数据映射为零宽字符串数据;在零宽字符串数据的前、后分别添加预设零宽字符串并得到最终编码数据;将最终编码数据作为数据库水印嵌入与待处理数据对应的嵌入位置;其中,预设长度不小于与字符对应的原始二进制数的长度,预设映射关系表是根据预设位数的不同二进制数和不同零宽字符串之间的映射关系确定的,由于先将待处理数据统一转换为初步编码数据,避免了采用不同的算法对不同类型的数据进行处理,提高了通用性,保证了数据库的高性能,并且最终编码数据采用零宽字符串,在嵌入数据库水印后不会影响数据展示,从而在不影响数据展示的基础上实现高效的数据库水印嵌入。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例提出的一种数据库水印的嵌入方法的流程示意图;
图2示出了本发明实施例提出的一种数据库水印的溯源方法的流程示意图;
图3示出了本发明实施例提出的一种数据库水印的嵌入装置的结构示意图;
图4示出了本发明实施例提出的一种数据库水印的溯源装置的结构示意图。
图5示出了本发明实施例提出的一种电子设备的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种数据库水印的嵌入方法,如图1所示,所述方法包括以下步骤:
步骤S101,根据预设编码规则将待处理数据转换为初步编码数据。
本实施例中,待处理数据可以为用户指定的敏感数据,用户可通过定义关键词或者元数据信息,然后匹配关键词或元数据信息确定敏感数据;也可通过研究敏感数据的特征,按照敏感数据的结构组成规律定义正则表达式,之后依据正则表达式匹配确定敏感数据。待处理数据中可包括多种字符,如文字、数字、字母、标点符号、图形符号等,预设编码规则为可对待处理数据中不同类型字符进行统一编码的一种通用编码规则,根据该预设编码规则可将待处理数据转换为初步编码数据。
为了可靠的得到初步编码数据,在本申请一些实施例中,所述预设编码规则包括与十六进制Unicode编码,或十进制Unicode编码,或十六进制GBK编码,或十进制GBK编码对应的编码规则。
本实施例中,Unicode即统一码,是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。GBK(Chinese Internal Code Specification,汉字编码字符集)采用单双字节变长编码,英文使用单字节编码,完全兼容ASCII字符编码,中文部分采用双字节编码。预设编码规则可采用与十进制或十六进制的Unicode编码对应得编码规则,也可采用与十进制或十六进制的GBK编码对应的编码规则。
本领域技术人员也可根据实际需要采用其他类型的预设编码规则,这并不影响本申请的保护范围。
步骤S102,将所述初步编码数据中的每位字符转换为预设长度的二进制数并得到二进制数据。
本实施例中,为了便于计算机进行处理,需要将初步编码数据中的每位字符转换为预设长度的二进制数,以实现对初步编码数据的归一化。为了保证初步编码数据中的每位字符都实现归一化,该预设长度不小于与所述字符对应的原始二进制数的长度。
为了得到准确的二进制数据,在本申请一些实施例中,将所述初步编码数据中的每位字符转换为预设长度的二进制数并得到二进制数据,具体为:
按先后顺序依次对每位所述字符进行二进制转换得到各所述原始二进制数;
若所述原始二进制数的长度小于所述预设长度,在所述原始二进制数的最高位之前补零并使所述原始二进制数的长度达到所述预设长度;
根据与各所述字符对应的为预设长度的二进制数得到所述二进制数据。
本实施例中,先按先后顺序依次对每位所述字符进行二进制转换,得到与每位字符对应的原始二进制数,原始二进制数的长度可能达不到预设长度,若原始二进制数的长度小于预设长度,在原始二进制数的最高位之前补零,以使原始二进制数的长度达到预设长度,在每个字符对应的二进制数均为预设长度时,根据各预设长度的二进制数组成二进制数据。举例来说,若预设长度为8位,原始二进制数为6位,则在原始二进制数的最高位之前补两个零。
可选的,预设长度可以为8位或16位。
步骤S103,根据预设映射关系表将所述二进制数据映射为零宽字符串数据。
本实施例中,预设映射关系表是根据预设位数的不同二进制数和不同零宽字符串之间的映射关系确定的。零宽字符串由零宽度字符组成,零宽度字符是一种字节宽度为0的不可打印的Unicode字符,在浏览器和一般的文本编辑器中一种不可见、但真实存在的表示某一种控制功能的字符。根据预设映射关系表可将二进制数据映射为零宽字符串数据。
在本申请具体的应用场景中,预设位数为2时,预设映射关系表可以如表1所示。
表1
二进制数 | 零宽字符串 |
00 | \\u200b |
01 | \\u200c |
10 | \\u200d |
11 | \\u200e |
为了准确的得到零宽字符串数据,在本申请一些实施例中,根据预设映射关系表将所述二进制数据映射为零宽字符串数据,具体为:
按所述预设位数将所述二进制数据划分为多组子数据;
将各组所述子数据按照所述预设映射关系表分别映射为零宽字符串并得到所述零宽字符串数据。
本实施例中,先按照预设位数将二进制数据进行分组,得到多组子数据,然后根据各组子数据查询预设映射关系表,根据查询结果确定各零宽字符串,从而将各组子数据映射为零宽字符串数据。
可选的,在本申请一些实施例中预设位数为2,本领域技术人员也可根据实际需要采用其他的预设位数。
步骤S104,在所述零宽字符串数据的前、后分别添加预设零宽字符串并得到最终编码数据。
本实施例中,为了便于区分出零宽字符串数据,需要将零宽字符串数据与其他数据(如主数据)之间进行隔离,在零宽字符串数据的前、后分别添加预设零宽字符串,并得到最终编码数据。
本领域技术人员可根据实际需要设置不同的预设零宽字符串,这并不影响本申请的保护范围。
步骤S105,将所述最终编码数据作为数据库水印嵌入与所述待处理数据对应的嵌入位置。
本实施例中,待处理数据对应一个嵌入位置,该嵌入位置可以是用户指定的,也可以是待处理数据自带的,将最终编码数据作为数据库水印嵌入该嵌入位置。
为了使数据库水印准确嵌入,在本申请一些实施例中,在将所述最终编码数据作为数据库水印嵌入与所述待处理数据对应的嵌入位置之前,所述方法还包括:
根据所述待处理数据的标签标记确定所述嵌入位置;
其中,所述标签标记是预先根据所述待处理数据的类型、长度、位置和属性确定的。
本实施例中,预先根据待处理数据的类型、长度、位置和属性确定标签标记,根据该标签标记可确定数据库水印的嵌入位置。可选的,在本申请一些实施例中,可使用哈希算法对待处理数据的类型、长度、位置和属性进行处理,根据处理结果得到标签标记。
通过应用以上技术方案,根据预设编码规则将待处理数据转换为初步编码数据;将初步编码数据中的每位字符转换为预设长度的二进制数并得到二进制数据;根据预设映射关系表将二进制数据映射为零宽字符串数据;在零宽字符串数据的前、后分别添加预设零宽字符串并得到最终编码数据;将最终编码数据作为数据库水印嵌入与待处理数据对应的嵌入位置;其中,预设长度不小于与字符对应的原始二进制数的长度,预设映射关系表是根据预设位数的不同二进制数和不同零宽字符串之间的映射关系确定的,由于先将待处理数据统一转换为初步编码数据,避免了采用不同的算法对不同类型的数据进行处理,提高了通用性,保证了数据库的高性能,并且最终编码数据采用零宽字符串,在嵌入数据库水印后不会影响数据展示,从而在不影响数据展示的基础上实现高效的数据库水印嵌入。
与本申请实施例中的一种数据库水印的嵌入方法相对应,本申请还提出了一种数据库水印的溯源方法,如图2所示,所述方法包括以下步骤:
步骤S201,根据所述嵌入位置确定所述最终编码数据。
该嵌入位置可根据用户输入的溯源指令获取。
步骤S202,去除所述最终编码数据前、后的所述预设零宽字符串并得到所述零宽字符串数据。
步骤S203,根据所述预设映射关系表将所述零宽字符串数据映射为所述二进制数据。
步骤S204,按所述预设长度将所述二进制数据划分为多组二进制数,并将各组二进制数转换为所述初步编码数据的各字符。
步骤S205,根据所述预设编码规则将各所述字符转换为所述待处理数据,并将所述待处理数据作为溯源结果数据。
为了准确的确定嵌入位置,在本申请一些实施例中,所述嵌入位置由标签标记确定,所述标签标记是预先根据所述待处理数据的类型、长度、位置和属性确定的。用户输入的溯源指令中可包括该标签标记。
通过应用以上技术方案,根据嵌入位置确定最终编码数据;去除最终编码数据前、后的预设零宽字符串并得到零宽字符串数据;根据预设映射关系表将零宽字符串数据映射为二进制数据;按预设长度将二进制数据划分为多组二进制数,并将各组二进制数转换为初步编码数据的各字符;根据预设编码规则将各字符转换为待处理数据,并将待处理数据作为溯源结果数据,从而只需要简单映射即可实现数据库水印的溯源,并保证了数据库的高性能。
为了进一步阐述本发明的技术思想,现结合具体的应用场景,对本发明的技术方案进行说明。
本申请实施例提供一种数据库水印的嵌入方法,包括以下步骤:
步骤S301,接收待处理数据R0,并按照与十六进制Unicode编码对应的编码规则进行编码,得到初步编码数据R1。
具体的,将待处理数据中的每个字符转换为十六进制Unicode编码,该编码规则可如表2所示。
表2
步骤S302,字符归一化。
将R1中为十六进制的每一位字符转换为8位的二进制数来表示,不足8位的,在其高位使用0来补到8位,保证每一个字符对应一个8位的二进制数,得到二进制数据R2。
步骤S303,使用零宽字符串编码。
根据表1的对应关系,将R2中的数据按照每两位转变为一个零宽字符串,其中00转换为\u200b,01转换为\u200c,10转换为\u200d,11转换为\u200e,得到零宽字符串数据R3。
步骤S304,添加前后缀。
在R3的前、后分别添加预设零宽字符串uFEFF,用uFEFF实现对R3的隔离,并得到最终编码数据R4。
步骤S305,将R4作为数据库水印嵌入与待处理数据对应的嵌入位置。
本申请实施例提供一种数据库水印的溯源方法,包括以下步骤:
步骤S401,根据嵌入位置确定最终编码数据。
从嵌入位置找到\uFEFF标识,提取从\uFEFF开始到\uFEFF结束的数据,得到最终编码数据R4。
步骤S402,移除前后缀。
将R4去掉开头的\uFEFF和结尾的\uFEFF,得到零宽字符串数据R3。
步骤S403,解码零宽字符串数据。
根据表1的对应关系,将R3转换为二进制数据R2。
步骤S404,还原为初步编码数据。
将R2的二进制数据每8位转换为一个字符,得到十六进制的初步编码数据R1。
步骤S405,将R1转换为待处理数据R0,将待处理数据R0作为溯源结果数据。
具体的,将十六进制的R1根据Unicode对照表进行转换,得到R0。
以下以“用户一”作为待处理数据为例,对数据库水印的嵌入和溯源过程进行说明。
数据库水印的嵌入过程如下:
S501,将“用户一”转换为十六进制的Unicode编码结果S1:\u7528\u6237\u4e00。
S502,字符归一化。
将S1中\u7528\u6237\u4e00的每一个字符都转换为8位的二进制数,不满足8位的,在其高位补0,最终得到结果为S2:
010111000111010100110111001101010011001000111000010111000111010100110110001100100011001100110111010111000111010100110100011001010011000000110000
S503,使用零宽字符串编码。
对S2中结果进行零宽字符串编码,根据预设映射关系表(表1)得到转换关系,最后结果为:
\u200c\u200c\u200e\u200b\u200c\u200e\u200c\u200c\u200b\u200e\u200c\u200e\u200b\u200e\u200c\u200c\u200b\u200e\u200b\u200d\u200b\u200e\u200d\u200b\u200c\u200c\u200e\u200b\u200c\u200e\u200c\u200c\u200b\u200e\u200c\u200d\u200b\u200e\u200b\u200d\u200b\u200e\u200b\u200e\u200b\u200e\u200c\u200e\u200c\u200c\u200e\u200b\u200c\u200e\u200c\u200c\u200b\u200e\u200c\u200b\u200c\u200d\u200c\u200c\u200b\u200e\u200b\u200b\u200b\u200e\u200b\u200b,该结果简化为[S3结果]。
S504,添加前后缀。
对[S3结果]添加前后缀进行隔离,最后结果是:
\uFEFF[S3结果]\uFEFF。
S505,输出为最终编码数据。
最终编码数据即为\uFEFF[S3结果]\uFEFF。
S506,将\uFEFF[S3结果]\uFEFF作为数据库水印嵌入与“用户一”对应的嵌入位置。
嵌入到数据中的数据库水印为:
\uFEFF\u200c\u200c\u200e\u200b\u200c\u200e\u200c\u200c\u200b\u200e\u200c\u200e\u200b\u200e\u200c\u200c\u200b\u200e\u200b\u200d\u200b\u200e\u200d\u200b\u200c\u200c\u200e\u200b\u200c\u200e\u200c\u200c\u200b\u200e\u200c\u200d\u200b\u200e\u200b\u200d\u200b\u200e\u200b\u200e\u200b\u200e\u200c\u200e\u200c\u200c\u200e\u200b\u200c\u200e\u200c\u200c\u200b\u200e\u200c\u200b\u200c\u200d\u200c\u200c\u200b\u200e\u200b\u200b\u200b\u200e\u200b\u200b\uFEFF。
数据库水印的溯源过程如下:
步骤S601,提取最终编码数据。
从嵌入位置根据\uFEFF提取出最终编码数据:\uFEFF[S3结果]\uFEFF。
步骤S602,移除前后缀。
去除前缀信息uFEFF\和后缀信息\uFEFF,得到[S3结果]。
步骤S603,解码零宽字符串
将[S3结果]根据表1对应关系还原为二进制数据S2:
010111000111010100110111001101010011001000111000010111000111010100110110001100100011001100110111010111000111010100110100011001010011000000110000
步骤S604,还原为十六进制的Unicode编码。
将S2结果中各8位二进制数转换为对应的十六进制结果为S1:\u7528\u6237\u4e00。
步骤S605,将S1还原为原始信息。
通过十六进制Unicode编码表找到对应的字符信息得到“用户一”。
本申请实施例还提出了一种数据库水印的嵌入装置,如图3所示,所述装置包括:
第一转换模块301,用于根据预设编码规则将待处理数据转换为初步编码数据;
第二转换模块302,用于将所述初步编码数据中的每位字符转换为预设长度的二进制数并得到二进制数据;
第一映射模块303,用于根据预设映射关系表将所述二进制数据映射为零宽字符串数据;
添加模块304,用于在所述零宽字符串数据的前、后分别添加预设零宽字符串并得到最终编码数据;
嵌入模块305,用于将所述最终编码数据作为数据库水印嵌入与所述待处理数据对应的嵌入位置;
其中,所述预设长度不小于与所述字符对应的原始二进制数的长度,所述预设映射关系表是根据预设位数的不同二进制数和不同零宽字符串之间的映射关系确定的。
本申请实施例还提出了一种数据库水印的溯源装置,如图4所示,所述装置包括:
确定模块401,用于根据所述嵌入位置确定所述最终编码数据;
去除模块402,用于去除所述最终编码数据前、后的所述预设零宽字符串并得到所述零宽字符串数据;
第二映射模块403,用于根据所述预设映射关系表将所述零宽字符串数据映射为所述二进制数据;
第三转换模块404,用于按所述预设长度将所述二进制数据划分为多组二进制数,并将各组二进制数转换为所述初步编码数据的各字符;
第四转换模块405,用于根据所述预设编码规则将各所述字符转换为所述待处理数据,并将所述待处理数据作为溯源结果数据。
本发明实施例还提供了一种电子设备,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,
存储器503,用于存储处理器的可执行指令;
处理器501,被配置为经由执行所述可执行指令来执行:
根据预设编码规则将待处理数据转换为初步编码数据;
将所述初步编码数据中的每位字符转换为预设长度的二进制数并得到二进制数据;
根据预设映射关系表将所述二进制数据映射为零宽字符串数据;
在所述零宽字符串数据的前、后分别添加预设零宽字符串并得到最终编码数据;
将所述最终编码数据作为数据库水印嵌入与所述待处理数据对应的嵌入位置;
其中,所述预设长度不小于与所述字符对应的原始二进制数的长度,所述预设映射关系表是根据预设位数的不同二进制数和不同零宽字符串之间的映射关系确定的。
或,
根据所述嵌入位置确定所述最终编码数据;
去除所述最终编码数据前、后的所述预设零宽字符串并得到所述零宽字符串数据;
根据所述预设映射关系表将所述零宽字符串数据映射为所述二进制数据;
按预设长度将所述二进制数据划分为多组二进制数,并将各组二进制数转换为所述初步编码数据的各字符;
根据所述预设编码规则将各所述字符转换为所述待处理数据,并将所述待处理数据作为溯源结果数据。
上述通信总线可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(Extended Industry Standard Architecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括RAM(Random Access Memory,随机存取存储器),也可以包括非易失性存储器,例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括CPU(Central Processing Unit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processing,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的数据库水印的嵌入方法或数据库水印的溯源方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如上所述的数据库水印的嵌入方法或数据库水印的溯源方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (8)
1.一种数据库水印的嵌入方法,其特征在于,所述方法包括:
根据预设编码规则将待处理数据转换为初步编码数据;
将所述初步编码数据中的每位字符转换为预设长度的二进制数并得到二进制数据;
根据预设映射关系表将所述二进制数据映射为零宽字符串数据;
在所述零宽字符串数据的前、后分别添加预设零宽字符串并得到最终编码数据;
将所述最终编码数据作为数据库水印嵌入与所述待处理数据对应的嵌入位置;
其中,所述预设长度不小于与所述字符对应的原始二进制数的长度,所述预设映射关系表是根据预设位数的不同二进制数和不同零宽字符串之间的映射关系确定的;
在将所述最终编码数据作为数据库水印嵌入与所述待处理数据对应的嵌入位置之前,所述方法还包括:
根据所述待处理数据的标签标记确定所述嵌入位置;
其中,所述标签标记是预先根据所述待处理数据的类型、长度、位置和属性确定的。
2.如权利要求1所述的方法,其特征在于,根据预设映射关系表将所述二进制数据映射为零宽字符串数据,具体为:
按所述预设位数将所述二进制数据划分为多组子数据;
将各组所述子数据按照所述预设映射关系表分别映射为零宽字符串并得到所述零宽字符串数据。
3.如权利要求1所述的方法,其特征在于,将所述初步编码数据中的每位字符转换为预设长度的二进制数并得到二进制数据,具体为:
按先后顺序依次对每位所述字符进行二进制转换得到各所述原始二进制数;
若所述原始二进制数的长度小于所述预设长度,在所述原始二进制数的最高位之前补零并使所述原始二进制数的长度达到所述预设长度;
根据与各所述字符对应的为预设长度的二进制数得到所述二进制数据。
4.如权利要求1所述的方法,其特征在于,所述预设编码规则包括与十六进制Unicode编码,或十进制Unicode编码,或十六进制GBK编码,或十进制GBK编码对应的编码规则。
5.一种如权利要求1所述数据库水印的溯源方法,其特征在于,所述方法包括:
根据所述嵌入位置确定所述最终编码数据;
去除所述最终编码数据前、后的所述预设零宽字符串并得到所述零宽字符串数据;
根据所述预设映射关系表将所述零宽字符串数据映射为所述二进制数据;
按所述预设长度将所述二进制数据划分为多组二进制数,并将各组二进制数转换为所述初步编码数据的各字符;
根据所述预设编码规则将各所述字符转换为所述待处理数据,并将所述待处理数据作为溯源结果数据。
6.一种数据库水印的嵌入装置,其特征在于,所述装置包括:
第一转换模块,用于根据预设编码规则将待处理数据转换为初步编码数据;
第二转换模块,用于将所述初步编码数据中的每位字符转换为预设长度的二进制数并得到二进制数据;
第一映射模块,用于根据预设映射关系表将所述二进制数据映射为零宽字符串数据;
添加模块,用于在所述零宽字符串数据的前、后分别添加预设零宽字符串并得到最终编码数据;
嵌入模块,用于将所述最终编码数据作为数据库水印嵌入与所述待处理数据对应的嵌入位置;
其中,所述预设长度不小于与所述字符对应的原始二进制数的长度,所述预设映射关系表是根据预设位数的不同二进制数和不同零宽字符串之间的映射关系确定的,所述嵌入位置由标签标记确定,所述标签标记是预先根据所述待处理数据的类型、长度、位置和属性确定的。
7.一种如权利要求6所述数据库水印的溯源装置,其特征在于,所述装置包括:
确定模块,用于根据所述嵌入位置确定所述最终编码数据;
去除模块,用于去除所述最终编码数据前、后的所述预设零宽字符串并得到所述零宽字符串数据;
第二映射模块,用于根据所述预设映射关系表将所述零宽字符串数据映射为所述二进制数据;
第三转换模块,用于按所述预设长度将所述二进制数据划分为多组二进制数,并将各组二进制数转换为所述初步编码数据的各字符;
第四转换模块,用于根据所述预设编码规则将各所述字符转换为所述待处理数据,并将所述待处理数据作为溯源结果数据。
8.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1~4中任意一项所述的嵌入方法或权利要求5所述的溯源方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211179867.9A CN115495439B (zh) | 2022-09-27 | 2022-09-27 | 数据库水印的嵌入方法、溯源方法、装置和电子设备 |
PCT/CN2023/085945 WO2024066271A1 (zh) | 2022-09-27 | 2023-04-03 | 数据库水印的嵌入方法、溯源方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211179867.9A CN115495439B (zh) | 2022-09-27 | 2022-09-27 | 数据库水印的嵌入方法、溯源方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115495439A CN115495439A (zh) | 2022-12-20 |
CN115495439B true CN115495439B (zh) | 2023-04-07 |
Family
ID=84473099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211179867.9A Active CN115495439B (zh) | 2022-09-27 | 2022-09-27 | 数据库水印的嵌入方法、溯源方法、装置和电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115495439B (zh) |
WO (1) | WO2024066271A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115495439B (zh) * | 2022-09-27 | 2023-04-07 | 北京柏睿数据技术股份有限公司 | 数据库水印的嵌入方法、溯源方法、装置和电子设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9087459B2 (en) * | 2012-11-30 | 2015-07-21 | The Nielsen Company (Us), Llc | Methods, apparatus, and articles of manufacture to encode auxilary data into text data and methods, apparatus, and articles of manufacture to obtain encoded data from text data |
CN105205355B (zh) * | 2015-11-05 | 2018-04-10 | 南通大学 | 一种基于语义角色位置映射的文本水印嵌入及提取方法 |
CN106570356B (zh) * | 2016-11-01 | 2020-01-31 | 南京理工大学 | 基于Unicode编码的文本水印嵌入及提取方法 |
CN111986065A (zh) * | 2019-05-23 | 2020-11-24 | 北京奇虎科技有限公司 | 一种数字水印嵌入方法及装置 |
CN110414194B (zh) * | 2019-07-02 | 2023-08-04 | 南京理工大学 | 一种文本水印的嵌入及提取方法 |
CN115495439B (zh) * | 2022-09-27 | 2023-04-07 | 北京柏睿数据技术股份有限公司 | 数据库水印的嵌入方法、溯源方法、装置和电子设备 |
-
2022
- 2022-09-27 CN CN202211179867.9A patent/CN115495439B/zh active Active
-
2023
- 2023-04-03 WO PCT/CN2023/085945 patent/WO2024066271A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024066271A1 (zh) | 2024-04-04 |
CN115495439A (zh) | 2022-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107330306B (zh) | 文本水印嵌入及提取方法、装置、电子设备及存储介质 | |
CN110597814B (zh) | 结构化数据的序列化、反序列化方法以及装置 | |
WO2007058959A2 (en) | Hardware unit for parsing an xml document | |
TWI604318B (zh) | 資料排序方法 | |
Wang et al. | A coverless plain text steganography based on character features | |
CN103543980B (zh) | 数字数据处理的方法及装置 | |
CN115495439B (zh) | 数据库水印的嵌入方法、溯源方法、装置和电子设备 | |
CN107919943A (zh) | 二进制数据的编码、解码方法和装置 | |
CN112948776A (zh) | 一种数字水印添加方法、装置、电子设备及存储介质 | |
Taleby Ahvanooey et al. | An innovative technique for web text watermarking (AITW) | |
CN112035857A (zh) | 数据保护方法、装置、设备及介质 | |
JP2005501303A (ja) | 大きな文字セットに対応する方法及びシステム | |
CN112436943B (zh) | 基于大数据的请求去重方法、装置、设备及存储介质 | |
CN109413077B (zh) | 一种json报文数据的收发方法、装置及电子设备 | |
CN114880523A (zh) | 字符串处理方法、装置、电子设备及存储介质 | |
CN114629707A (zh) | 一种乱码检测方法、装置及电子设备和存储介质 | |
CN112100453B (zh) | 一种字符串分布统计方法、系统、设备及计算机存储介质 | |
CN112230983B (zh) | 信息处理方法、电子设备和介质 | |
CN112232025A (zh) | 一种字符串存储方法、装置及电子设备 | |
CN110889035A (zh) | 敏感信息过滤方法、装置及计算机可读存储介质 | |
CN112395565A (zh) | 一种水印信息的嵌入、提取方法、装置及电子设备 | |
CN110287147B (zh) | 一种字符串排序方法及装置 | |
CN113283215B (zh) | 一种基于utf-32编码的数据混淆方法及装置 | |
US20240037318A1 (en) | Encoded string processing | |
CN114297695B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |