一种用于数据库的数据加密及检索方法技术

技术编号:10234955 阅读:247 留言:0更新日期:2014-07-18 18:03
本发明专利技术公开了一种用于数据库的数据加密及检索方法,包括如下步骤:a)先利用单向加密算法对原数据加密,在保持原数据顺序不变的情况下,生成非解密的可索引头部;b)接着再继续对原数据加密生成可解密的密文数据;c)将可索引头部和可解密的密文数据组合在一起生成加密组合数据存储到数据库中;所述步骤a)中的单向加密算法为MD5、SHA或HMAC;所述步骤b)中的加密算法为对称密钥加密算法。本发明专利技术提供的用于数据库的数据加密及检索方法,通过组合使用可索引头部和可解密的密文数据对原数据全部采用密文进行加密存储,利用可索引头部对加密后的数据进行快速检索,从而避免全表扫描且能保证解密数据的正确性及搜索数据的安全性。

【技术实现步骤摘要】
一种用于数据库的数据加密及检索方法
本专利技术涉及一种数据加密及检索方法,尤其涉及一种用于数据库的数据加密及检索方法。
技术介绍
随着计算机技术的飞速发展,数据库的应用已经十分广泛,深入到了各个领域。特别是进入云时代和大数据时代后,越来越多重要的数据存入了数据库中。但是,如果政府机构的一些政策法规、绝密文件,商业机构的一些商业秘密,金融机构的个人信息和金融财产信息等等各种敏感数据都以明文形式储存,那将是灾难性的。只要稍微具有一点数据库的专业知识,就可以轻而易举的获取到这些关系到国家的安全、企业的兴衰的信息。因此,如何有效地保证数据库系统的安全,实现数据库的保密性、完整性、有效性和可用性,已经成为业界人士研究的重要课题。目前,国内使用的主流商业数据库都从国外进口,由于法律的限制,安全数据库系统基本不对中国出口,因此对现有主流商业数据库系统的加密、保护技术和密文数据的高效检索技术的需求十分强烈。现有技术中,一般来说,数据加密是把纯文本数据利用DES,3DES,AES等的对称密钥算法进行永久变形。这种变形的数据在完全丧失加密之前的文本意义状态下储存到数据库中。如果在这时生成储存数据的索引表,排序(ordering)将变得乱七八糟无法进行索引搜索,从而导致数据库管理系统不能使用索引表,而只能进行整个表格的扫描(TablefullScan)。这种全表扫描性能大幅下降(最多能带来数十倍的性能低下),给数据库运营带来致命的问题。由上可见,现有的技术是直接对数据利用DES,3DES,AES等对称密钥算法进行永久变形,进行粗暴式的加密,存在如下缺点:1)、数据完全变形。这种变形的数据完全丧失加密之前的文本意义,储存到数据库中的数据变的杂乱无章,无法进行有效的序列和索引。2)、无法进行索引操作。这个时候产生的索引表变的杂乱无章,无法进行有效的索引,这就导致了对加密表的查询,只能进行全表扫描(TABLEFULLSCAN)。3)、查询性能大幅下降。这种技术虽然在形式上实现了数据的加密,但是在实际的操作中却存在不可操作的问题。因为目前的数据量不再是以前传统意义上的小数据加密,而是大批量数据的加密。这样产生的数据效果是一堆杂乱无章的数据的全表扫描,要查出想要的结果,将是一个漫长的过程,基本上没有实际的操作意义。4)、数据加密有漏洞。这种加密技术,在查询的时候,会生成一条加密后的查询条件语句,这种语句很容易被非法捕获并进行反解密,数据其实是能解密出来的,从而安全存在一定的漏洞。
技术实现思路
本专利技术所要解决的技术问题是提供一种用于数据库的数据加密及检索方法,即能对原数据进行加密存储,又能保证对加密后的数据进行快速检索,避免全表扫描,且能保证解密数据的正确性及搜索数据的安全性。本专利技术为解决上述技术问题而采用的技术方案是提供一种用于数据库的数据加密方法,其中,包括如下步骤:a)先利用单向加密算法对原数据加密,在保持原数据顺序不变的情况下,生成非解密的可索引头部;b)接着再继续对原数据加密生成可解密的密文数据;c)将可索引头部和可解密的密文数据组合在一起生成加密组合数据存储到数据库中。上述的用于数据库的数据加密方法,其中,所述步骤a)中的单向加密算法为MD5、SHA或HMAC;所述步骤b)中的加密算法为对称密钥加密算法。上述的用于数据库的数据加密方法,其中,所述对称密钥加密算法为AES、ARIA、SEED、TDES或DES。上述的用于数据库的数据加密方法,其中,所述步骤c)中还包括在组合数据的后面插入可索引头部的数据长度信息,然后再生成加密组合数据存储到数据库中。本专利技术为解决上述技术问题还提供一种用于数据库的数据检索方法,其中,包括如下步骤:a)获取上述的数据加密方法生成的加密组合数据;b)接着对待搜索数据采用相同的单向加密算法生成加密搜索数据,并和步骤a)中获取的加密组合数据中的可索引头部进行检索比对;c)如果存在匹配的可索引头部,则确定该加密组合数据中的密文数据的起始位置,并对密文数据进行解密获取查询数据。上述的用于数据库的数据检索方法,其中,所述步骤a)和步骤b)中的单向加密算法为MD5、SHA或HMAC;所述步骤a)和步骤c)中的加密算法为对称密钥加密算法。上述的用于数据库的数据检索方法,其中,所述步骤a)还包括将加密组合数据中的可索引头部生成索引表,所述步骤b)利用所述索引表对所述加密搜索数据进行检索。上述的用于数据库的数据检索方法,其中,所述步骤c)根据索引表中的可索引头部确定密文数据的起始位置,所述加密组合数据中对应索引表中的可索引头部后面的数据即为密文数据的起始位置。上述的用于数据库的数据检索方法,其中,所述步骤a)中加密组合数据的后面插入有可索引头部的数据长度信息,所述步骤c)根据加密组合数据最后的可索引头部的数据长度信息确定密文数据的起始位置。上述的用于数据库的数据检索方法,其中,所述步骤a)中加密组合数据中的密文数据前插入有预设起始标识符,如果加密组合数据中存在多个预设起始标识符,依次对预设起始标识符后的密文数据进行解密,然后再对解密数据采用相同的单向加密算法加密并与加密组合数据中的可索引头部进行比较,直至两者完全匹配,则当前预设起始标识符为密文数据的起始位置。本专利技术对比现有技术有如下的有益效果:本专利技术提供的用于数据库的数据加密及检索方法,通过组合使用可索引头部和可解密的密文数据对原数据全部采用密文进行加密存储,利用可索引头部对加密后的数据进行快速检索,从而避免全表扫描,且能保证解密数据的正确性及搜索数据的安全性。附图说明图1为本专利技术用于数据库的数据加密流程示意图;图2为本专利技术用于数据库的数据加密变换及组合示意图;图3为本专利技术用于数据库的数据检索流程示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的描述。图1为本专利技术用于数据库的数据加密流程示意图。请参见图1,本专利技术提供的用于数据库的数据加密方法包括如下步骤:步骤101:先利用单向加密算法对原数据加密,在保持原数据顺序不变的情况下,生成非解密的可索引头部;所述单向加密算法可以为MD5、SHA或HMAC等各种现有的算法,利用单向加密算法既可保持原数据顺序不变生成可索引头部,又能保证索引头部非可逆,不可解密。步骤102:接着再继续对原数据加密生成可解密的密文数据;如AES、ARIA、SEED、TDES或DES等对称密钥加密算法。步骤103:将可索引头部和可解密的密文数据组合在一起生成加密组合数据存储到数据库中。步骤104:为了便于正确快速定位加密组合数据中可解密的密文数据的起始位置,还可在组合数据的后面插入可索引头部的数据长度信息,然后再生成加密组合数据存储到数据库中。图2为本专利技术用于数据库的数据加密变换及组合示意图。请继续参见图2,把原数据110变换成可搜索的加密组合数据100过程如下:首先将原数据110加密成索引头部:这时储存在原表格的数据,或者从应用(App)中直接输入的原始数据利用单向加密算法加密成索引头部,这里使用的单向加密算法是通常使用的公开算法,所以可以在多种算法中选择使用。因此,索引头部101保持原数据110的顺序,并在维持不被解密的状态下被加密。如图2的原数据110中保存着的“abcdefgh”通过单方向数据加密算法,被加密成索引头部“Q本文档来自技高网
...
一种用于数据库的数据加密及检索方法

