数据库加密字段部分匹配查询方法及系统的制作方法

文档序号:9417418阅读:635来源:国知局
数据库加密字段部分匹配查询方法及系统的制作方法
【技术领域】
[0001]本发明涉及数据库查询技术领域,尤其是涉及一种数据库加密字段部分匹配查询的方法及系统。
【背景技术】
[0002]目前数据库为了保证数据库安全性,对字段进行加密,但是,部分匹配查询时,需要对每一条数据进行解密后匹配查找,当数据量大时,会因为查询时间过长,导致技术人员被迫放弃加密方案,或者只允许完全匹配查询。
[0003]现有专利(申请号:201410150462.1)公开了一种用于数据库的数据加密及检索方法,包括如下步骤:a)先利用单向加密算法对原数据加密,在保持原数据顺序不变的情况下,生成非解密的可索引头部山)接着再继续对原数据加密生成可解密的密文数据;c)将可索引头部和可解密的密文数据组合在一起生成加密组合数据存储到数据库中;所述步骤a)中的单向加密算法为MD5、SHA或HMAC ;所述步骤b)中的加密算法为对称密钥加密算法。该专利是解决完全匹配的问题。

【发明内容】

[0004]本发明所要解决的技术问题是:使用部分匹配查询,实现高效率的数据库查询目的。
[0005]为了解决上述技术问题,本发明采用的技术方案为:提供一种数据库加密字段部分匹配查询的方法,包括:
[0006]创建数据记录表;
[0007]根据所述数据记录表,对所述加密字段创建加密索引表;
[0008]程序获取待查询的字段,并加密;
[0009]在数据记录表中通过SQL语句查询出完全匹配的数据,并将完全匹配的数据记录为第一值;
[0010]将所述待查询的字段进行SHA散列,通过SQL语句在加密索引表中查询对应数据唯一标志;
[0011]根据对应数据唯一标志,在数据记录表中查询出数据唯一标志的所有数据,并记录为第二值;
[0012]合并所述第一值及第二值。
[0013]为解决上述问题,本发明还提供一种数据库加密字段部分匹配查询的系统,包括:
[0014]数据记录表模块,用于创建数据记录表;
[0015]加密索引表模块,用于根据所述数据记录表,对所述加密字段创建加密索引表;
[0016]获取加密模块,用于程序获取待查询的字段,并加密;
[0017]第一查询记录模块,用于在数据记录表中通过SQL语句查询出完全匹配的数据,并将完全匹配的数据记录为第一值;
[0018]散列模块,用于将所述待查询的字段进行SHA散列,通过SQL语句在加密索引表中查询对应数据唯一标志;
[0019]第二查询记录模块,用于根据对应数据唯一标志,在数据记录表中查询出数据唯一标志的所有数据,并记录为第二值;
[0020]合并模块,用于合并所述第一值及第二值。
[0021]本发明的有益效果在于:区别于现有技术,本发明通过创建数据记录表以及对应的加密索引表,在加密查询时,通过其唯一数字标识实现完全匹配查询及部分匹配查询,进而获得最终结果,其操作性强,同时效率高,加密性好,且提高了系统的安全性及易用性。
【附图说明】
[0022]图1为本发明方法实施例一的流程示意图;
[0023]图2为本发明方法实施例二的流程示意图;
[0024]图3为本发明系统实施例三的结构框图;
[0025]图4为本发明系统实施例四的结构框图。
【具体实施方式】
[0026]为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
[0027]本发明提供一种数据库加密字段部分匹配查询的方法,包括:
[0028]创建数据记录表;
[0029]根据所述数据记录表,对所述加密字段创建加密索引表;
[0030]程序获取待查询的字段,并加密;
[0031]在数据记录表中通过SQL语句查询出完全匹配的数据,并将完全匹配的数据记录为第一值;
[0032]将所述待查询的字段进行SHA散列,通过SQL语句在加密索引表中查询对应数据唯一标志;
[0033]根据对应数据唯一标志,在数据记录表中查询出数据唯一标志的所有数据,并记录为第二值;
[0034]合并所述第一值及第二值。
[0035]其中,创建数据记录表的步骤具体为:
[0036]建立数据唯一标志列以及带加密字段列;
[0037]合并所述数据唯一标志列以及带加密字段列,生成数据记录表。
[0038]其中,合并所述数据唯一标志列以及带加密字段列,生成数据记录表之后,还包括:建立非加密字段列,并合并到数据记录表。
[0039]其中,根据所述数据记录表,对所述加密字段创建加密索引表的步骤之后,还包括:
[0040]在所述数据记录表及加密索引表中插入数据。
[0041]其中,在所述数据记录表及加密索引表中插入数据的步骤具体为:
[0042]初始化所述数据记录表及加密索引表;
[0043]将待插入的数据从其字符开头拆分成部分匹配的N-1个字符串,其中,所述字符串长度为I?N-1,N为所述数据的长度;
[0044]将所述N-1个字符串进行SHA散列,并加密;
[0045]在数据记录表插入数据,并生成对应的数据唯一标志;
[0046]根据对应的数据唯一标志,在加密索引表中散列插入所述N-1个字符串。
[0047]本发明还提供一种数据库加密字段部分匹配查询的系统,包括:
[0048]数据记录表模块,用于创建数据记录表;
[0049]加密索引表模块,用于根据所述数据记录表,对所述加密字段创建加密索引表;
[0050]获取加密模块,用于程序获取待查询的字段,并加密;
[0051]第一查询记录模块,用于在数据记录表中通过SQL语句查询出完全匹配的数据,并将完全匹配的数据记录为第一值;
[0052]散列模块,用于将所述待查询的字段进行SHA散列,通过SQL语句在加密索引表中查询对应数据唯一标志;
[0053]第二查询记录模块,用于根据对应数据唯一标志,在数据记录表中查询出数据唯一标志的所有数据,并记录为第二值;
[0054]合并模块,用于合并所述第一值及第二值。
[0055]其中,获取加密模块还包括:
[0056]列单元,用于建立数据唯一标志列以及带加密字段列;
[0057]生成单元,用于合并所述数据唯一标志列以及带加密字段列,生成数据记录表。
[0058]其中,所述列单元还用于建立非加密字段列,并合并到数据记录表。
[0059]其中,还包括数据插入模块,用于在所述数据记录表及加密索引表中插入数据。
[0060]其中,所述数据插入模块还包括:
[0061]初始换单元,用于初始化所述数据记录表及加密索引表;
[0062]拆分单元,用于将待插入的数据从其字符开头拆分成部分匹配的N-1个字符串,其中,所述字符串长度为I?N-1,N为所述数据的长度;
[0063]散列加密单元,用于将所述N-1个字符串进行SHA散列,并加密;
[0064]插入生成单元,用于在数据记录表插入数据,并生成对应的数据唯一标志;
[0065]字符串插入单元,用于根据对应的数据唯一标志,在加密索引表中散列插入所述N-1个字符串。
[0066]请参照图1,本发明实施例一提供一种数据库加密字段部分匹配查询的方法,包括如下步骤:
[0067]S1:创建数据记录表;
[0068]S2:根据所述数据记录表,对所述加密字段创建加密索引表;
[0069]S3:程序获取待查询的字段,并加密;
[0070]S4:在数据记录表中通过SQL语句查询出完全匹配的数据,并将完全匹配的数据记录为第一值;
[0071]S5:将所述待查询的字段进行SHA散列,通过SQL语句在加密索引表中查询对应数据唯一标志;
[0072]S6:根据对应数据唯一标志,在数据记录表中查询出数据唯一标志的所有数据,并记录为第二值;
[0073]S7:合并所述第一值及第二值。
[0074]区别于现有技术,本发明通过创建数据记录表以及对应的加密索引表,在加密查询时,通过其唯一数字标识实现完全匹配查询及部分匹配查询,进而获得最终结果,其操作性强,同时效率高,加密性好,且提高了系统的安全性及易用性。
[0075]其中,如图2所示,在实施例一的基础上,本发明实施例二步骤SI具体为:
[0076]Sll:建立数据唯一标志列以及带加密字段列;
[0077]S12:合并所述数据唯一标志列以及带加密字段列,生成数据记录表。
[0078]其中,S12之后,还包括步骤S13:建立非加密字段列,并合并到数据记录表。
[0079]其中非加密字段列可以认为是在现有的基础数据中,无需加密的那一部分内容,如在手机通讯录中,在对应的人名下,可仅需要加密手机号码,而对其他信息,如邮箱、其他IM号码可不作加密。这些都可以合并到一张数据记录表中。其中只有手机号码是主要是本发明需要加密查询的。实际操作中,用户可根据需要加密多种数据,甚至可加密人名下的所有通讯信息。
[0080]应当理解的是,数据记录表可以是用户创建的,也可以是现有的数据表中择取来。如手机通讯录,对的姓名、电话号码进行加密,通讯录就是所述数据记录表。优选地,本发明可对加密字段(如上文所述的姓名、号码)创建数据库索引,以方便后续查找。
[0081]其中,步骤S2之后,还包括:
[0082]S21:在
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1