本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體地說(shuō)是一種防止被暴力解密的數(shù)據(jù)信息動(dòng)態(tài)加密的方法。
背景技術(shù):
在傳統(tǒng)加密處理中,有各種各樣的加密算法,但往往都比較單一,一旦被破解密鑰,所有的數(shù)據(jù)庫(kù)信息就都被黑客獲取。這種模式下,對(duì)于數(shù)據(jù)庫(kù)涉密表/數(shù)據(jù)的動(dòng)態(tài)加密性顯得尤為重要。具體而言是指如何通過(guò)一種方法將涉及到軍工、金融以及政府涉密數(shù)據(jù)進(jìn)行動(dòng)態(tài)加密,做到每條數(shù)據(jù)或者每個(gè)表的數(shù)據(jù)對(duì)應(yīng)不同的加密密鑰,特別是對(duì)高風(fēng)險(xiǎn)的軍工企業(yè)、金融等行業(yè)涉密數(shù)據(jù)的處理,能夠確保使涉密信息更加安全規(guī)范的存儲(chǔ)起來(lái),在一定程度上做到動(dòng)態(tài)防破解。
專利號(hào)為cn103457995a的專利文獻(xiàn)公開(kāi)了一種終端設(shè)備數(shù)據(jù)信息的存儲(chǔ)方法、終端設(shè)備和云端服務(wù)器,所述方法包括:云端服務(wù)器接收第一終端設(shè)備發(fā)送的待存儲(chǔ)的數(shù)據(jù)信息;所述云端服務(wù)器采用第一加密密鑰對(duì)所述數(shù)據(jù)信息進(jìn)行加密,存儲(chǔ)加密后的數(shù)據(jù)信息,并將所述第一加密密鑰對(duì)應(yīng)的第一解密密鑰發(fā)送給所述第一終端設(shè)備;所述云端服務(wù)器動(dòng)態(tài)生成第二加密密鑰,并且采用所述第二加密密鑰對(duì)所述數(shù)據(jù)信息進(jìn)行重新進(jìn)行加密,存儲(chǔ)重新加密后的數(shù)據(jù)信息,并將所述第二加密密鑰對(duì)應(yīng)的第二解密密鑰發(fā)送給所述第一終端設(shè)備,但是該技術(shù)方案不能實(shí)現(xiàn)數(shù)據(jù)信息的動(dòng)態(tài)加密以及對(duì)每條數(shù)據(jù)或者每個(gè)表的數(shù)據(jù)對(duì)應(yīng)不同的加密密鑰。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的技術(shù)任務(wù)是針對(duì)以上不足之處,提供一種防止被暴力解密的數(shù)據(jù)信息動(dòng)態(tài)加密的方法,來(lái)解決如何實(shí)現(xiàn)將涉及到軍工、金融以及政府涉密數(shù)據(jù)進(jìn)行動(dòng)態(tài)加密,做到每條數(shù)據(jù)或者每個(gè)表的數(shù)據(jù)對(duì)應(yīng)不同的加密密鑰的問(wèn)題。
本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是:該方法包括如下步驟:
(a)、動(dòng)態(tài)生成加密密鑰,加密密鑰為隨機(jī)數(shù)和英文字符的組合;
(b)、對(duì)數(shù)據(jù)進(jìn)行加密存儲(chǔ),在加密存儲(chǔ)過(guò)程中,利用步驟(a)中生成的動(dòng)態(tài)加密密鑰對(duì)涉密數(shù)據(jù)進(jìn)行加密操作,將生成的加密密鑰更新到該數(shù)據(jù)的加密字段中;
(c)、對(duì)步驟(b)中加密的數(shù)據(jù)進(jìn)行解密存儲(chǔ),在解密存儲(chǔ)過(guò)程,對(duì)需要解密的數(shù)據(jù)進(jìn)行解密后,再根據(jù)解密出來(lái)的密鑰值進(jìn)行二次解密。
作為優(yōu)選,所述步驟(b)中加密存儲(chǔ)過(guò)程包括兩次加密:
初次加密,利用密鑰進(jìn)行des加密,通過(guò)動(dòng)態(tài)的密鑰,利用oracle本身自帶的des加密方法,將需要加密的數(shù)據(jù)進(jìn)行加密;
二次加密,將動(dòng)態(tài)生成的密鑰和加密后的密文數(shù)據(jù)拼接到一起,完成數(shù)據(jù)的二次加密。
作為優(yōu)選,所述步驟(c)中解密存儲(chǔ)過(guò)程包括兩次解密:
初次解密,解析出對(duì)應(yīng)的加密密鑰;
二次解密,根據(jù)密鑰進(jìn)行des解密。
本發(fā)明的數(shù)據(jù)信息動(dòng)態(tài)加密的方法和現(xiàn)有技術(shù)相比,具有以下有益效果:
(一)、本發(fā)明能夠?qū)⑸婕暗杰姽?、金融以及政府涉密?shù)據(jù)進(jìn)行動(dòng)態(tài)加密,做到每條數(shù)據(jù)或者每個(gè)表的數(shù)據(jù)對(duì)應(yīng)不同的加密密鑰,不僅將商業(yè)、軍工以及政府涉密數(shù)據(jù)進(jìn)行加密處理,而且在保障原有數(shù)據(jù)的準(zhǔn)確度的情況下,再次對(duì)數(shù)據(jù)進(jìn)行動(dòng)態(tài)加密,特別適合于高風(fēng)險(xiǎn)的軍工企業(yè)、金融、政府等涉密數(shù)據(jù)的處理,從而使涉密數(shù)據(jù)更加安全規(guī)范的存儲(chǔ)起來(lái),在一定程度上做到動(dòng)態(tài)防破解;
(二)、本發(fā)明可以靈活的使用在表級(jí)數(shù)據(jù)、行級(jí)數(shù)據(jù)以及列級(jí)數(shù)據(jù)的加密處理,可以設(shè)置每條數(shù)據(jù)不同密鑰,也可以設(shè)置為不同表對(duì)應(yīng)不同密鑰的加解密靈活方式,對(duì)涉密性較高的數(shù)據(jù)做到每條數(shù)據(jù)的加密密鑰都不一樣,即使數(shù)據(jù)庫(kù)被黑客攻陷,也無(wú)法做相關(guān)的解密處理,從而大大的保障的數(shù)據(jù)的安全性,同時(shí)可以匹配目前應(yīng)用開(kāi)發(fā)所常用的數(shù)據(jù)庫(kù);
(三)、本發(fā)明將密鑰設(shè)置為數(shù)字和英文字符的組合,動(dòng)態(tài)生成的隨機(jī)碼無(wú)窮多,隨機(jī)性高且位數(shù)也是動(dòng)態(tài)生成的,大大提高密鑰的安全度;
(四)、本發(fā)明的隨機(jī)密鑰在存儲(chǔ)過(guò)程中需要被二次加密,確保了密鑰的加密性,傳輸?shù)浇饷艽鎯?chǔ)過(guò)程中的加密數(shù)據(jù)需要被二次解密,數(shù)據(jù)被解密的難度較大,大大提高了數(shù)據(jù)的安全性。
由此可見(jiàn),本發(fā)明具有適應(yīng)業(yè)務(wù)類型、處理策略清晰以及對(duì)涉密數(shù)據(jù)加密度高等特點(diǎn),具有很好的推廣應(yīng)用價(jià)值。
附圖說(shuō)明
下面結(jié)合附圖對(duì)本發(fā)明進(jìn)一步說(shuō)明。
附圖1為動(dòng)態(tài)加密過(guò)程的流程框圖;
附圖2為解密過(guò)程的流程框圖。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明。
實(shí)施例1
本發(fā)明的數(shù)據(jù)信息動(dòng)態(tài)加密的方法,該方法包括如下步驟:
如附圖1所示,(一)、加密
(1)、動(dòng)態(tài)生成加密密鑰,通過(guò)控制數(shù)字長(zhǎng)度,動(dòng)態(tài)生成兩位數(shù)的隨機(jī)數(shù)字,再隨機(jī)形成數(shù)字和英文字母的動(dòng)態(tài)密鑰;
(2)、根據(jù)動(dòng)態(tài)生成的密鑰進(jìn)行des加密,即利用密鑰進(jìn)行des加密,通過(guò)動(dòng)態(tài)的密鑰,再利用oracle本身自帶的des加密方法,將需要加密的數(shù)據(jù)進(jìn)行加密;
(3)、二次加密,將動(dòng)態(tài)生成的密鑰和加密后的密文數(shù)據(jù)拼接到一起,進(jìn)行二次加密;
(4)、更新該數(shù)據(jù)的數(shù)據(jù)庫(kù)。
如附圖2所示,(二)、解密
(1)、初次解密,解析加密數(shù)據(jù),分離出動(dòng)態(tài)密鑰和密文,即對(duì)密文進(jìn)行初次解密,解析出對(duì)應(yīng)的加密密鑰;
(2)、二次解密,根據(jù)密鑰和分離出的密文進(jìn)行des解密;
(3)、更新該數(shù)據(jù)的數(shù)據(jù)庫(kù)。
實(shí)施例2
一種軍工軟件系統(tǒng)中進(jìn)行表中數(shù)據(jù)動(dòng)態(tài)加密的方法包括以下內(nèi)容和步驟:
①、創(chuàng)建加密函數(shù)inspur_jtgk_key(p_textvarchar2),具體代碼sql示例:
②、創(chuàng)建解密函數(shù)inspur_jtgk_deskey(p_textvarchar2),具體代碼sql示例:
③、創(chuàng)建表sadsadas,建標(biāo)sql如下:
x字段為數(shù)據(jù)唯一索引,y字段為加密后的字段。
對(duì)數(shù)據(jù)“《2017年度世界競(jìng)爭(zhēng)力報(bào)告》根據(jù)“經(jīng)濟(jì)表現(xiàn)”“政府效率”“營(yíng)商效率”以及“基礎(chǔ)建設(shè)”4項(xiàng)競(jìng)爭(zhēng)力因素評(píng)估各經(jīng)濟(jì)體。”進(jìn)行加密測(cè)試。
insertintosadsadas(x,y)values(sys_guid(),inspur_jtgk_key('《2017年度世界競(jìng)爭(zhēng)力報(bào)告》根據(jù)“經(jīng)濟(jì)表現(xiàn)”“政府效率”“營(yíng)商效率”以及“基礎(chǔ)建設(shè)”4項(xiàng)競(jìng)爭(zhēng)力因素評(píng)估各經(jīng)濟(jì)體。'));
commit;
④、加密結(jié)果為:
8198b8a6045aa17688f8b5c480cfba8d541317ff4649ce2bf1c7d742ad7a9979a5b655a2f213cf2153e084578b5b562cca97dbe8d2294c00535b0b44f72418accf37b6c2f23174b9819656633d1d4ccb864d3d35a46fedfbaa6bd911c7634dd3ff486489af0524bd033f313a3bc1aa76ym1lnra5yoqbxg4f16
⑤、解密測(cè)試結(jié)果為:
selecty,inspur_jtgk_deskey(y)fromsadsadas。
通過(guò)上面具體實(shí)施方式,所述技術(shù)領(lǐng)域的技術(shù)人員可容易的實(shí)現(xiàn)本發(fā)明。但是應(yīng)當(dāng)理解,本發(fā)明并不限于上述的兩種具體實(shí)施方式。在公開(kāi)的實(shí)施方式的基礎(chǔ)上,所述技術(shù)領(lǐng)域的技術(shù)人員可任意組合不同的技術(shù)特征,從而實(shí)現(xiàn)不同的技術(shù)方案。
除說(shuō)明書(shū)所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。