數據庫加密字段部分匹配查詢方法及系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及數據庫查詢技術領域,尤其是涉及一種數據庫加密字段部分匹配查詢的方法及系統(tǒng)。
【背景技術】
[0002]目前數據庫為了保證數據庫安全性,對字段進行加密,但是,部分匹配查詢時,需要對每一條數據進行解密后匹配查找,當數據量大時,會因為查詢時間過長,導致技術人員被迫放棄加密方案,或者只允許完全匹配查詢。
[0003]現(xiàn)有專利(申請?zhí)?201410150462.1)公開了一種用于數據庫的數據加密及檢索方法,包括如下步驟:a)先利用單向加密算法對原數據加密,在保持原數據順序不變的情況下,生成非解密的可索引頭部山)接著再繼續(xù)對原數據加密生成可解密的密文數據;c)將可索引頭部和可解密的密文數據組合在一起生成加密組合數據存儲到數據庫中;所述步驟a)中的單向加密算法為MD5、SHA或HMAC ;所述步驟b)中的加密算法為對稱密鑰加密算法。該專利是解決完全匹配的問題。
【發(fā)明內容】
[0004]本發(fā)明所要解決的技術問題是:使用部分匹配查詢,實現(xiàn)高效率的數據庫查詢目的。
[0005]為了解決上述技術問題,本發(fā)明采用的技術方案為:提供一種數據庫加密字段部分匹配查詢的方法,包括:
[0006]創(chuàng)建數據記錄表;
[0007]根據所述數據記錄表,對所述加密字段創(chuàng)建加密索引表;
[0008]程序獲取待查詢的字段,并加密;
[0009]在數據記錄表中通過SQL語句查詢出完全匹配的數據,并將完全匹配的數據記錄為第一值;
[0010]將所述待查詢的字段進行SHA散列,通過SQL語句在加密索引表中查詢對應數據唯一標志;
[0011]根據對應數據唯一標志,在數據記錄表中查詢出數據唯一標志的所有數據,并記錄為第二值;
[0012]合并所述第一值及第二值。
[0013]為解決上述問題,本發(fā)明還提供一種數據庫加密字段部分匹配查詢的系統(tǒng),包括:
[0014]數據記錄表模塊,用于創(chuàng)建數據記錄表;
[0015]加密索引表模塊,用于根據所述數據記錄表,對所述加密字段創(chuàng)建加密索引表;
[0016]獲取加密模塊,用于程序獲取待查詢的字段,并加密;
[0017]第一查詢記錄模塊,用于在數據記錄表中通過SQL語句查詢出完全匹配的數據,并將完全匹配的數據記錄為第一值;
[0018]散列模塊,用于將所述待查詢的字段進行SHA散列,通過SQL語句在加密索引表中查詢對應數據唯一標志;
[0019]第二查詢記錄模塊,用于根據對應數據唯一標志,在數據記錄表中查詢出數據唯一標志的所有數據,并記錄為第二值;
[0020]合并模塊,用于合并所述第一值及第二值。
[0021]本發(fā)明的有益效果在于:區(qū)別于現(xiàn)有技術,本發(fā)明通過創(chuàng)建數據記錄表以及對應的加密索引表,在加密查詢時,通過其唯一數字標識實現(xiàn)完全匹配查詢及部分匹配查詢,進而獲得最終結果,其操作性強,同時效率高,加密性好,且提高了系統(tǒng)的安全性及易用性。
【附圖說明】
[0022]圖1為本發(fā)明方法實施例一的流程示意圖;
[0023]圖2為本發(fā)明方法實施例二的流程示意圖;
[0024]圖3為本發(fā)明系統(tǒng)實施例三的結構框圖;
[0025]圖4為本發(fā)明系統(tǒng)實施例四的結構框圖。
【具體實施方式】
[0026]為詳細說明本發(fā)明的技術內容、所實現(xiàn)目的及效果,以下結合實施方式并配合附圖予以說明。
[0027]本發(fā)明提供一種數據庫加密字段部分匹配查詢的方法,包括:
[0028]創(chuàng)建數據記錄表;
[0029]根據所述數據記錄表,對所述加密字段創(chuàng)建加密索引表;
[0030]程序獲取待查詢的字段,并加密;
[0031]在數據記錄表中通過SQL語句查詢出完全匹配的數據,并將完全匹配的數據記錄為第一值;
[0032]將所述待查詢的字段進行SHA散列,通過SQL語句在加密索引表中查詢對應數據唯一標志;
[0033]根據對應數據唯一標志,在數據記錄表中查詢出數據唯一標志的所有數據,并記錄為第二值;
[0034]合并所述第一值及第二值。
[0035]其中,創(chuàng)建數據記錄表的步驟具體為:
[0036]建立數據唯一標志列以及帶加密字段列;
[0037]合并所述數據唯一標志列以及帶加密字段列,生成數據記錄表。
[0038]其中,合并所述數據唯一標志列以及帶加密字段列,生成數據記錄表之后,還包括:建立非加密字段列,并合并到數據記錄表。
[0039]其中,根據所述數據記錄表,對所述加密字段創(chuàng)建加密索引表的步驟之后,還包括:
[0040]在所述數據記錄表及加密索引表中插入數據。
[0041]其中,在所述數據記錄表及加密索引表中插入數據的步驟具體為:
[0042]初始化所述數據記錄表及加密索引表;
[0043]將待插入的數據從其字符開頭拆分成部分匹配的N-1個字符串,其中,所述字符串長度為I?N-1,N為所述數據的長度;
[0044]將所述N-1個字符串進行SHA散列,并加密;
[0045]在數據記錄表插入數據,并生成對應的數據唯一標志;
[0046]根據對應的數據唯一標志,在加密索引表中散列插入所述N-1個字符串。
[0047]本發(fā)明還提供一種數據庫加密字段部分匹配查詢的系統(tǒng),包括:
[0048]數據記錄表模塊,用于創(chuàng)建數據記錄表;
[0049]加密索引表模塊,用于根據所述數據記錄表,對所述加密字段創(chuàng)建加密索引表;
[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,本發(fā)明實施例一提供一種數據庫加密字段部分匹配查詢的方法,包括如下步驟:
[0067]S1:創(chuàng)建數據記錄表;
[0068]S2:根據所述數據記錄表,對所述加密字段創(chuàng)建加密索引表;
[0069]S3:程序獲取待查詢的字段,并加密;
[0070]S4:在數據記錄表中通過SQL語句查詢出完全匹配的數據,并將完全匹配的數據記錄為第一值;
[0071]S5:將所述待查詢的字段進行SHA散列,通過SQL語句在加密索引表中查詢對應數據唯一標志;
[0072]S6:根據對應數據唯一標志,在數據記錄表中查詢出數據唯一標志的所有數據,并記錄為第二值;
[0073]S7:合并所述第一值及第二值。
[0074]區(qū)別于現(xiàn)有技術,本發(fā)明通過創(chuàng)建數據記錄表以及對應的加密索引表,在加密查詢時,通過其唯一數字標識實現(xiàn)完全匹配查詢及部分匹配查詢,進而獲得最終結果,其操作性強,同時效率高,加密性好,且提高了系統(tǒng)的安全性及易用性。
[0075]其中,如圖2所示,在實施例一的基礎上,本發(fā)明實施例二步驟SI具體為:
[0076]Sll:建立數據唯一標志列以及帶加密字段列;
[0077]S12:合并所述數據唯一標志列以及帶加密字段列,生成數據記錄表。
[0078]其中,S12之后,還包括步驟S13:建立非加密字段列,并合并到數據記錄表。
[0079]其中非加密字段列可以認為是在現(xiàn)有的基礎數據中,無需加密的那一部分內容,如在手機通訊錄中,在對應的人名下,可僅需要加密手機號碼,而對其他信息,如郵箱、其他IM號碼可不作加密。這些都可以合并到一張數據記錄表中。其中只有手機號碼是主要是本發(fā)明需要加密查詢的。實際操作中,用戶可根據需要加密多種數據,甚至可加密人名下的所有通訊信息。
[0080]應當理解的是,數據記錄表可以是用戶創(chuàng)建的,也可以是現(xiàn)有的數據表中擇取來。如手機通訊錄,對的姓名、電話號碼進行加密,通訊錄就是所述數據記錄表。優(yōu)選地,本發(fā)明可對加密字段(如上文所述的姓名、號碼)創(chuàng)建數據庫索引,以方便后續(xù)查找。
[0081]其中,步驟S2之后,還包括:
[0082]S21:在