一种基于分片存储和折半索引的数据查询引擎制造技术

技术编号:21273489 阅读:39 留言:0更新日期:2019-06-06 07:57
本发明专利技术公开了一种基于分片存储和折半索引的数据查询引擎,包括数据生成模块、数据排序模块、数据查询模块。本发明专利技术将各种明文数据基于GPU运算存放于特定的文件下;并将每个文件内的数据进行动态排序,基于每行明文数据MD5值的21至24位倒序后从小到大排序;最后基于折半索引查询特定MD5加密数据对应的明文数据。本发明专利技术首先有效缓解了数据库数据存储压力,仅需要存储明文,而非原始存储方法采用的明文和MD5同时存储的方式;同时基于分片技术提升文件生成以及数据存储的高效性;再者基于折半查询算法大幅提升文件内容快速定位查询速度,充分展现折半查询算法在数据量越多的情况下查询速度越快的优势。

A Data Query Engine Based on Piecewise Storage and Half Index

The invention discloses a data query engine based on piecewise storage and half index, which comprises a data generation module, a data sorting module and a data query module. The invention stores all kinds of plaintext data under a specific file based on GPU operation, dynamically sorts the data in each file, and then sorts the plaintext data from small to large based on 21 to 24 bit inversion of MD5 value of each line of plaintext data, finally queries the plaintext data corresponding to the specific MD5 encrypted data based on half index. The invention first effectively alleviates the pressure of data storage in database, only storing plaintext, instead of the plaintext and MD5 storage mode adopted by the original storage method; at the same time, it improves the efficiency of file generation and data storage based on fragmentation technology; and at the same time, it greatly improves the speed of fast positioning and query of file content based on the half-fold query algorithm, and fully displays the data of the half-fold query algorithm. The faster the query speed is, the more the volume is.

【技术实现步骤摘要】
一种基于分片存储和折半索引的数据查询引擎
本专利技术涉及一种数据查询引擎,尤其涉及一种基于分片存储和折半索引的数据查询引擎。
技术介绍
对于传统数据库查询MD5实现方法包含以下两步:第一步:建立数据;1、先在数据库中建立2个表,表名分别为text、MD5;2、将明文和明文生成的MD5同时入库;3、建立索引;第二步:查询数据;1、先遍历索引;2、通过关系型数据库匹配MD5获得明文。此方法同时存储了明文和32位密文,为了便于查询又创建了索引,相比以上只存储明文、通过计算得出索引的方法多占用成倍的空间。同时,对于数据量越大,查询速度也会越来越大,整体效率会大幅下降。
技术实现思路
针对上述现有技术中描述的不足,本专利技术提供一种基于分片存储和折半索引的数据查询引擎,能够实现从MD5加密数据到反向明文的快速定位查询。为解决上述技术问题,本专利技术所采用的技术方案如下:一种基于分片存储和折半索引的数据查询引擎,包括数据生成模块、数据排序模块、数据查询模块。其中,所述数据生成模块,用于将各个MD5加密数据的明文通过分片存放的形式生成于各个文件中,包括MD5加密单元、文件名生成单元和文件夹名生成单元。所述MD5加密单元,用于对明文数据进行MD5加密。所述文件名生成单元,将32位MD5加密数据的第9位至第13位的十六进制转化为十进制,作为文件名。所述文件夹名生成单元,将文件名除以1024去掉余数后作为文件夹名,文件存放于当前文件夹下。所述数据排序模块,对每个文件夹下的明文数据从小到大依次排序,包括数据排序单元,用于将同一文件下每行明文的MD5值的第21位至第24位进行倒序,并基于倒序结果按从小到大从上到下的顺序依次排序。所述数据查询模块,基于给定的MD5加密数据进行反向明文查询,并将查询结果输出,包括查询单元,用于从已生成的各个文件中查询对应MD5加密数据的明文进行比对查询。一种基于分片存储和折半索引的数据查询引擎的查询方法,包括以下步骤:步骤1、查询一条32位MD5加密数据的明文。步骤2、将当前明文的MD5值的第9位至第13位转换为十进制,得出文件名。步骤3、文件名除以1024得到文件夹名,进而得到当前明文对应的文件存放位置。步骤4、进入找到的文件存放位置,并打开当前文件,定位到当前文件内容的最中间部分,开始进行折半查询。步骤5、对当前文件的中间位置数据进行MD5加密。步骤6、将当前文件加密后32位MD5值的第21位至第24位转换为十进制,得到文件中间位置十进制数。步骤7、将所要查询明文的MD5值的第21位至第24位转换为十进制,并与文件中间位置的十进制数进行大小比对。步骤8、若步骤7得到的十进制数大于文件中间位置十进制数,则从文件上半部分进行查询,相反则从文件下半部分查询。步骤9、基于折半查询算法进行定位查找,直到查找完成。步骤10、输出查询结果。本专利技术首先有效缓解了数据库数据存储压力,仅需要存储明文,而非原始存储方法采用的明文和MD5同时存储的方式;同时基于分片技术提升文件生成以及数据存储的高效性;再者基于折半查询算法大幅提升文件内容快速定位查询速度,充分展现折半查询算法在数据量越多的情况下查询速度越快的优势。具体实施方式下面以SOMD5项目为例,对本专利技术的进行阐述说明,以下实施例中的MD5均可表述为SOMD5。实施例1:一种基于分片存储和折半索引的数据查询引擎,包括数据生成模块、数据排序模块、数据查询模块。其中,所述数据生成模块,用于将各个MD5加密数据的明文通过分片存放的形式生成于各个文件中,包括MD5加密单元、文件名生成单元和文件夹名生成单元。所述MD5加密单元,用于对明文数据进行MD5加密。所述文件名生成单元,将32位MD5加密数据的第9位至第13位的十六进制转化为十进制,作为文件名。所述文件夹名生成单元,将文件名除以1024去掉余数后作为文件夹名,文件存放于当前文件夹下。所述数据排序模块,对每个文件夹下的明文数据从小到大依次排序,包括数据排序单元,用于将同一文件下每行明文的MD5值的第21位至第24位进行倒序,并基于倒序结果按从小到大从上到下的顺序依次排序。所述数据查询模块,基于给定的MD5加密数据进行反向明文查询,并将查询结果输出,包括查询单元,用于从已生成的各个文件中查询对应MD5加密数据的明文进行比对查询。实施例2:一种基于分片存储和折半索引的数据查询引擎的查询方法,包括以下步骤:步骤1、查询一条32位MD5加密数据的明文。步骤2、将当前明文的MD5值的第9位至第13位转换为十进制,得出文件名。步骤3、文件名除以1024得到文件夹名,进而得到当前明文对应的文件存放位置。步骤4、进入找到的文件存放位置,并打开当前文件,定位到当前文件内容的最中间部分,开始进行折半查询。定位可以用现有算法进行实现,且有多种成熟算法均可实现。步骤5、对当前文件的中间位置数据进行MD5加密。步骤6、将当前文件加密后32位MD5值的第21位至第24位转换为十进制,得到文件中间位置十进制数。步骤7、将所要查询明文的MD5值的第21位至第24位转换为十进制,并与文件中间位置的十进制数进行大小比对。步骤8、若步骤7得到的十进制数大于文件中间位置十进制数,则从文件上半部分进行查询,相反则从文件下半部分查询。步骤9、基于折半查询算法进行定位查找,直到查找完成。步骤10、输出查询结果。下面以查询905cc04001801046b2c0a2c91047740b为例对本专利技术进行详细说明。步骤1、此MD5第9-13位为01801,转换10进制为6145,得知此密文所对应的文件名为6145.md5。步骤2、6145/1024=6,文件名除以1024得出文件夹位置。步骤3、最终得出此密文对应的文件位置为E:/6/6145.md5。步骤4、进入6145.md5文件后,通过指针先定位到文件的最中间部分。步骤5、开始对文件中中间一条明文进行加密比对,假如中间位置的明文为q0000v7z,计算此明文的MD5为d88c691e01801e53e320c4db85dea1b5。步骤6、将此条MD5值的第21-24位c4db,转换为10进制为50395。要查询的密文21-24位为a2c9,转换10进制为41673。步骤7、中间部分的MD5的十进制数50395比要查询的MD5的十进制数41673大,从中间位置往上基于折半查询算法进行定位查找,直到完全对比成功,输出查询结果。以上实施方式仅用于对本专利技术的描述,而非对本专利技术的限制。对本领域的技术人员来说在不脱离本专利技术的范围下进行适当的变化或修改是显而易见的,因此所有等同的技术方案也属于本专利技术的范畴,本专利技术的专利保护范围由所附的权利要求定义。本文档来自技高网...