【技术保护点】
一种用于数据库的数据加密方法,其特征在于,包括如下步骤:a)先利用单向加密算法对原数据加密,在保持原数据顺序不变的情况下,生成非解密的可索引头部;b)接着再继续对原数据加密生成可解密的密文数据;c)将可索引头部和可解密的密文数据组合在一起生成加密组合数据存储到数据库中。

【技术特征摘要】
1.一种用于数据库的数据检索方法,其特征在于,包括如下步骤:a)获取经过数据加密方法生成的加密组合数据;b)接着对待搜索数据采用相同的单向加密算法生成加密搜索数据,并和步骤a)中获取的加密组合数据中的可索引头部进行检索比对;c)如果存在匹配的可索引头部,则确定该加密组合数据中的密文数据的起始位置,并对密文数据进行解密获取查询数据;所述步骤a)中加密组合数据的生成方法如下:先利用单向加密算法对原数据加密,在保持原数据顺序不变的情况下,生成非解密的可索引头部;接着再继续对原数据加密生成可解密的密文数据;将可索引头部和可解密的密文数据组合在一起生成加密组合数据存储到数据库;所述步骤a)中加密组合数据中的密文数据前插入有预设起始标识符,如果加密组合数据中存在多个预设起始标识符,依次对预设起始标识符后的密文数据进行解密,然后再对解密数据采用相同的单向加密算法加密并与加密组合数据中的可索引头部进行比较,直至...

【专利技术属性】
技术研发人员:程永新符强曾天水
申请(专利权)人:上海新炬网络技术有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1