CN115757545A - 密文检索方法、存储方法、装置、电子设备及存储介质 - Google Patents
密文检索方法、存储方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115757545A CN115757545A CN202211470585.4A CN202211470585A CN115757545A CN 115757545 A CN115757545 A CN 115757545A CN 202211470585 A CN202211470585 A CN 202211470585A CN 115757545 A CN115757545 A CN 115757545A
- Authority
- CN
- China
- Prior art keywords
- ciphertext
- data
- retrieval
- substring
- parameter
- 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
- Storage Device Security (AREA)
Abstract
本申请提供一种密文检索方法、存储方法、装置、电子设备及存储介质。该方法包括:获取待存储的业务数据,所述业务数据包括密文数据;将所述密文数据对应的明文数据进行拆分,获得多个子字符串;对每个子字符串进行加密,获得子串密文集合;所述子串密文集合包括所述多个子字符串分别对应的子串密文;将所述子串密文集合与所述业务数据对应存储。本申请实施例通过将密文数据对应的明文数据进行拆分,并将拆分后的子字符串进行加密,将子串密文集合与业务数据对应存储,从而提供了根据子串密文进行检索的方法,在保证数据安全的前提上,能够对密文数据进行检索。
Description
技术领域
本申请涉及密文检索技术领域,具体而言,涉及一种密文检索方法、存储方法、装置、电子设备及存储介质。
背景技术
随着互联网的飞速发展,对数据安全性及数据有效检索也提出更高的要求,数据存储设备中对一些敏感字段加密可以有效保证数据的安全性,但是随之而来带来的问题是无法直接对于加密字段进行检索。
传统的密文检索方法是将所有数据加载到内存中进行解密,然后再进行检索,但是这种方法仅适用于密文可逆并且数据量小的情况。数据量大时采用该方法会导致内存占用激增进而导致应用程序内存溢出。另一种方法是在存储密文的同时存储一份明文映射数据,在需要检索时对明文数据进行检索,虽然这样能够达到检索数据的目的,但是由于明文信息的存在导致数据安全性又得不到充分保障。
发明内容
本申请实施例的目的在于提供一种密文检索方法、存储方法、装置、电子设备及存储介质,用以在保证数据安全的基础上,实现了对密文的检索。
第一方面,本申请实施例提供一种密文检索方法,包括:
接收检索请求,所述检索请求包括检索参数;
对所述检索参数进行加密运算,获得参数密文;
将所述参数密文与预先存储的子串密文进行匹配;其中,所述子串密文为对子字符串加密获得,所述子字符串为对业务数据中密文数据对应的明文数据拆分获得,且所述参数密文对应的加密方法与所述子串密文的加密方法相同;
将与所述参数密文匹配成功的子串密文对应的业务数据作为检索结果。
本申请实施例采用与子串密文相同的加密方法对检索参数进行加密,由于子串密文与业务数据对应存储,因此,通过将参数密文与子串密文进行匹配以获得检索结果,提高了检索效率。
在任一实施例中,所述对所述检索参数进行加密运算,包括:
判断所述检索参数对应的字段属性是否为加密数据,若是加密数据,则对所述检索参数进行加密运算。
本申请实施例通过将字段属性为加密数据的检索参数进行加密运算,进而根据加密后的参数密文进行检索,提高了检索的准确性。
在任一实施例中,所述将与所述参数密文匹配成功的子串密文对应的业务数据作为检索结果,包括:
若所述参数密文与所述子串密文相同,则将与所述参数密文相同的子串密文对应的业务数据作为所述检索结果。
本申请实施例通过模糊检索后,将与参数密文相同的子串密文对应的业务数据作为检索结果,提高了检索的准确性。
第二方面,本申请实施例提供一种密文存储方法,包括:
获取待存储的业务数据,所述业务数据包括密文数据;
将所述密文数据对应的明文数据进行拆分,获得多个子字符串;
对每个子字符串进行加密,获得子串密文集合;所述子串密文集合包括所述多个子字符串分别对应的子串密文;
将所述子串密文集合与所述业务数据对应存储。
本申请实施例通过将密文数据对应的明文数据进行拆分,并将拆分后的子字符串进行加密,将子串密文集合与业务数据对应存储,从而提供了根据子串密文进行检索的方法,在保证数据安全的前提上,能够对密文数据进行检索。
在任一实施例中,所述对所述密文数据对应的明文数据进行拆分,包括:
按照预设窗口和预设步长将所述明文数据拆分为多个子字符串,其中,所述预设窗口最大值小于所述明文数据对应的字符长度。
本申请实施例通过按照预设窗口和预设步长将明文数据进行拆分,从而使得尽可能多的拆分出可供检索的字段,通过模糊检索可以提高检索的成功率。
在任一实施例中,所述对每个子字符串进行加密,包括:
利用散列函数对每个子字符串进行加密。
本申请实施例通过利用散列函数将子字符串进行加密,再将业务数据与对应的子串密文进行关联,在检索时降低了计算资源的消耗,提高了检索效率。
第三方面,本申请实施例提供一种密文存储装置,包括:
数据获取模块,用于获取待存储的业务数据,所述业务数据包括密文数据;
数据拆分模块,用于将所述密文数据对应的明文数据进行拆分,获得多个子字符串;
字符加密模块,用于对每个子字符串进行加密,获得子串密文集合;所述子串密文集合包括所述多个子字符串分别对应的子串密文;
存储模块,用于将所述子串密文集合与所述业务数据对应存储。
第四方面,本申请实施例提供一种密文检索装置,包括:
接收模块,用于接收检索请求,所述检索请求包括检索参数;
参数加密模块,用于对所述检索参数进行加密运算,获得参数密文;
匹配模块,用于将所述参数密文与预先存储的子串密文进行匹配;其中,所述参数密文对应的加密方法与所述子串密文的加密方法相同;
检索模块,用于将与所述参数密文匹配成功的子串密文对应的业务数据作为检索结果。
第五方面,本申请实施例提供一种电子设备,包括:处理器、存储器和总线,其中,
所述处理器和所述存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面或第二方面的方法。
第六方面,本申请实施例提供一种非暂态计算机可读存储介质,包括:
所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面或第二方面的方法。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种密文存储方法流程示意图;
图2为本申请实施例提供的一种字符串拆解示意图;
图3为本申请实施例提供的一种密文检索方法流程示意图;
图4为本申请实施例提供的一种数据存储及检索信令交互图;
图5为本申请实施例提供的一种密文存储装置结构示意图;
图6为本申请实施例提供的一种密文检索装置结构示意图;
图7为本申请实施例提供的电子设备实体结构示意图。
具体实施方式
下面将结合附图对本申请技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本申请的技术方案,因此只作为示例,而不能以此来限制本申请的保护范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。
在本申请实施例的描述中,技术术语“第一”“第二”等仅用于区别不同对象,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量、特定顺序或主次关系。在本申请实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在本申请实施例的描述中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
在本申请实施例的描述中,术语“多个”指的是两个以上(包括两个),同理,“多组”指的是两组以上(包括两组),“多片”指的是两片以上(包括两片)。
在本申请实施例的描述中,技术术语“中心”“纵向”“横向”“长度”“宽度”“厚度”“上”“下”“前”“后”“左”“右”“竖直”“水平”“顶”“底”“内”“外”“顺时针”“逆时针”“轴向”“径向”“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请实施例和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请实施例的限制。
在本申请实施例的描述中,除非另有明确的规定和限定,技术术语“安装”“相连”“连接”“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;也可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请实施例中的具体含义。
为了能够在保证数据安全的前提下实现对密文数据的检索,本申请实施例提出了一种密文存储方法、检索方法、装置、电子设备及存储介质。其中,密文存储方法和密文检索方法可以应用于电子设备,该电子设备包括终端和服务器;其中终端具体可以为智能手机、平板电脑、计算机、个人数字助理(Personal Digital Assitant,PDA)等;服务器具体可以为应用服务器,也可以为Web服务器。为便于理解,本申请实施例先介绍密文数据的存储方法,再介绍密文数据的检索方法。
图1为本申请实施例提供的一种密文存储方法流程示意图,如图1所示,该方法包括:
步骤101:获取待存储的业务数据,所述业务数据包括密文数据。
其中,业务数据中的所有字段均可以为密文数据,也可以是部分字段为密文数据。密文数据是对明文数据进行加密后获得,其加密方法可以采用对称加密算法、非对称加密算法等,其可根据实际的设置进行加密,本申请实施例对此不作具体限定。业务数据可以为电子设备自身生成的是数据,也可以是与电子设备通信连接的设备发送给电子设备的数据。
电子设备获取到的原始业务数据中的字段可以全部均为明文数据,且每个字段均有是否需要加密的字段属性。电子设备可以从原始业务数据中提取需要加密的字段的明文数据,并利用预设设定的加密算法对其进行加密,获得密文数据。将密文数据和原始业务数据中不需要加密的字段的明文数据构成业务数据。
步骤102:将所述密文数据对应的明文数据进行拆分,获得多个子字符串。
在具体的实施过程中,电子设备在获取到业务数据后,将该业务数据中的密文数据对应的明文数据进行拆分,从而可以获得该明文数据对应的多个字符串。可以理解的是,拆分方法有多种,例如:可以采用split()方法进行拆分,还可以采用StringTokenizer类进行拆分,还可以采用indexOf()方法进行定位,然后用substring()进行拆分等,本申请实施例对字符串的拆分方法不作具体限定。拆分获得的每个子字符串用于检索时代替原始密文与传入的检索参数进行匹配。
步骤103:对每个子字符串进行加密,获得子串密文集合;所述子串密文集合包括所述多个子字符串分别对应的子串密文。
在具体的实施过程中,电子设备在获取到每个子字符串后,对每个子字符串进行加密,获得每个子字符串对应的子串密文,将该密文数据对应的所有的子串密文构成子串密文集合。可以理解的是,对每个子字符串进行加密所采用的加密方法可以是散列算法。
步骤104:将所述子串密文集合与所述业务数据对应存储。
在具体的实施过程中,将子串密文集合与对应的业务数据进行存储。例如:可以将缓存的key设置为对应数据的id,value设置为子串密文集合。
本申请实施例通过将密文数据对应的明文数据进行拆分,并将拆分后的子字符串进行加密,将子串密文集合与业务数据对应存储,从而提供了根据子串密文进行检索的方法,在保证数据安全的前提上,能够对密文数据进行检索。
在上述实施例的基础上,所述对所述密文数据对应的明文数据进行拆分,包括:
按照预设窗口和预设步长将所述明文数据拆分为多个子字符串,其中,所述预设窗口最大值小于所述明文数据对应的字符长度。
在具体的实施过程中,在对密文数据对应的明文数据拆分时,可以预先设定预设窗口和预设步长,其中,预设窗口和预设步长均可以有多个。在设定了预设窗口和预设步长后,可以将预设窗口和预设步长进行排列组合,获得多组预设窗口和预设步长。然后基于每组预设窗口和预设步长对明文数据进行拆分。假设待拆分的明文数据为“abcd”,图2为本申请实施例提供的一种字符串拆解示意图,如图2所示,可以预先设定的预设窗口为1,预设步长为1;预设窗口为2,预设步长为1;预设窗口为3,预设步长为1。基于上述三种拆分组合对“abcd”进行拆分,获得的子字符串分别为:“a”,“b”,“c”,“d”,“ab”,“bc”,“cd”,“abc”,“bcd”。
本申请实施例通过按照预设窗口和预设步长将明文数据进行拆分,从而使得尽可能多的拆分出可供检索的字段,通过模糊检索可以提高检索的成功率。
在上述实施例的基础上,所述对每个子字符串进行加密,包括:
利用散列函数对每个子字符串进行加密。
在具体的实施过程中,Hash,一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
因此,可以采用哈希算法对每个子字符串进行加密,具体可采用MD5算法,还可以采用MD4、SHA-1等算法,本申请实施例对此不作具体限定。
本申请实施例通过利用散列函数将子字符串进行加密,再将业务数据与对应的子串密文进行关联,在检索时降低了计算资源的消耗,提高了检索效率。
图3为本申请实施例提供的一种密文检索方法流程示意图,如图3所示,该方法包括:
步骤301:接收检索请求,所述检索请求包括检索参数。
其中,检索请求可以是与电子设备通信连接的其他电子设备发送的,也可以是用户通过输入设备向电子设备发送的。该检索请求中包括检索参数,检索参数是指用来检索业务数据的关键字。可以理解的是,检索请求中除了包括检索参数外,还可以包括其他字段,例如检索时间等。
步骤302:对所述检索参数进行加密运算,获得参数密文。
电子设备在获取到检索请求后,对检索请求进行解析,获得检索参数,该检索参数为明文数据。针对密文数据的检索,电子设备如果直接使用明文的检索参数进行检索,则无法检索到对应的业务数据,因此,可将检索参数进行加密运算,获得参数密文。可以理解的是,对检索参数进行加密时所采用的加密算法与电子设备中存储的业务数据对应的子串密文的加密算法相同。即,上述密文存储实施例中对子字符串进行加密所使用的加密算法,与对检索参数进行加密所采用的加密算法相同。
步骤303:将所述参数密文与预先存储的子串密文进行匹配;其中,所述子串密文为对子字符串加密获得,所述子字符串为对业务数据中密文数据对应的明文数据拆分获得,且所述参数密文对应的加密方法与所述子串密文的加密方法相同。
在获得参数密文后,遍历预先存储的每一条业务数据对应的子串密文集合中的子串密文,在遍历的同时,将参数密文与子串密文进行匹配。
步骤304:将与所述参数密文匹配成功的子串密文对应的业务数据作为检索结果。所谓的匹配成功是指参数密文与子串密文相同。
本申请实施例采用与子串密文相同的加密方法对检索参数进行加密,由于子串密文与业务数据对应存储,因此,通过将参数密文与子串密文进行匹配以获得检索结果,提高了检索效率。
在上述实施例的基础上,所述对所述检索参数进行加密运算,包括:
判断所述检索参数对应的字段属性是否为加密数据,若是加密数据,则对所述检索参数进行加密运算。
在具体的实施过程中,用户端发送的检索请求可能为明文检索,也可能为密文检索。电子设备在获得检索参数后,可查询检索参数的字段属性。字段属性用于表示检索参数在电子设备中是以明文存储还是以密文存储,如果是明文存储,则可直接使用检索参数进行检索,如果是密文存储,则电子设备可将检索参数进行加密处理,并利用加密后的参数密文进行检索。
本申请实施例通过将字段属性为加密数据的检索参数进行加密运算,进而根据加密后的参数密文进行检索,提高了检索的准确性。
图4为本申请实施例提供的一种数据存储及检索信令交互图,如图4所示,该方法包括客户端和服务器,其中服务器中运行有检索/存储业务服务和数据库/缓存服务。本申请实例采用B/S架构实现的web应用系统,后台服务技术采用java实现,后台数据库采用mongoDB,hash算法采用MD5。为了便于理解,本申请实施例以手机号查询为应用场景进行描述。例如:管理员可以根据手机号模糊查找相关用户信息,但出于安全考虑用户的手机号在系统中为密文存储,手机号不直接明文展示所有数字,会将部分甚至全部数字隐藏,但是本申请实施例中用户仍可通过手机号获取查询到相关用户信息。该方法包括:
步骤1:发起数据存储请求;用户输入手机号、用户名等信息进行注册,业务系统收到用户名username、手机号phoneNumber信息后,获取手机号对应子串。所述获取手机号子串是指,如用户名为“张三”,手机号为"123456789"。其中,手机号为需要加密的字段。
步骤2:获取要进行密文存储的字段str,将字段拆分为多个子串,并计算每个子串的hash值,得到子串的hash集合strChildrenHashCollection。采用预设算法获取所有子字符串,本申请实施例为了便于理解,将子字符串长度固定为8。所以获取到的长度为8的子字符串的所有情况为12345678、23456789。
步骤3:调用数据存储服务,将strChildrenHashCollection、字段str的密文及业务数据中需不要加密的数据进行存储。采用md5算法获取到12345678和23456789的hash值,并将hash值放入phoneNumberHashCollection字段中。然后将手机号的加密信息、phoneNumberHashCollection、同用户名一起存储到数据库中。
步骤4:发起检索请求,并携带检索参数queryParam。用户需要根据手机号检索用户信息,如输入手机号12345678进行检索。
步骤5:获取queryParam的hash值:queryParamHash。业务系统收到后采用步骤2中相同的md5算法获取12345678的hash值queryParamHash。
步骤6:根据queryParamHash调用业务数据检索服务。
步骤7;将业务数据中子串的hash同queryParamHash进行匹配,获取匹配记录。可以理解的是,由于本申请实施例中检索为模糊查询,因此可能会匹配到一条或多条业务数据。根据该hash值从mongo数据库中检索phoneNumberHashCollection字段中包含queryParamHash的数据。具体地检索时可以利用mongo提供的针对数组检索的方法如使用{$match:{queryParamHash:$in:phoneNumberHashCollection}},即可匹配到所有phoneNumberHashCollection中包含12345678的hash值记录。
步骤8:返回匹配到的业务数据。
步骤9:返回匹配到的业务数据至客户端。
步骤10:客户端/浏览器渲染展示数据。
本申请实施例通过将密文数据对应的明文数据进行拆分,并将拆分后的子字符串进行加密,将子串密文集合与业务数据对应存储,从而提供了根据子串密文进行检索的方法,在保证数据安全的前提上,能够对密文数据进行检索。
图5为本申请实施例提供的一种密文存储装置结构示意图,该装置可以是电子设备上的模块、程序段或代码。应理解,该装置与上述图1方法实施例对应,能够执行图1方法实施例涉及的各个步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。所述装置包括:数据获取模块501、数据拆分模块502、字符加密模块503和存储模块504,其中:
数据获取模块501用于获取待存储的业务数据,所述业务数据包括密文数据;
数据拆分模块502用于将所述密文数据对应的明文数据进行拆分,获得多个子字符串;
字符加密模块503用于对每个子字符串进行加密,获得子串密文集合;所述子串密文集合包括所述多个子字符串分别对应的子串密文;
存储模块504用于将所述子串密文集合与所述业务数据对应存储。
在上述实施例的基础上,数据拆分模块502具体用于:
按照预设窗口和预设步长将所述明文数据拆分为多个子字符串,其中,所述预设窗口最大值小于所述明文数据对应的字符长度。
在上述实施例的基础上,字符加密模块503具体用于:
利用散列函数对每个子字符串进行加密。
图6为本申请实施例提供的一种密文检索装置结构示意图,该装置可以是电子设备上的模块、程序段或代码。应理解,该装置与上述图3方法实施例对应,能够执行图3方法实施例涉及的各个步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。所述装置包括:接收模块601、参数加密模块602、匹配模块603和检索模块604,其中:
接收模块601用于接收检索请求,所述检索请求包括检索参数;
参数加密模块602用于对所述检索参数进行加密运算,获得参数密文;
匹配模块603用于将所述参数密文与预先存储的子串密文进行匹配;其中,所述参数密文对应的加密方法与所述子串密文的加密方法相同;
检索模块604用于将与所述参数密文匹配成功的子串密文对应的业务数据作为检索结果。
在上述实施例的基础上,参数加密模块602具体用于:
判断所述检索参数对应的字段属性是否为加密数据,若是加密数据,则对所述检索参数进行加密运算。
在上述实施例的基础上,检索模块604具体用于:
若所述参数密文与所述子串密文相同,则将与所述参数密文相同的子串密文对应的业务数据作为所述检索结果。
图7为本申请实施例提供的电子设备实体结构示意图,如图7所示,所述电子设备,包括:处理器(processor)701、存储器(memory)702和总线703;其中,
所述处理器701和存储器702通过所述总线703完成相互间的通信;
所述处理器701用于调用所述存储器702中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:获取待存储的业务数据,所述业务数据包括密文数据;将所述密文数据对应的明文数据进行拆分,获得多个子字符串;对每个子字符串进行加密,获得子串密文集合;所述子串密文集合包括所述多个子字符串分别对应的子串密文;将所述子串密文集合与所述业务数据对应存储。或
接收检索请求,所述检索请求包括检索参数;对所述检索参数进行加密运算,获得参数密文;将所述参数密文与预先存储的子串密文进行匹配;其中,所述子串密文为对子字符串加密获得,所述子字符串为对业务数据中密文数据对应的明文数据拆分获得,且所述参数密文对应的加密方法与所述子串密文的加密方法相同;将与所述参数密文匹配成功的子串密文对应的业务数据作为检索结果。
处理器701可以是一种集成电路芯片,具有信号处理能力。上述处理器701可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其可以实现或者执行本申请实施例中公开的各种方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器702可以包括但不限于随机存取存储器(Random AccessMemory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)等。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:获取待存储的业务数据,所述业务数据包括密文数据;将所述密文数据对应的明文数据进行拆分,获得多个子字符串;对每个子字符串进行加密,获得子串密文集合;所述子串密文集合包括所述多个子字符串分别对应的子串密文;将所述子串密文集合与所述业务数据对应存储。或
接收检索请求,所述检索请求包括检索参数;对所述检索参数进行加密运算,获得参数密文;将所述参数密文与预先存储的子串密文进行匹配;其中,所述子串密文为对子字符串加密获得,所述子字符串为对业务数据中密文数据对应的明文数据拆分获得,且所述参数密文对应的加密方法与所述子串密文的加密方法相同;将与所述参数密文匹配成功的子串密文对应的业务数据作为检索结果。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:获取待存储的业务数据,所述业务数据包括密文数据;将所述密文数据对应的明文数据进行拆分,获得多个子字符串;对每个子字符串进行加密,获得子串密文集合;所述子串密文集合包括所述多个子字符串分别对应的子串密文;将所述子串密文集合与所述业务数据对应存储。或
接收检索请求,所述检索请求包括检索参数;对所述检索参数进行加密运算,获得参数密文;将所述参数密文与预先存储的子串密文进行匹配;其中,所述子串密文为对子字符串加密获得,所述子字符串为对业务数据中密文数据对应的明文数据拆分获得,且所述参数密文对应的加密方法与所述子串密文的加密方法相同;将与所述参数密文匹配成功的子串密文对应的业务数据作为检索结果。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种密文检索方法,其特征在于,包括:
接收检索请求,所述检索请求包括检索参数;
对所述检索参数进行加密运算,获得参数密文;
将所述参数密文与预先存储的子串密文进行匹配;其中,所述子串密文为对子字符串加密获得,所述子字符串为对业务数据中密文数据对应的明文数据拆分获得,且所述参数密文对应的加密方法与所述子串密文的加密方法相同;
将与所述参数密文匹配成功的子串密文对应的业务数据作为检索结果。
2.根据权利要求1所述的方法,其特征在于,所述对所述检索参数进行加密运算,包括:
判断所述检索参数对应的字段属性是否为加密数据,若是加密数据,则对所述检索参数进行加密运算。
3.根据权利要求1或2所述的方法,其特征在于,所述将与所述参数密文匹配成功的子串密文对应的业务数据作为检索结果,包括:
若所述参数密文与所述子串密文相同,则将与所述参数密文相同的子串密文对应的业务数据作为所述检索结果。
4.一种密文存储方法,其特征在于,包括:
获取待存储的业务数据,所述业务数据包括密文数据;
将所述密文数据对应的明文数据进行拆分,获得多个子字符串;
对每个子字符串进行加密,获得子串密文集合;所述子串密文集合包括所述多个子字符串分别对应的子串密文;
将所述子串密文集合与所述业务数据对应存储。
5.根据权利要求4所述的方法,其特征在于,所述对所述密文数据对应的明文数据进行拆分,包括:
按照预设窗口和预设步长将所述明文数据拆分为多个子字符串,其中,所述预设窗口最大值小于所述明文数据对应的字符长度。
6.根据权利要求4或5所述的方法,其特征在于,所述对每个子字符串进行加密,包括:
利用散列函数对每个子字符串进行加密。
7.一种密文检索装置,其特征在于,包括:
接收模块,用于接收检索请求,所述检索请求包括检索参数;
参数加密模块,用于对所述检索参数进行加密运算,获得参数密文;
匹配模块,用于将所述参数密文与预先存储的子串密文进行匹配;其中,所述参数密文对应的加密方法与所述子串密文的加密方法相同;
检索模块,用于将与所述参数密文匹配成功的子串密文对应的业务数据作为检索结果。
8.一种密文存储装置,其特征在于,包括:
数据获取模块,用于获取待存储的业务数据,所述业务数据包括密文数据;
数据拆分模块,用于将所述密文数据对应的明文数据进行拆分,获得多个子字符串;
字符加密模块,用于对每个子字符串进行加密,获得子串密文集合;所述子串密文集合包括所述多个子字符串分别对应的子串密文;
存储模块,用于将所述子串密文集合与所述业务数据对应存储。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,其中,
所述处理器和所述存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1-6任一项所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令被计算机运行时,使所述计算机执行如权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211470585.4A CN115757545A (zh) | 2022-11-23 | 2022-11-23 | 密文检索方法、存储方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211470585.4A CN115757545A (zh) | 2022-11-23 | 2022-11-23 | 密文检索方法、存储方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115757545A true CN115757545A (zh) | 2023-03-07 |
Family
ID=85335475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211470585.4A Pending CN115757545A (zh) | 2022-11-23 | 2022-11-23 | 密文检索方法、存储方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115757545A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117349829A (zh) * | 2023-10-25 | 2024-01-05 | 河北东软软件有限公司 | 一种基于vpn的内网应用程序安全性检测系统 |
CN117390687A (zh) * | 2023-12-11 | 2024-01-12 | 闪捷信息科技有限公司 | 敏感数据查询方法、装置、存储介质和电子设备 |
-
2022
- 2022-11-23 CN CN202211470585.4A patent/CN115757545A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117349829A (zh) * | 2023-10-25 | 2024-01-05 | 河北东软软件有限公司 | 一种基于vpn的内网应用程序安全性检测系统 |
CN117390687A (zh) * | 2023-12-11 | 2024-01-12 | 闪捷信息科技有限公司 | 敏感数据查询方法、装置、存储介质和电子设备 |
CN117390687B (zh) * | 2023-12-11 | 2024-04-02 | 闪捷信息科技有限公司 | 敏感数据查询方法、装置、存储介质和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019095416A1 (zh) | 信息推送方法、装置、终端设备及存储介质 | |
CN115757545A (zh) | 密文检索方法、存储方法、装置、电子设备及存储介质 | |
WO2021189954A1 (zh) | 日志数据处理方法、装置、计算机设备和存储介质 | |
US9197613B2 (en) | Document processing method and system | |
CN109766707B (zh) | 基于区块链的数据处理方法、装置、设备和介质 | |
WO2011144022A2 (en) | Method, system and apparatus for hybrid federated search | |
WO2020228038A1 (zh) | 域名处理方法、装置、电子设备以及存储介质 | |
WO2019148712A1 (zh) | 钓鱼网站检测方法、装置、计算机设备和存储介质 | |
CN109871354B (zh) | 一种文件处理的方法及装置 | |
CN115017107A (zh) | 基于保护隐私的数据检索方法、装置、计算机设备及介质 | |
US9722967B2 (en) | Exposing file metadata as LDAP attributes | |
CN106332556B (zh) | 传输云端文件的方法、终端及云端服务器 | |
CN113609147A (zh) | 数据共享方法、装置及电子设备 | |
US20230144072A1 (en) | Data storage server and client devices for securely storing data | |
CN116992486A (zh) | 一种基于密码学的联合黑名单多方隐私查询方法及系统 | |
CN113364848B (zh) | 文件缓存方法、装置、电子设备及存储介质 | |
CN113342813B (zh) | 键值数据处理方法、装置、计算机设备及可读存储介质 | |
CN112416875B (zh) | 日志管理方法、装置、计算机设备及存储介质 | |
CN114519037A (zh) | 一种表格在线预览方法、装置和系统 | |
CN114661793A (zh) | 模糊查询方法、装置、电子设备及存储介质 | |
CN110705935B (zh) | 一种物流单据的处理方法和装置 | |
US8005849B2 (en) | Database access server with reformatting | |
EP4022844B1 (en) | Requesting and transmitting data for related accounts | |
WO2020006930A1 (zh) | 数据伪造方法、装置及计算机存储介质 | |
CN114417109B (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 |