【技术保护点】
1.一种基于分片存储和折半索引的数据查询引擎,其特征在于,包括数据生成模块、数据排序模块、数据查询模块;其中,所述数据生成模块,用于将各个MD5加密数据的明文通过分片存放的形式生成于各个文件中;所述数据排序模块,对每个文件夹下的明文数据从小到大依次排序;所述数据查询模块,基于给定的MD5加密数据进行反向明文查询,并将查询结果输出。

【技术特征摘要】
1.一种基于分片存储和折半索引的数据查询引擎,其特征在于,包括数据生成模块、数据排序模块、数据查询模块;其中,所述数据生成模块,用于将各个MD5加密数据的明文通过分片存放的形式生成于各个文件中;所述数据排序模块,对每个文件夹下的明文数据从小到大依次排序;所述数据查询模块,基于给定的MD5加密数据进行反向明文查询,并将查询结果输出。2.根据权利要求1所述的一种基于分片存储和折半索引的数据查询引擎,其特征在于:所述数据生成模块,包括MD5加密单元、文件名生成单元和文件夹名生成单元;所述MD5加密单元,用于对明文数据进行MD5加密;所述文件名生成单元,将32位MD5加密数据的第9位至第13位的十六进制转化为十进制,作为文件名;所述文件夹名生成单元,将文件名除以1024去掉余数后作为文件夹名,文件存放于当前文件夹下。3.根据权利要求1所述的一种基于分片存储和折半索引的数据查询引擎,其特征在于:所述数据排序模块,包括数据排序单元,用于将同一文件下每行明文的MD5值的第21位至第24位进行倒序,并基于倒序结果按从小到大从上到下的顺序依次排序。4.根据权利要求1所述的一种...

【专利技术属性】
技术研发人员:段俊辉朱永超张杨杨徐受天
申请(专利权)人:中铁工程装备集团有限公司
类型:发明
国别省市:河南,41

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

1