一種用于數(shù)據(jù)庫的數(shù)據(jù)加密及檢索方法
【專利摘要】本發(fā)明公開了一種用于數(shù)據(jù)庫的數(shù)據(jù)加密及檢索方法,包括如下步驟:a)先利用單向加密算法對(duì)原數(shù)據(jù)加密,在保持原數(shù)據(jù)順序不變的情況下,生成非解密的可索引頭部;b)接著再繼續(xù)對(duì)原數(shù)據(jù)加密生成可解密的密文數(shù)據(jù);c)將可索引頭部和可解密的密文數(shù)據(jù)組合在一起生成加密組合數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫中;所述步驟a)中的單向加密算法為MD5、SHA或HMAC;所述步驟b)中的加密算法為對(duì)稱密鑰加密算法。本發(fā)明提供的用于數(shù)據(jù)庫的數(shù)據(jù)加密及檢索方法,通過組合使用可索引頭部和可解密的密文數(shù)據(jù)對(duì)原數(shù)據(jù)全部采用密文進(jìn)行加密存儲(chǔ),利用可索引頭部對(duì)加密后的數(shù)據(jù)進(jìn)行快速檢索,從而避免全表掃描且能保證解密數(shù)據(jù)的正確性及搜索數(shù)據(jù)的安全性。
【專利說明】—種用于數(shù)據(jù)庫的數(shù)據(jù)加密及檢索方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種數(shù)據(jù)加密及檢索方法,尤其涉及一種用于數(shù)據(jù)庫的數(shù)據(jù)加密及檢索方法。
【背景技術(shù)】
[0002]隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,數(shù)據(jù)庫的應(yīng)用已經(jīng)十分廣泛,深入到了各個(gè)領(lǐng)域。特別是進(jìn)入云時(shí)代和大數(shù)據(jù)時(shí)代后,越來越多重要的數(shù)據(jù)存入了數(shù)據(jù)庫中。但是,如果政府機(jī)構(gòu)的一些政策法規(guī)、絕密文件,商業(yè)機(jī)構(gòu)的一些商業(yè)秘密,金融機(jī)構(gòu)的個(gè)人信息和金融財(cái)產(chǎn)信息等等各種敏感數(shù)據(jù)都以明文形式儲(chǔ)存,那將是災(zāi)難性的。只要稍微具有一點(diǎn)數(shù)據(jù)庫的專業(yè)知識(shí),就可以輕而易舉的獲取到這些關(guān)系到國家的安全、企業(yè)的興衰的信息。因此,如何有效地保證數(shù)據(jù)庫系統(tǒng)的安全,實(shí)現(xiàn)數(shù)據(jù)庫的保密性、完整性、有效性和可用性,已經(jīng)成為業(yè)界人士研究的重要課題。目前,國內(nèi)使用的主流商業(yè)數(shù)據(jù)庫都從國外進(jìn)口,由于法律的限制,安全數(shù)據(jù)庫系統(tǒng)基本不對(duì)中國出口,因此對(duì)現(xiàn)有主流商業(yè)數(shù)據(jù)庫系統(tǒng)的加密、保護(hù)技術(shù)和密文數(shù)據(jù)的高效檢索技術(shù)的需求十分強(qiáng)烈。
[0003]現(xiàn)有技術(shù)中,一般來說,數(shù)據(jù)加密是把純文本數(shù)據(jù)利用DES,3DES,AES等的對(duì)稱密鑰算法進(jìn)行永久變形。這種變形的數(shù)據(jù)在完全喪失加密之前的文本意義狀態(tài)下儲(chǔ)存到數(shù)據(jù)庫中。如果在這時(shí)生成儲(chǔ)存數(shù)據(jù)的索引表,排序(ordering)將變得亂七八糟無法進(jìn)行索引搜索,從而導(dǎo)致數(shù)據(jù)庫管理系統(tǒng)不能使用索引表,而只能進(jìn)行整個(gè)表格的掃描(Table fullScan)ο這種全表掃描性能大幅下降(最多能帶來數(shù)十倍的性能低下),給數(shù)據(jù)庫運(yùn)營帶來致命的問題。
[0004]由上可見,現(xiàn)有的技術(shù)是直接對(duì)數(shù)據(jù)利用DES,3DES,AES等對(duì)稱密鑰算法進(jìn)行永久變形,進(jìn)行粗暴式的加密,存在如下缺點(diǎn):
[0005]I)、數(shù)據(jù)完全變形。這種變形的數(shù)據(jù)完全喪失加密之前的文本意義,儲(chǔ)存到數(shù)據(jù)庫中的數(shù)據(jù)變的雜亂無章,無法進(jìn)行有效的序列和索引。
[0006]2)、無法進(jìn)行索引操作。這個(gè)時(shí)候產(chǎn)生的索引表變的雜亂無章,無法進(jìn)行有效的索弓I,這就導(dǎo)致了對(duì)加密表的查詢,只能進(jìn)行全表掃描(TABLEFULLSCAN)。
[0007]3)、查詢性能大幅下降。這種技術(shù)雖然在形式上實(shí)現(xiàn)了數(shù)據(jù)的加密,但是在實(shí)際的操作中卻存在不可操作的問題。因?yàn)槟壳暗臄?shù)據(jù)量不再是以前傳統(tǒng)意義上的小數(shù)據(jù)加密,而是大批量數(shù)據(jù)的加密。這樣產(chǎn)生的數(shù)據(jù)效果是一堆雜亂無章的數(shù)據(jù)的全表掃描,要查出想要的結(jié)果,將是一個(gè)漫長的過程,基本上沒有實(shí)際的操作意義。
[0008]4)、數(shù)據(jù)加密有漏洞。這種加密技術(shù),在查詢的時(shí)候,會(huì)生成一條加密后的查詢條件語句,這種語句很容易被非法捕獲并進(jìn)行反解密,數(shù)據(jù)其實(shí)是能解密出來的,從而安全存在一定的漏洞。
【發(fā)明內(nèi)容】
[0009]本發(fā)明所要解決的技術(shù)問題是提供一種用于數(shù)據(jù)庫的數(shù)據(jù)加密及檢索方法,即能對(duì)原數(shù)據(jù)進(jìn)行加密存儲(chǔ),又能保證對(duì)加密后的數(shù)據(jù)進(jìn)行快速檢索,避免全表掃描,且能保證解密數(shù)據(jù)的正確性及搜索數(shù)據(jù)的安全性。
[0010]本發(fā)明為解決上述技術(shù)問題而采用的技術(shù)方案是提供一種用于數(shù)據(jù)庫的數(shù)據(jù)加密方法,其中,包括如下步驟:a)先利用單向加密算法對(duì)原數(shù)據(jù)加密,在保持原數(shù)據(jù)順序不變的情況下,生成非解密的可索引頭部山)接著再繼續(xù)對(duì)原數(shù)據(jù)加密生成可解密的密文數(shù)據(jù);c)將可索引頭部和可解密的密文數(shù)據(jù)組合在一起生成加密組合數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫中。
[0011]上述的用于數(shù)據(jù)庫的數(shù)據(jù)加密方法,其中,所述步驟a)中的單向加密算法為MD5、SHA或HMAC ;所述步驟b)中的加密算法為對(duì)稱密鑰加密算法。
[0012]上述的用于數(shù)據(jù)庫的數(shù)據(jù)加密方法,其中,所述對(duì)稱密鑰加密算法為AES、ARIA、SEED、TDES 或 DES。
[0013]上述的用于數(shù)據(jù)庫的數(shù)據(jù)加密方法,其中,所述步驟c)中還包括在組合數(shù)據(jù)的后面插入可索引頭部的數(shù)據(jù)長度信息,然后再生成加密組合數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫中。
[0014]本發(fā)明為解決上述技術(shù)問題還提供一種用于數(shù)據(jù)庫的數(shù)據(jù)檢索方法,其中,包括如下步驟:a)獲取上述的數(shù)據(jù)加密方法生成的加密組合數(shù)據(jù);b)接著對(duì)待搜索數(shù)據(jù)采用相同的單向加密算法生成加密搜索數(shù)據(jù),并和步驟a)中獲取的加密組合數(shù)據(jù)中的可索引頭部進(jìn)行檢索比對(duì);c)如果存在匹配的可索引頭部,則確定該加密組合數(shù)據(jù)中的密文數(shù)據(jù)的起始位置,并對(duì)密文數(shù)據(jù)進(jìn)行解密獲取查詢數(shù)據(jù)。
[0015]上述的用于數(shù)據(jù)庫的數(shù)據(jù)檢索方法,其中,所述步驟a)和步驟b)中的單向加密算法為MD5、SHA或HMAC ;所述步驟a)和步驟c)中的加密算法為對(duì)稱密鑰加密算法。
[0016]上述的用于數(shù)據(jù)庫的數(shù)據(jù)檢索方法,其中,所述步驟a)還包括將加密組合數(shù)據(jù)中的可索引頭部生成索引表,所述步驟b)利用所述索引表對(duì)所述加密搜索數(shù)據(jù)進(jìn)行檢索。
[0017]上述的用于數(shù)據(jù)庫的數(shù)據(jù)檢索方法,其中,所述步驟c)根據(jù)索引表中的可索引頭部確定密文數(shù)據(jù)的起始位置,所述加密組合數(shù)據(jù)中對(duì)應(yīng)索引表中的可索引頭部后面的數(shù)據(jù)即為密文數(shù)據(jù)的起始位置。
[0018]上述的用于數(shù)據(jù)庫的數(shù)據(jù)檢索方法,其中,所述步驟a)中加密組合數(shù)據(jù)的后面插入有可索引頭部的數(shù)據(jù)長度信息,所述步驟c)根據(jù)加密組合數(shù)據(jù)最后的可索引頭部的數(shù)據(jù)長度信息確定密文數(shù)據(jù)的起始位置。
[0019]上述的用于數(shù)據(jù)庫的數(shù)據(jù)檢索方法,其中,所述步驟a)中加密組合數(shù)據(jù)中的密文數(shù)據(jù)前插入有預(yù)設(shè)起始標(biāo)識(shí)符,如果加密組合數(shù)據(jù)中存在多個(gè)預(yù)設(shè)起始標(biāo)識(shí)符,依次對(duì)預(yù)設(shè)起始標(biāo)識(shí)符后的密文數(shù)據(jù)進(jìn)行解密,然后再對(duì)解密數(shù)據(jù)采用相同的單向加密算法加密并與加密組合數(shù)據(jù)中的可索引頭部進(jìn)行比較,直至兩者完全匹配,則當(dāng)前預(yù)設(shè)起始標(biāo)識(shí)符為密文數(shù)據(jù)的起始位置。
[0020]本發(fā)明對(duì)比現(xiàn)有技術(shù)有如下的有益效果:本發(fā)明提供的用于數(shù)據(jù)庫的數(shù)據(jù)加密及檢索方法,通過組合使用可索引頭部和可解密的密文數(shù)據(jù)對(duì)原數(shù)據(jù)全部采用密文進(jìn)行加密存儲(chǔ),利用可索引頭部對(duì)加密后的數(shù)據(jù)進(jìn)行快速檢索,從而避免全表掃描,且能保證解密數(shù)據(jù)的正確性及搜索數(shù)據(jù)的安全性。
【專利附圖】
【附圖說明】
[0021]圖1為本發(fā)明用于數(shù)據(jù)庫的數(shù)據(jù)加密流程示意圖;[0022]圖2為本發(fā)明用于數(shù)據(jù)庫的數(shù)據(jù)加密變換及組合示意圖;
[0023]圖3為本發(fā)明用于數(shù)據(jù)庫的數(shù)據(jù)檢索流程示意圖。
【具體實(shí)施方式】
[0024]下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的描述。
[0025]圖1為本發(fā)明用于數(shù)據(jù)庫的數(shù)據(jù)加密流程示意圖。
[0026]請(qǐng)參見圖1,本發(fā)明提供的用于數(shù)據(jù)庫的數(shù)據(jù)加密方法包括如下步驟:
[0027]步驟101:先利用單向加密算法對(duì)原數(shù)據(jù)加密,在保持原數(shù)據(jù)順序不變的情況下,生成非解密的可索引頭部;所述單向加密算法可以為MD5、SHA或HMAC等各種現(xiàn)有的算法,利用單向加密算法既可保持原數(shù)據(jù)順序不變生成可索引頭部,又能保證索引頭部非可逆,不可解密。
[0028]步驟102:接著再繼續(xù)對(duì)原數(shù)據(jù)加密生成可解密的密文數(shù)據(jù);如AES、ARIA、SEED、TDES或DES等對(duì)稱密鑰加密算法。
[0029]步驟103:將可索引頭部和可解密的密文數(shù)據(jù)組合在一起生成加密組合數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫中。
[0030]步驟104:為了便于正確快速定位加密組合數(shù)據(jù)中可解密的密文數(shù)據(jù)的起始位置,還可在組合數(shù)據(jù)的后面插入可索引頭部的數(shù)據(jù)長度信息,然后再生成加密組合數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫中。
[0031]圖2為本發(fā)明用于數(shù)據(jù)庫的數(shù)據(jù)加密變換及組合示意圖。
[0032]請(qǐng)繼續(xù)參見圖2,把原數(shù)據(jù)110變換成可搜索的加密組合數(shù)據(jù)100過程如下:
[0033]首先將原數(shù)據(jù)110加密成索引頭部:這時(shí)儲(chǔ)存在原表格的數(shù)據(jù),或者從應(yīng)用(App)中直接輸入的原始數(shù)據(jù)利用單向加密算法加密成索引頭部,這里使用的單向加密算法是通常使用的公開算法,所以可以在多種算法中選擇使用。因此,索引頭部101保持原數(shù)據(jù)110的順序,并在維持不被解密的狀態(tài)下被加密。如圖2的原數(shù)據(jù)110中保存著的“abcdefgh”通過單方向數(shù)據(jù)加密算法,被加密成索引頭部“QlrxKgdDUCSyLp0gFbZ4a0MklWo=”。這里根據(jù)使用的算法變化的數(shù)據(jù)形式會(huì)有所不同。同樣地,原始數(shù)據(jù)“12345678”也進(jìn)行單向加密生成可索引頭部 “ fCIvspJ9goryLlkhN0iTJIBjfA0=”。
[0034]其次是將原數(shù)據(jù)110繼續(xù)加密成加密數(shù)據(jù)102。這時(shí),保存在原數(shù)據(jù)表中儲(chǔ)存的原數(shù)據(jù)110,或是從應(yīng)用軟件中直接輸入的原數(shù)據(jù)110是根據(jù)的標(biāo)準(zhǔn)的塊加密算法或單方向算法被加密。在這里提到的塊加密算法基于AES,ARIA, SEED, TDES或DES等對(duì)稱加密算法,但不限與此。單方向法則是指SHA-l、SHA-2等HASH函數(shù),但算法不限于此,本實(shí)施例中采用的是SHA-1加密算法。
[0035]因此,加密數(shù)據(jù)102與加密之前的原數(shù)據(jù)相比是完全不同,但可以被解讀。如圖2中的原始數(shù)據(jù)‘a(chǎn)bcdefgh’以塊加密算法或單向算法加密成:
[0036]“ 9E7AD9F674BD00CC6E45F510D4F79FB547091F8F61BF7197”。
[0037]接著將索引頭部101及加密數(shù)據(jù)102相互結(jié)合的生成組合數(shù)據(jù)100。即這個(gè)階段的加密組合數(shù)據(jù)100是‘索引頭部101’+ ‘加密數(shù)據(jù)102’格式。因此,從’abcdefgh’的原始數(shù)據(jù)110中,各個(gè)加密后的索引頭部101及加密數(shù)據(jù)102相結(jié)合后形成:‘QlrxKgdDUCsyLp0gFbz4a0MklWo=9E7AD9F674BD00CC6E45F510D4F79FB547091F8F61BF7197’ 格式的組合數(shù)據(jù)。
[0038]最后將索引頭部長度信息103插入到加密組合數(shù)據(jù)100 ;即最終的加密組合數(shù)據(jù)會(huì)呈現(xiàn)出‘索引頭部101’ + ‘加密數(shù)據(jù)102’ + ‘索引頭部的長度信息103’格式。
[0039]例如‘a(chǎn)bcdefgh’原數(shù)據(jù)110,加密后最終生成的加密組合數(shù)據(jù)100為:‘QlrxKgdDUCsyLp0gFbz4a0Mklffo=9E7AD9F674BD00CC6E45F510D4F79FB547091F8F61BF7197,形式,索引頭部長度信息103占28字節(jié)(byte)。因此,索引頭部長度信息103以‘0028’的形態(tài)插入到加密組合數(shù)據(jù)100中,將會(huì)在索引頭部101結(jié)合的加密數(shù)據(jù)102需要解密時(shí)調(diào)用。這樣的加密組合數(shù)據(jù)100儲(chǔ)存在數(shù)據(jù)庫中。一方面索引頭部的長度信息103可以考慮索引頭部101的可變性長度的變化,確保不發(fā)生錯(cuò)誤的搜索,提供加密數(shù)據(jù)102的解密。
[0040]本發(fā)明還提供一種通過前面提及到的方法來搜索所產(chǎn)生的加密組合數(shù)據(jù)的檢索方法,具體檢索過程如圖3所示:
[0041]步驟301:獲取上述的數(shù)據(jù)加密方法生成的加密組合數(shù)據(jù)100 ;
[0042]步驟302:接著對(duì)待搜索數(shù)據(jù)采用相同的單向加密算法生成加密搜索數(shù)據(jù),并和步驟301中獲取的加密組合數(shù)據(jù)100中的可索引頭部進(jìn)行檢索比對(duì);單向加密的搜索數(shù)據(jù)會(huì)保持原有順序,并且不會(huì)被解密。此時(shí),加密的搜索數(shù)據(jù)適用于對(duì)應(yīng)的搜索索引頭部101上;隨著索引頭部的搜索,包含的組合加密數(shù)據(jù)100也會(huì)被搜索。
[0043]步驟303:如果存在匹配的可索引頭部,則確定該加密組合數(shù)據(jù)中的密文數(shù)據(jù)的起始位置,并對(duì)密文數(shù)據(jù)進(jìn)行解密獲取查詢數(shù)據(jù)。本發(fā)明優(yōu)選通過索引頭部101的長度信息,確定加密數(shù)據(jù)102的起始位置,從組合加密數(shù)據(jù)100中確定要解密的加密數(shù)據(jù)。如果搜索到組合數(shù)據(jù):
[0044]<QlrxKgdDUCsyLp0gFbz4a0Mklffo=9E7AD9F674BD00CC6E45F510D4F79FB547091F8F61BF71970018’ 中,‘QlrxKgdDUCsyLp0gFbz4a0MklWo=’ 是 28 字節(jié)的索引頭部 101 ;所以 ‘9’就是加密數(shù)據(jù)102的起始位置。
[0045]最后,從起始位置復(fù)原加密數(shù)據(jù)102。這時(shí),從前面所提的起始位置‘9’包含在內(nèi)的 ‘9E7AD9F674BD00CC6E45F510D4F79FB547091F8F61BF7197’ 數(shù)據(jù)部分被解密。這樣加密數(shù)據(jù)102會(huì)解密成原數(shù)據(jù)110。
[0046]為了加快檢索,其中,本發(fā)明還可將加密組合數(shù)據(jù)中的可索引頭部生成索引表,然后利用所述索引表對(duì)所述加密搜索數(shù)據(jù)進(jìn)行檢索。除了使用索引頭部的長度信息103快速定位加密數(shù)據(jù)102的起始位置外,所述步驟303也可根據(jù)索引表中的可索引頭部確定密文數(shù)據(jù)的起始位置,所述加密組合數(shù)據(jù)中對(duì)應(yīng)索引表中的可索引頭部后面的數(shù)據(jù)即為密文數(shù)據(jù)的起始位置。此外,所述加密組合數(shù)據(jù)100中的密文數(shù)據(jù)前插入有預(yù)設(shè)起始標(biāo)識(shí)符進(jìn)行定位,如果加密組合數(shù)據(jù)中存在多個(gè)預(yù)設(shè)起始標(biāo)識(shí)符,依次對(duì)預(yù)設(shè)起始標(biāo)識(shí)符后的密文數(shù)據(jù)進(jìn)行解密,然后再對(duì)解密數(shù)據(jù)采用相同的單向加密算法加密并與加密組合數(shù)據(jù)中的可索引頭部進(jìn)行比較,直至兩者完全匹配,則當(dāng)前預(yù)設(shè)起始標(biāo)識(shí)符為密文數(shù)據(jù)的起始位置。
[0047]綜上所述,本發(fā)明提供的用于數(shù)據(jù)庫的數(shù)據(jù)加密及檢索方法,把原數(shù)據(jù)加密成可解密狀態(tài)的加密數(shù)據(jù),生成原數(shù)據(jù)加密成能維持順序且不可解密狀態(tài)的索引頭部,并生成相結(jié)合的組合加密數(shù)據(jù),還可把索引頭部長度信息插入到組合加密數(shù)據(jù)中,在搜索組合數(shù)據(jù)時(shí)只使用索引頭部,并根據(jù)與搜索到的索引頭部來解密組合的加密數(shù)據(jù)。
[0048]因?yàn)楸景l(fā)明可搜索的索引頭部包含在組合數(shù)據(jù)里,就算不生成特殊的索引表,普通的表也可以實(shí)現(xiàn)索引搜索。同時(shí),由于所有的索引頭部和加密數(shù)據(jù)都是加密的,故能夠保證信息的安全性。此外,由于搜索的內(nèi)容也是采用單向的加密方法,因此對(duì)于專業(yè)和非專業(yè)的用戶來說,也無法進(jìn)行數(shù)據(jù)的解密;而且索引頭部長度信息已經(jīng)插入到組合數(shù)據(jù)中,可以隨時(shí)確定加密數(shù)據(jù)的起始位置,不管索引頭部的長度,可以正確解密原數(shù)據(jù)。具體優(yōu)點(diǎn)如下:
[0049]I)、數(shù)據(jù)以原有序列保存。由于這種加密的方法是采用單向加密的方法,因此數(shù)據(jù)將保持原有序列。
[0050]2)、數(shù)據(jù)表查詢可進(jìn)行索引操作。這個(gè)時(shí)候產(chǎn)生的索引表,是按序列進(jìn)行的,因此可以使用到索引,提高數(shù)據(jù)的檢索時(shí)間。
[0051]3)、查詢性能和加密前基本持平。由于加密數(shù)據(jù)采用了索引查詢,只是數(shù)據(jù)的長度會(huì)比加密前增加,所以查詢速度會(huì)有部分損耗,但是對(duì)于批量數(shù)據(jù)的查詢,速度基本可以持平,損耗忽略不計(jì)。
[0052]4)、數(shù)據(jù)加密安全性高。由于數(shù)據(jù)加密是采用了單向加密的方法,數(shù)據(jù)解密是不可逆的,因此無法通過sql進(jìn)行解密,提高了安全性。
[0053]雖然本發(fā)明已以較佳實(shí)施例揭示如上,然其并非用以限定本發(fā)明,任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作些許的修改和完善,因此本發(fā)明的保護(hù)范圍當(dāng)以權(quán)利要求書所界定的為準(zhǔn)。
【權(quán)利要求】
1.一種用于數(shù)據(jù)庫的數(shù)據(jù)加密方法,其特征在于,包括如下步驟: a)先利用單向加密算法對(duì)原數(shù)據(jù)加密,在保持原數(shù)據(jù)順序不變的情況下,生成非解密的可索引頭部; b)接著再繼續(xù)對(duì)原數(shù)據(jù)加密生成可解密的密文數(shù)據(jù); c)將可索引頭部和可解密的密文數(shù)據(jù)組合在一起生成加密組合數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫中。
2.如權(quán)利要求1所述的用于數(shù)據(jù)庫的數(shù)據(jù)加密方法,其特征在于,所述步驟a)中的單向加密算法為MD5、SHA或HMAC ;所述步驟b)中的加密算法為對(duì)稱密鑰加密算法。
3.如權(quán)利要求2所述的用于數(shù)據(jù)庫的數(shù)據(jù)加密方法,其特征在于,所述對(duì)稱密鑰加密算法為 AES、ARIA、SEED、TDES 或 DES。
4.如權(quán)利要求1所述的用于數(shù)據(jù)庫的數(shù)據(jù)加密方法,其特征在于,所述步驟c)中還包括在組合數(shù)據(jù)的后面插入可索引頭部的數(shù)據(jù)長度信息,然后再生成加密組合數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫中。
5.一種用于數(shù)據(jù)庫的數(shù)據(jù)檢索方法,其特征在于,包括如下步驟: a)獲取權(quán)利要求1所述的數(shù)據(jù)加密方法生成的加密組合數(shù)據(jù); b)接著對(duì)待搜索數(shù)據(jù)采用相同的單向加密算法生成加密搜索數(shù)據(jù),并和步驟a)中獲取的加密組合數(shù)據(jù)中的可索引頭部進(jìn)行檢索比對(duì); c)如果存在匹配的可索引頭部,則確定該加密組合數(shù)據(jù)中的密文數(shù)據(jù)的起始位置,并對(duì)密文數(shù)據(jù)進(jìn)行解密獲取查詢數(shù)據(jù)。
6.如權(quán)利要求5所述的用于數(shù)據(jù)庫的數(shù)據(jù)檢索方法,其特征在于,所述步驟a)和步驟b)中的單向加密算法為MD5、SHA或HMAC;所述步驟a)和步驟c)中的加密算法為對(duì)稱密鑰加密算法。
7.如權(quán)利要求5所述的用于數(shù)據(jù)庫的數(shù)據(jù)檢索方法,其特征在于,所述步驟a)還包括將加密組合數(shù)據(jù)中的可索引頭部生成索引表,所述步驟b)利用索引表對(duì)所述加密搜索數(shù)據(jù)進(jìn)行檢索。
8.如權(quán)利要求7所述的用于數(shù)據(jù)庫的數(shù)據(jù)檢索方法,其特征在于,所述步驟c)根據(jù)索引表中的可索引頭部確定密文數(shù)據(jù)的起始位置,所述加密組合數(shù)據(jù)中對(duì)應(yīng)索引表中的可索引頭部后面的數(shù)據(jù)即為密文數(shù)據(jù)的起始位置。
9.如權(quán)利要求5所述的用于數(shù)據(jù)庫的數(shù)據(jù)檢索方法,其特征在于,所述步驟a)中加密組合數(shù)據(jù)的后面插入有可索引頭部的數(shù)據(jù)長度信息,所述步驟c)根據(jù)加密組合數(shù)據(jù)最后的可索引頭部的數(shù)據(jù)長度信息確定密文數(shù)據(jù)的起始位置。
10.如權(quán)利要求5所述的用于數(shù)據(jù)庫的數(shù)據(jù)檢索方法,其特征在于,所述步驟a)中加密組合數(shù)據(jù)中的密文數(shù)據(jù)前插入有預(yù)設(shè)起始標(biāo)識(shí)符,如果加密組合數(shù)據(jù)中存在多個(gè)預(yù)設(shè)起始標(biāo)識(shí)符,依次對(duì)預(yù)設(shè)起始標(biāo)識(shí)符后的密文數(shù)據(jù)進(jìn)行解密,然后再對(duì)解密數(shù)據(jù)采用相同的單向加密算法加密并與加密組合數(shù)據(jù)中的可索引頭部進(jìn)行比較,直至兩者完全匹配,則當(dāng)前預(yù)設(shè)起始標(biāo)識(shí)符為密文數(shù)據(jù)的起始位置。
【文檔編號(hào)】G06F21/60GK103927357SQ201410150462
【公開日】2014年7月16日 申請(qǐng)日期:2014年4月15日 優(yōu)先權(quán)日:2014年4月15日
【發(fā)明者】程永新, 符強(qiáng), 曾天水 申請(qǐng)人:上海新炬網(wǎng)絡(luò)技術(shù)有限公司