CN114579602A - 基于加密数据的数据检索方法、装置、存储介质和设备 - Google Patents
基于加密数据的数据检索方法、装置、存储介质和设备 Download PDFInfo
- Publication number
- CN114579602A CN114579602A CN202210230752.1A CN202210230752A CN114579602A CN 114579602 A CN114579602 A CN 114579602A CN 202210230752 A CN202210230752 A CN 202210230752A CN 114579602 A CN114579602 A CN 114579602A
- Authority
- CN
- China
- Prior art keywords
- encrypted
- field
- data
- service data
- plaintext
- 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
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/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2468—Fuzzy queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Bioethics (AREA)
- Fuzzy Systems (AREA)
- Automation & Control Theory (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种基于加密数据的数据检索方法、装置、存储介质和设备,该方法包括:在接收到用户发送的查询指令后,利用查询指令所示的SQL语句,对数据库表进行模糊搜索,得到包含有预设关键字的加密数据;将加密数据中满足第一预设条件的字段,标识为待解密字段;对待解密字段进行解密,得到目标明文;利用目标明文替换加密数据中满足第二预设条件的字段,得到业务数据,并将业务数据发送给用户。该方法基于加密数据中所植入的第一分隔符和第二分隔符,确保经由模糊搜索得到的加密数据能够正常解密,相较于现有技术,无需逐个解密数据库表中的所有加密数据,实现在确保数据库表中的加密数据不被泄露的情况,快速有效地检索加密数据。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于加密数据的数据检索方法、装置、存储介质和设备。
背景技术
对于金融行业来说,业务数据(例如用户信息、交易信息)是较为敏感的,因此,需要进行加密存储。
但在实际业务运营过程中,为了及时发现产品客户增长中出现的问题并加以解决,有很多需要对业务数据进行分析的场景,经常会遇到需要对敏感数据的部分字段进行解析,例如对业务数据中的手机号中前7位进行分析以确定用户归属地,对银行卡号中某些字段进行分析等。
因此,现实的需求是:既要对敏感数据进行加密又要便于分析人员对业务数据中的某些字段进行提取分析。
目前,现有的数据加密方式为全字段加密,即将每个业务数据中的字段进行全部加密。然而,利用现有全字段加密方式所得到的加密数据,分析人员在进行数据检索时,难以检索到自身所需求的数据,具体的,逐个对数据库表中的各个加密数据进行解密查询,将耗费大量时间,若是将数据库表中所有的加密数据均进行解密后再检索,又容易泄露数据。
为此,如何在确保数据库表中的加密数据不被泄露的情况,快速有效地检索加密数据,成为本领域亟需解决的问题。
发明内容
本申请提供了一种基于加密数据的数据检索方法、装置、存储介质和设备,用于在确保数据库表中的加密数据不被泄露的情况,快速有效地检索加密数据。
为了实现上述目的,本申请提供了以下技术方案:
一种基于加密数据的数据检索方法,包括:
在接收到用户发送的查询指令后,利用所述查询指令所示的SQL语句,对数据库表进行模糊搜索,得到包含有预设关键字的加密数据;所述查询指令包括以所述预设关键字作为检索依据的SQL语句;所述加密数据基于对业务数据中的待加密字段进行加密所得到;所述待加密字段由所述业务数据的加密属性所确定;
将所述加密数据中满足第一预设条件的字段,标识为待解密字段;所述第一预设条件为:字段位于第一分隔符和第二分隔符之间;
对所述待解密字段进行解密,得到目标明文;
利用所述目标明文替换所述加密数据中满足第二预设条件的字段,得到所述业务数据,并将所述业务数据发送给所述用户;所述第二预设条件为:字段的第一位字符为所述第一分隔符,且最后一位字符为所述第二分隔符。
可选的,所述基于对业务数据中的待加密字段进行加密得到所述加密数据的过程,包括:
预先获取业务数据,以及所述业务数据的加密属性;所述加密属性包括第一属性和第二属性;所述第一属性用于指示待加密字段的起始位置;所述第二属性用于指示所述待加密字段的长度;所述起始位置的取值为整数;所述长度的取值为正整数;
基于所述待加密字段的起始位置,以及所述待加密字段的长度,从所述业务数据所示字符串中,获取所述待加密字段的明文,以及非加密字段的明文;
对所述待加密字段的明文进行加密,得到所述待加密字段的密文;
利用所述待加密字段的密文替换所述业务数据中待加密字段的明文,并在所述待加密字段的密文与所述非加密字段的明文之间植入分隔符,得到所述业务数据的加密数据;所述分隔符包括所述第一分隔符和所述第二分隔符。
可选的,所述基于所述待加密字段的起始位置,以及所述待加密字段的长度,从所述业务数据所示字符串中,获取所述待加密字段的明文,以及非加密字段的明文,包括:
当所述起始位置的取值大于且等于0时,获取所述业务数据所示字符串中以第m位为开始位置,直至第m+n-1位为结束位置的字段,作为所述待加密字段的明文;m代表所述起始位置的取值;n代表所述长度的取值;
将所述业务数据所示字符串中除所述待加密字段之外的其他字段,标识为非加密字段的明文。
可选的,所述基于所述待加密字段的起始位置,以及所述待加密字段的长度,从所述业务数据所示字符串中,获取所述待加密字段的明文,以及非加密字段的明文,包括:
当所述起始位置的取值小于0时,获取所述业务数据所示字符串中以第k+m位为开始位置,直至第k+m+n-1位为结束位置的字段,作为所述待加密字段的明文;k代表所述业务数据的字符串长度;m代表所述起始位置的取值;n代表所述长度的取值;
将所述业务数据所示字符串中除所述待加密字段之外的其他字段,标识为非加密字段的明文。
可选的,所述在接收到用户发送的查询指令后,利用所述查询指令所示的SQL语句,对数据库表进行模糊搜索,得到包含有预设关键字的加密数据,包括:
在接收到用户发送的查询指令后,对所述查询指令所示的SQL语句进行解析,得到解析结果;所述查询指令包括以预设关键字作为检索依据的SQL语句;
在所述解析结果指示所述SQL语句中包含有预设关键词的情况下,确定所述查询指令的查询方式为模糊查询,并利用所述SQL语句,对数据库表进行模糊搜索,得到包含有预设关键字的加密数据。
可选的,还包括:
在所述解析结果指示所述SQL语句中不包含有所述预设关键词的情况下,确定所述查询指令的查询方式为精确查询,并利用预设的摘要算法,生成所述预设关键字的摘要;
从所述数据库表中获取包含有所述预设关键字的摘要的键值对;
对所述键值对进行解析,得到包含有所述预设关键字的加密数据。
可选的,所述从所述数据库表中获取包含有所述预设关键字的摘要的键值对之前,还包括:
预先获取业务数据,以及所述业务数据的加密属性;
利用所述摘要算法,生成所述业务数据的摘要;
基于所述业务数据的加密数据以及摘要,生成所述业务数据的键值对;
将所述业务数据的加密数据以及键值对,存储到所述数据库表中。
一种基于加密数据的数据检索装置,包括:
模糊搜索单元,用于在接收到用户发送的查询指令后,利用所述查询指令所示的SQL语句,对数据库表进行模糊搜索,得到包含有预设关键字的加密数据;所述查询指令包括以所述预设关键字作为检索依据的SQL语句;所述加密数据基于对业务数据中的待加密字段进行加密所得到;所述待加密字段由所述业务数据的加密属性所确定;
标识单元,用于将所述加密数据中满足第一预设条件的字段,标识为待解密字段;所述第一预设条件为:字段位于第一分隔符和第二分隔符之间;
解密单元,用于对所述待解密字段进行解密,得到目标明文;
还原单元,用于利用所述目标明文替换所述加密数据中满足第二预设条件的字段,得到所述业务数据,并将所述业务数据发送给所述用户;所述第二预设条件为:字段的第一位字符为所述第一分隔符,且最后一位字符为所述第二分隔符。
一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,所述程序执行所述的基于加密数据的数据检索方法。
一种基于加密数据的数据检索设备,包括:处理器、存储器和总线;所述处理器与所述存储器通过所述总线连接;
所述存储器用于存储程序,所述处理器用于运行程序,其中,所述程序运行时执行所述的基于加密数据的数据检索方法。
本申请提供的技术方案,在接收到用户发送的查询指令后,利用查询指令所示的SQL语句,对数据库表进行模糊搜索,得到包含有预设关键字的加密数据,其中,查询指令包括以预设关键字作为检索依据的SQL语句,加密数据基于对业务数据中的待加密字段进行加密所得到,待加密字段由业务数据的加密属性所确定。将加密数据中满足第一预设条件的字段,标识为待解密字段。对待解密字段进行解密,得到目标明文。利用目标明文替换加密数据中满足第二预设条件的字段,得到业务数据,并将业务数据发送给用户。基于业务数据的加密属性,实现对业务数据中部分字段的选择性加密,从而确保用于存储加密数据的数据库表能够支持模糊搜索,并且,基于加密数据中所植入的第一分隔符和第二分隔符,确保经由模糊搜索得到的包含有预设关键字的加密数据能够正常解密,相较于现有技术,无需逐个解密数据库表中的所有加密数据,实现了在确保数据库表中的加密数据不被泄露的情况,快速有效地检索加密数据。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a为本申请实施例提供的一种基于加密数据的数据检索方法的流程示意图;
图1b为本申请实施例提供的一种基于加密数据的数据检索方法的流程示意图;
图2为本申请实施例提供的另一种基于加密数据的数据检索方法的流程示意图;
图3为本申请实施例提供的一种基于加密数据的数据检索装置的架构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1a和图1b所示,为本申请实施例提供的一种基于加密数据的数据检索方法的流程示意图,包括如下步骤:
S101:预先获取业务数据,以及业务数据的加密属性。
其中,加密属性包括第一属性和第二属性,第一属性用于指示待加密字段的起始位置,第二属性用于指示待加密字段的长度(即待加密字段所包含的字符数量)。
在本申请实施例中,第一属性的取值m为整数,第二属性的取值n为正整数,且n不大于业务数据的字符串长度k。
需要说明的,若m=0,则代表需要对业务数据所示字符串的开头部分进行部分加密。若m>0,则代表需要对业务数据所示字符串的中间部分进行部分加密。若m<0,则代表需要对业务数据所示字符串的结尾部分进行部分加密。
此外,获取业务数据的加密属性,通常是基于底层逻辑的反射机制所实现的,并且,业务数据获取的渠道方式包括但不限于为:使用预设拦截器从业务系统中获取业务数据。
S102:基于待加密字段的起始位置,以及待加密字段的长度,从业务数据所示字符串中,获取待加密字段的明文,以及非加密字段的明文。
其中,可以利用预设的字符串函数,基于待加密字段的起始位置,以及待加密字段的长度,从业务数据所示字符串中,获取待加密字段的明文,以及非加密字段的明文。
当m大于且等于0时,利用plainToEncrypt=plain.substring(m,m+n)函数,获取业务数据所示字符串中以第m位为开始位置,直至第m+n-1位为结束位置的字段,作为待加密字段的明文,并将业务数据所示字符串中除待加密字段之外的其他字段,标识为非加密字段的明文。通常来讲,可以用第0位代表字符串中的初始字符的位置,以字符串abcdefgh为例,第0位为a、第1位为b、第2位为c、第3位为d、第4位为e、第5位为f、第6位为e、第7位为h。
具体的,假设业务数据所示字符串为abcdefgh,m=0、且n=3,则利用plainToEncrypt=“abcdefgh”.substring(0,0+3)函数,从业务数据中获得待加密字段abc,以及非加密字段defgh。
具体的,假设业务数据所示字符串为abcdefgh,m=3、且n=3,则利用plainToEncrypt=“abcdefgh”.substring(3,3+3)函数,从业务数据中获得待加密字段def、非加密字段abc和非加密字段gh。
当m小于0时,调用plainToEncrypt=plain.substring(k+m,k+m+n)函数,获取业务数据所示字符串中以第k+m位为开始位置,直至第k+m+n-1位为结束位置的字段,作为待加密字段的明文,并将业务数据所示字符串中除待加密字段之外的其他字段,标识为非加密字段的明文。
具体的,假设业务数据所示字符串为abcdefgh,m=-2、且n=2,则利用plainToEncrypt=“abcdefgh”.substring(8-2,8-2+2)函数,从业务数据中获得待加密字段gh,以及非加密字段abcdef。
S103:对待加密字段的明文进行加密,得到待加密字段的密文。
其中,对待加密字段的明文进行加密的具体实现过程,为本领域技术人员所熟悉的技术手段,具体的,可以调用现有的加密服务,对待加密字段的明文进行加密。
S104:利用待加密字段的密文替换业务数据中待加密字段的明文,并在待加密字段的密文与非加密字段的明文之间植入预设的分隔符,得到业务数据的加密数据。
其中,预设的分隔符包括第一分隔符和第二分隔符,在待加密字段的密文与非加密字段的明文之间植入第一分隔符和第二分隔符,其目的是为了后续对加密数据进行解密时,利用第一分隔符和第二分隔符快速确定加密字段的密文在加密数据中的位置。
具体的,假设业务数据所示字符串为abcdefgh,待加密字段的明文为abc,非加密字段的明文为defgh,待加密字段的密文为XXX,利用XXX替换业务数据中的abc,并在XXX与defgh之间植入第一分隔符和第二分隔符(第一分隔符和第二分隔符均为|),得到业务数据的加密数据,该加密数据为|XXX|defgh。
假设业务数据所示字符串为abcdefgh,待加密字段的明文为def,非加密字段的明文包括abc和gh,待加密字段的密文为XXX,利用XXX替换业务数据中的def,并在XXX与abc之间、XXX与gh之间分别植入第一分隔符和第二分隔符(第一分隔符和第二分隔符均为|),得到业务数据的加密数据,该加密数据为abc|XXX|gh。
假设业务数据所示字符串为abcdefgh,待加密字段的明文为gh,非加密字段的明文包括abcdef,待加密字段的密文为XXX,利用XXX替换业务数据中的gh,并在XXX与abcdef之间分别植入第一分隔符和第二分隔符(第一分隔符和第二分隔符均为|),得到业务数据的加密数据,该加密数据为abccdef|XXX|。
需要说明的是,上述具体实现过程仅仅用于举例说明。第一分隔符和第二分隔符可以为不同类型的分隔符。
S105:利用预设的摘要算法,生成业务数据的摘要。
其中,预设的摘要算法包括但不限于为:安全散列算法(Secure Hash Algorithm,SHA),消息摘要算法(Message Digest,MD),以及消息认证码(Message AuthenticationCode,MAC)等。
S106:基于业务数据的加密数据以及摘要,生成业务数据的键值对,并将业务数据的加密数据以及键值对,均存储到数据库表中。
S107:在接收到用户发送的查询指令后,对查询指令所示的SQL语句进行解析,得到解析结果。
其中,查询指令包括以预设关键字作为检索依据的SQL语句。
S108:在解析结果指示SQL语句中包含有预设关键词的情况下,确定查询指令的查询方式为模糊查询,并利用SQL语句,对数据库表进行模糊搜索,得到包含有预设关键字的加密数据。
其中,预设关键词可以设为like,具体的,假设查询指令所示的SQL语句为likeabc%,则abc为预设关键字,用于指示从数据库表中搜索得出以abc字段为开头的加密数据。
需要说明的是,所谓的模糊搜索,为本领域技术人员所熟悉的技术手段,这里不再赘述。
S109:将包含有预设关键字的加密数据中满足第一预设条件的字段,标识为待解密字段。
其中,第一预设条件为:字段位于第一分隔符和第二分隔符之间。
需要说明的是,将包含有预设关键字的加密数据中满足第一预设条件的字段,标识为待解密字段的具体表现逻辑可以设为:String encrypted=str.substring(firstSeparator+1,secondSeparator)。在具体表现逻辑中,str.substring()为用于返回指定的子字符串的函数,firstSeparator代表第一分隔符在加密数据中的位置,secondSeparator代表第二分隔符在加密数据中的位置。
S110:对待解密字段进行解密,得到目标明文。
其中,对待解密字段进行解密的具体实现过程,为本领域技术人员所熟悉的技术手段,具体的,可以调用现有的解密服务,对待解密字段进行解密。
S111:利用目标明文替换加密数据中满足第二预设条件的字段,得到业务数据,并将业务数据发送给用户。
其中,第二预设条件为:字段的第一位字符为第一分隔符,且最后一位字符为第二分隔符。
S112:在解析结果指示SQL语句中不包含有预设关键词的情况下,确定查询指令的查询方式为精确查询,并利用摘要算法,生成预设关键字的摘要。
其中,生成预设关键字的摘要所采用的摘要算法,与生成业务数据的摘要所采用的摘要算法保持一致。
S113:从数据库表中获取包含有预设关键字的摘要的键值对。
S114:对包含有预设关键字的摘要的键值对进行解析,得到包含有预设关键字的加密数据。
S115:将包含有预设关键字的加密数据中满足第一预设条件的字段,标识为待解密字段。
其中,S115的具体执行过程和实现原理,与上述S109的具体执行过程和实现原理一致,这里不再赘述。
S116:对待解密字段进行解密,得到目标明文。
其中,S116的具体执行过程和实现原理,与上述S110的具体执行过程和实现原理一致,这里不再赘述。
S117:利用目标明文替换加密数据中满足第二预设条件的字段,得到业务数据,并将业务数据发送给用户。
其中,S117的具体执行过程和实现原理,与上述S111的具体执行过程和实现原理一致,这里不再赘述。
基于上述S101-S117所述流程,本申请实施例可以实现以下有益效果:
1、相较于现有技术,能够对业务数据中的部分字段进行加密,得到业务数据的加密数据,从而确保用于存储加密数据的数据库表能够支持模糊搜索。
2、基于在加密数据中植入分隔符,确保加密数据的解密过程较为简单便捷。
3、利用待加密字段的密文替换业务数据中待加密字段的明文,可避免对业务数据进行重复加密,利用目标明文替换加密数据中满足第二预设条件的字段,可避免对加密数据进行重复解密。
4、基于在加密数据中植入分隔符,确保当业务数据的加密属性变更(即根据实际需求调整第一属性和第二属性)时,还能通过分隔符实现对加密数据的解密,得到业务数据,使得解密过程的兼容性和灵活性得到有效提高。
5、基于业务数据的加密属性,避免对业务数据本身进行改造,不仅减少对业务数据的侵害,还减少不必要的代码开发工作。
综上所述,基于业务数据的加密属性,实现对业务数据中部分字段的选择性加密,从而确保用于存储加密数据的数据库表能够支持模糊搜索,并且,基于加密数据中所植入的第一分隔符和第二分隔符,确保经由模糊搜索得到的包含有预设关键字的加密数据能够正常解密,相较于现有技术,无需逐个解密数据库表中的所有加密数据,实现了在确保数据库表中的加密数据不被泄露的情况,快速有效地检索加密数据。
需要说明的是,上述实施例提及的S104,为本申请所述基于加密数据的数据检索方法的一种可选的实现方式。此外,上述实施例提及的S112,也为本申请所述基于加密数据的数据检索方法的一种可选的实现方式。为此,上述实施例所示的流程,可以概括为图2所示的方法。
如图2所示,为本申请实施例提供的另一种基于加密数据的数据检索方法的流程示意图,包括如下步骤:
S201:在接收到用户发送的查询指令后,利用查询指令所示的SQL语句,对数据库表进行模糊搜索,得到包含有预设关键字的加密数据。
其中,查询指令包括以预设关键字作为检索依据的SQL语句;加密数据基于对业务数据中的待加密字段进行加密所得到;待加密字段由业务数据的加密属性所确定。
S202:将加密数据中满足第一预设条件的字段,标识为待解密字段。
其中,第一预设条件为:字段位于第一分隔符和第二分隔符之间。
S203:对待解密字段进行解密,得到目标明文。
S204:利用目标明文替换加密数据中满足第二预设条件的字段,得到业务数据,并将业务数据发送给用户。
其中,第二预设条件为:字段的第一位字符为第一分隔符,且最后一位字符为第二分隔符。
综上所述,基于业务数据的加密属性,实现对业务数据中部分字段的选择性加密,从而确保用于存储加密数据的数据库表能够支持模糊搜索,并且,基于加密数据中所植入的第一分隔符和第二分隔符,确保经由模糊搜索得到的包含有预设关键字的加密数据能够正常解密,相较于现有技术,无需逐个解密数据库表中的所有加密数据,实现了在确保数据库表中的加密数据不被泄露的情况,快速有效地检索加密数据。
与上述本申请实施例提供的基于加密数据的数据检索方法相对应,本申请实施例还提供了一种基于加密数据的数据检索装置。
如图3所示,为本申请实施例提供的一种基于加密数据的数据检索装置的架构示意图,包括:
存储单元100,用于:预先获取业务数据,以及业务数据的加密属性;利用摘要算法,生成业务数据的摘要;基于业务数据的加密数据以及摘要,生成业务数据的键值对;将业务数据的加密数据以及键值对,存储到数据库表中。
模糊搜索单元200,用于在接收到用户发送的查询指令后,利用查询指令所示的SQL语句,对数据库表进行模糊搜索,得到包含有预设关键字的加密数据;查询指令包括以预设关键字作为检索依据的SQL语句;加密数据基于对业务数据中的待加密字段进行加密所得到;待加密字段由业务数据的加密属性所确定。
其中,模糊搜索单元200具体用于:预先获取业务数据,以及业务数据的加密属性;加密属性包括第一属性和第二属性;第一属性用于指示待加密字段的起始位置;第二属性用于指示待加密字段的长度;起始位置的取值为整数;长度的取值为正整数;基于待加密字段的起始位置,以及待加密字段的长度,从业务数据所示字符串中,获取待加密字段的明文,以及非加密字段的明文;对待加密字段的明文进行加密,得到待加密字段的密文;利用待加密字段的密文替换业务数据中待加密字段的明文,并在待加密字段的密文与非加密字段的明文之间植入分隔符,得到业务数据的加密数据;分隔符包括第一分隔符和第二分隔符。
模糊搜索单元200具体用于:当起始位置的取值大于且等于0时,获取业务数据所示字符串中以第m位为开始位置,直至第m+n-1位为结束位置的字段,作为待加密字段的明文;m代表起始位置的取值;n代表长度的取值;将业务数据所示字符串中除待加密字段之外的其他字段,标识为非加密字段的明文。
模糊搜索单元200具体用于:当起始位置的取值小于0时,获取业务数据所示字符串中以第k+m位为开始位置,直至第k+m+n-1位为结束位置的字段,作为待加密字段的明文;k代表业务数据的字符串长度;m代表起始位置的取值;n代表长度的取值;将业务数据所示字符串中除待加密字段之外的其他字段,标识为非加密字段的明文。
模糊搜索单元200具体用于:在接收到用户发送的查询指令后,对查询指令所示的SQL语句进行解析,得到解析结果;在解析结果指示SQL语句中包含有预设关键词的情况下,确定查询指令的查询方式为模糊查询,并利用SQL语句,对数据库表进行模糊搜索,得到包含有预设关键字的加密数据。
精确搜索单元300,用于:在解析结果指示SQL语句中不包含有预设关键词的情况下,确定查询指令的查询方式为精确查询,并利用预设的摘要算法,生成预设关键字的摘要;从数据库表中获取包含有预设关键字的摘要的键值对;对键值对进行解析,得到包含有预设关键字的加密数据。
标识单元400,用于将加密数据中满足第一预设条件的字段,标识为待解密字段;第一预设条件为:字段位于第一分隔符和第二分隔符之间。
解密单元500,用于对待解密字段进行解密,得到目标明文。
还原单元600,用于利用目标明文替换加密数据中满足第二预设条件的字段,得到业务数据,并将业务数据发送给用户;第二预设条件为:字段的第一位字符为第一分隔符,且最后一位字符为第二分隔符。
综上所述,基于业务数据的加密属性,实现对业务数据中部分字段的选择性加密,从而确保用于存储加密数据的数据库表能够支持模糊搜索,并且,基于加密数据中所植入的第一分隔符和第二分隔符,确保经由模糊搜索得到的包含有预设关键字的加密数据能够正常解密,相较于现有技术,无需逐个解密数据库表中的所有加密数据,实现了在确保数据库表中的加密数据不被泄露的情况,快速有效地检索加密数据。
本申请还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,程序执行上述本申请提供的基于加密数据的数据检索方法。
本申请还提供了一种基于加密数据的数据检索设备,包括:处理器、存储器和总线。处理器与存储器通过总线连接,存储器用于存储程序,处理器用于运行程序,其中,程序运行时执行上述本申请提供的基于加密数据的数据检索方法,包括如下步骤:
在接收到用户发送的查询指令后,利用所述查询指令所示的SQL语句,对数据库表进行模糊搜索,得到包含有预设关键字的加密数据;所述查询指令包括以所述预设关键字作为检索依据的SQL语句;所述加密数据基于对业务数据中的待加密字段进行加密所得到;所述待加密字段由所述业务数据的加密属性所确定;
将所述加密数据中满足第一预设条件的字段,标识为待解密字段;所述第一预设条件为:字段位于第一分隔符和第二分隔符之间;
对所述待解密字段进行解密,得到目标明文;
利用所述目标明文替换所述加密数据中满足第二预设条件的字段,得到所述业务数据,并将所述业务数据发送给所述用户;所述第二预设条件为:字段的第一位字符为所述第一分隔符,且最后一位字符为所述第二分隔符。
具体的,在上述实施例的基础上,所述基于对业务数据中的待加密字段进行加密得到所述加密数据的过程,包括:
预先获取业务数据,以及所述业务数据的加密属性;所述加密属性包括第一属性和第二属性;所述第一属性用于指示待加密字段的起始位置;所述第二属性用于指示所述待加密字段的长度;所述起始位置的取值为整数;所述长度的取值为正整数;
基于所述待加密字段的起始位置,以及所述待加密字段的长度,从所述业务数据所示字符串中,获取所述待加密字段的明文,以及非加密字段的明文;
对所述待加密字段的明文进行加密,得到所述待加密字段的密文;
利用所述待加密字段的密文替换所述业务数据中待加密字段的明文,并在所述待加密字段的密文与所述非加密字段的明文之间植入分隔符,得到所述业务数据的加密数据;所述分隔符包括所述第一分隔符和所述第二分隔符。
具体的,在上述实施例的基础上,所述基于所述待加密字段的起始位置,以及所述待加密字段的长度,从所述业务数据所示字符串中,获取所述待加密字段的明文,以及非加密字段的明文,包括:
当所述起始位置的取值大于且等于0时,获取所述业务数据所示字符串中以第m位为开始位置,直至第m+n-1位为结束位置的字段,作为所述待加密字段的明文;m代表所述起始位置的取值;n代表所述长度的取值;
将所述业务数据所示字符串中除所述待加密字段之外的其他字段,标识为非加密字段的明文。
具体的,在上述实施例的基础上,所述基于所述待加密字段的起始位置,以及所述待加密字段的长度,从所述业务数据所示字符串中,获取所述待加密字段的明文,以及非加密字段的明文,包括:
当所述起始位置的取值小于0时,获取所述业务数据所示字符串中以第k+m位为开始位置,直至第k+m+n-1位为结束位置的字段,作为所述待加密字段的明文;k代表所述业务数据的字符串长度;m代表所述起始位置的取值;n代表所述长度的取值;
将所述业务数据所示字符串中除所述待加密字段之外的其他字段,标识为非加密字段的明文。
具体的,在上述实施例的基础上,所述在接收到用户发送的查询指令后,利用所述查询指令所示的SQL语句,对数据库表进行模糊搜索,得到包含有预设关键字的加密数据,包括:
在接收到用户发送的查询指令后,对所述查询指令所示的SQL语句进行解析,得到解析结果;所述查询指令包括以预设关键字作为检索依据的SQL语句;
在所述解析结果指示所述SQL语句中包含有预设关键词的情况下,确定所述查询指令的查询方式为模糊查询,并利用所述SQL语句,对数据库表进行模糊搜索,得到包含有预设关键字的加密数据。
具体的,在上述实施例的基础上,还包括:
在所述解析结果指示所述SQL语句中不包含有所述预设关键词的情况下,确定所述查询指令的查询方式为精确查询,并利用预设的摘要算法,生成所述预设关键字的摘要;
从所述数据库表中获取包含有所述预设关键字的摘要的键值对;
对所述键值对进行解析,得到包含有所述预设关键字的加密数据。
具体的,在上述实施例的基础上,所述从所述数据库表中获取包含有所述预设关键字的摘要的键值对之前,还包括:
预先获取业务数据,以及所述业务数据的加密属性;
利用所述摘要算法,生成所述业务数据的摘要;
基于所述业务数据的加密数据以及摘要,生成所述业务数据的键值对;
将所述业务数据的加密数据以及键值对,存储到所述数据库表中。
本申请实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种基于加密数据的数据检索方法,其特征在于,包括:
在接收到用户发送的查询指令后,利用所述查询指令所示的SQL语句,对数据库表进行模糊搜索,得到包含有预设关键字的加密数据;所述查询指令包括以所述预设关键字作为检索依据的SQL语句;所述加密数据基于对业务数据中的待加密字段进行加密所得到;所述待加密字段由所述业务数据的加密属性所确定;
将所述加密数据中满足第一预设条件的字段,标识为待解密字段;所述第一预设条件为:字段位于第一分隔符和第二分隔符之间;
对所述待解密字段进行解密,得到目标明文;
利用所述目标明文替换所述加密数据中满足第二预设条件的字段,得到所述业务数据,并将所述业务数据发送给所述用户;所述第二预设条件为:字段的第一位字符为所述第一分隔符,且最后一位字符为所述第二分隔符。
2.根据权利要求1所述的方法,其特征在于,所述基于对业务数据中的待加密字段进行加密得到所述加密数据的过程,包括:
预先获取业务数据,以及所述业务数据的加密属性;所述加密属性包括第一属性和第二属性;所述第一属性用于指示待加密字段的起始位置;所述第二属性用于指示所述待加密字段的长度;所述起始位置的取值为整数;所述长度的取值为正整数;
基于所述待加密字段的起始位置,以及所述待加密字段的长度,从所述业务数据所示字符串中,获取所述待加密字段的明文,以及非加密字段的明文;
对所述待加密字段的明文进行加密,得到所述待加密字段的密文;
利用所述待加密字段的密文替换所述业务数据中待加密字段的明文,并在所述待加密字段的密文与所述非加密字段的明文之间植入分隔符,得到所述业务数据的加密数据;所述分隔符包括所述第一分隔符和所述第二分隔符。
3.根据权利要求2所述的方法,其特征在于,所述基于所述待加密字段的起始位置,以及所述待加密字段的长度,从所述业务数据所示字符串中,获取所述待加密字段的明文,以及非加密字段的明文,包括:
当所述起始位置的取值大于且等于0时,获取所述业务数据所示字符串中以第m位为开始位置,直至第m+n-1位为结束位置的字段,作为所述待加密字段的明文;m代表所述起始位置的取值;n代表所述长度的取值;
将所述业务数据所示字符串中除所述待加密字段之外的其他字段,标识为非加密字段的明文。
4.根据权利要求2所述的方法,其特征在于,所述基于所述待加密字段的起始位置,以及所述待加密字段的长度,从所述业务数据所示字符串中,获取所述待加密字段的明文,以及非加密字段的明文,包括:
当所述起始位置的取值小于0时,获取所述业务数据所示字符串中以第k+m位为开始位置,直至第k+m+n-1位为结束位置的字段,作为所述待加密字段的明文;k代表所述业务数据的字符串长度;m代表所述起始位置的取值;n代表所述长度的取值;
将所述业务数据所示字符串中除所述待加密字段之外的其他字段,标识为非加密字段的明文。
5.根据权利要求1所述的方法,其特征在于,所述在接收到用户发送的查询指令后,利用所述查询指令所示的SQL语句,对数据库表进行模糊搜索,得到包含有预设关键字的加密数据,包括:
在接收到用户发送的查询指令后,对所述查询指令所示的SQL语句进行解析,得到解析结果;所述查询指令包括以预设关键字作为检索依据的SQL语句;
在所述解析结果指示所述SQL语句中包含有预设关键词的情况下,确定所述查询指令的查询方式为模糊查询,并利用所述SQL语句,对数据库表进行模糊搜索,得到包含有预设关键字的加密数据。
6.根据权利要求1所述的方法,其特征在于,还包括:
在所述解析结果指示所述SQL语句中不包含有所述预设关键词的情况下,确定所述查询指令的查询方式为精确查询,并利用预设的摘要算法,生成所述预设关键字的摘要;
从所述数据库表中获取包含有所述预设关键字的摘要的键值对;
对所述键值对进行解析,得到包含有所述预设关键字的加密数据。
7.根据权利要求6所述的方法,其特征在于,所述从所述数据库表中获取包含有所述预设关键字的摘要的键值对之前,还包括:
预先获取业务数据,以及所述业务数据的加密属性;
利用所述摘要算法,生成所述业务数据的摘要;
基于所述业务数据的加密数据以及摘要,生成所述业务数据的键值对;
将所述业务数据的加密数据以及键值对,存储到所述数据库表中。
8.一种基于加密数据的数据检索装置,其特征在于,包括:
模糊搜索单元,用于在接收到用户发送的查询指令后,利用所述查询指令所示的SQL语句,对数据库表进行模糊搜索,得到包含有预设关键字的加密数据;所述查询指令包括以所述预设关键字作为检索依据的SQL语句;所述加密数据基于对业务数据中的待加密字段进行加密所得到;所述待加密字段由所述业务数据的加密属性所确定;
标识单元,用于将所述加密数据中满足第一预设条件的字段,标识为待解密字段;所述第一预设条件为:字段位于第一分隔符和第二分隔符之间;
解密单元,用于对所述待解密字段进行解密,得到目标明文;
还原单元,用于利用所述目标明文替换所述加密数据中满足第二预设条件的字段,得到所述业务数据,并将所述业务数据发送给所述用户;所述第二预设条件为:字段的第一位字符为所述第一分隔符,且最后一位字符为所述第二分隔符。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,所述程序执行权利要求1-7任一所述的基于加密数据的数据检索方法。
10.一种基于加密数据的数据检索设备,其特征在于,包括:处理器、存储器和总线;所述处理器与所述存储器通过所述总线连接;
所述存储器用于存储程序,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1-7任一所述的基于加密数据的数据检索方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210230752.1A CN114579602A (zh) | 2022-03-10 | 2022-03-10 | 基于加密数据的数据检索方法、装置、存储介质和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210230752.1A CN114579602A (zh) | 2022-03-10 | 2022-03-10 | 基于加密数据的数据检索方法、装置、存储介质和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114579602A true CN114579602A (zh) | 2022-06-03 |
Family
ID=81773989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210230752.1A Pending CN114579602A (zh) | 2022-03-10 | 2022-03-10 | 基于加密数据的数据检索方法、装置、存储介质和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114579602A (zh) |
-
2022
- 2022-03-10 CN CN202210230752.1A patent/CN114579602A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Fu et al. | Toward efficient multi-keyword fuzzy search over encrypted outsourced data with accuracy improvement | |
US8819408B2 (en) | Document processing method and system | |
US9740879B2 (en) | Searchable encryption with secure and efficient updates | |
Awad et al. | Chaotic searchable encryption for mobile cloud storage | |
US8234283B2 (en) | Search reporting apparatus, method and system | |
WO2007001128A1 (en) | Method and system for determining relation between search terms in the internet search system | |
US20130159694A1 (en) | Document processing method and system | |
CN109376277B (zh) | 确定设备指纹同源性的方法及装置 | |
CN115544579B (zh) | 一种双随机数据混淆查询方法、装置和系统 | |
CN110618999A (zh) | 数据的查询方法及装置、计算机存储介质、电子设备 | |
CN115757676A (zh) | 模糊可搜索加密方法、装置及电子设备 | |
JP4594078B2 (ja) | 個人情報管理システムおよび個人情報管理プログラム | |
CN110674383B (zh) | 舆情查询方法、装置及设备 | |
CN114756887A (zh) | 一种敏感信息块在文件中的加密存储方法及装置 | |
CN116992486A (zh) | 一种基于密码学的联合黑名单多方隐私查询方法及系统 | |
JPH11232287A (ja) | ユーザ適応情報配信システムおよび情報配信プログラムを記録した記憶媒体 | |
CN114579602A (zh) | 基于加密数据的数据检索方法、装置、存储介质和设备 | |
CN114661793A (zh) | 模糊查询方法、装置、电子设备及存储介质 | |
WO2019022669A1 (en) | HYBRID INDEX CONSULTABLE ENCRYPTION | |
CN115567212A (zh) | 文件处理方法、装置、计算机设备和计算机可读存储介质 | |
CN114201532A (zh) | 基于esop系统的数据查询方法、装置、介质及设备 | |
CN117390687B (zh) | 敏感数据查询方法、装置、存储介质和电子设备 | |
Handa et al. | Keyword binning-based efficient search on encrypted cloud data | |
US20060123233A1 (en) | Methods, systems and computer program products for providing customized levels of security | |
CN116701493B (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 |