本發(fā)明涉及一種存儲(chǔ)數(shù)據(jù)防篡改的方法及系統(tǒng),尤其涉及一種適用于多種類型數(shù)據(jù)庫的整合加密存儲(chǔ)的防篡改方法及系統(tǒng)。
背景技術(shù):
:數(shù)據(jù)庫,比如MySQL,SQLServer等,作為主流的數(shù)據(jù)存儲(chǔ)工具。各種計(jì)算機(jī)系統(tǒng)中,普遍使用數(shù)據(jù)庫來存儲(chǔ)系統(tǒng)在生成過程中的數(shù)據(jù),以及查找信息。數(shù)據(jù)庫里面明文存儲(chǔ)的數(shù)據(jù),其信息安全面臨幾個(gè)方面的考驗(yàn)。1)信息泄露。由于數(shù)據(jù)是明文存儲(chǔ)的,數(shù)據(jù)庫被非授權(quán)進(jìn)入,或者非法入侵,數(shù)據(jù)將一覽無余。所以數(shù)據(jù)將會(huì)面臨被泄露的風(fēng)險(xiǎn)。特別是數(shù)據(jù)庫中存儲(chǔ)的是敏感信息,比如用戶個(gè)人信息,泄露之后,將對(duì)個(gè)人隱私造成重大的影響。2)數(shù)據(jù)被篡改。由于數(shù)據(jù)是明文存儲(chǔ)的,數(shù)據(jù)庫被非授權(quán)進(jìn)入,數(shù)據(jù)信息面臨被篡改的風(fēng)險(xiǎn)。入侵者只需找到對(duì)應(yīng)字段,即可對(duì)其進(jìn)行篡改,特別是數(shù)據(jù)庫中的存儲(chǔ)資金信息。資金信息被篡改之后,將會(huì)造成嚴(yán)重的資金損失。技術(shù)實(shí)現(xiàn)要素:有鑒于此,為解決現(xiàn)有技術(shù)中存在的問題,本發(fā)明具體提供了如下技術(shù)方案:一方面,本發(fā)明提供了一種整合加密存儲(chǔ)防篡改的方法,該方法包括:S1、將原始數(shù)據(jù)中的多個(gè)字段,根據(jù)預(yù)設(shè)的整合規(guī)則,整合為一個(gè)字段;S2、讀取加密密鑰,對(duì)整合后的字段進(jìn)行加密,并將加密后的數(shù)據(jù)存儲(chǔ)至數(shù)據(jù)庫中。優(yōu)選地,所述方法還包括:對(duì)數(shù)據(jù)的解密步驟為:S3、讀取解密密鑰;S4、調(diào)用解密算法,使用所述密鑰,對(duì)所述加密后的數(shù)據(jù)進(jìn)行讀取,并進(jìn)行解密,獲取到明文;S5、根據(jù)預(yù)設(shè)的分解規(guī)則,對(duì)所述明文進(jìn)行分解,得到原始數(shù)據(jù)。優(yōu)選地,所述S1還包括:對(duì)原始數(shù)據(jù)執(zhí)行查找,查找出需要存儲(chǔ)的N個(gè)字段/數(shù)據(jù)對(duì);再對(duì)查找到的字段/數(shù)據(jù)對(duì)進(jìn)行整合。優(yōu)選地,所述的整合規(guī)則與分解規(guī)則相同,均為JSON語法規(guī)則。優(yōu)選地,所述的整合具體包括:1)字段與對(duì)應(yīng)的數(shù)據(jù)對(duì)之間,以冒號(hào)區(qū)分;2)字段/數(shù)據(jù)對(duì)之間,以逗號(hào)間隔;3)將間隔排列后的字段/數(shù)據(jù)對(duì)以同一個(gè)大括號(hào)整合,獲得一字符串,完成整合。另一方面,本發(fā)明還提供了一種整合加密存儲(chǔ)防篡改的系統(tǒng),應(yīng)用于數(shù)據(jù)庫數(shù)據(jù)的加密中,該系統(tǒng)包括:整合模塊、加密模塊、解密模塊、分解模塊;所述整合模塊,用于將原始數(shù)據(jù)的多個(gè)字段,整合為一個(gè)字段,獲得待加密數(shù)據(jù);所述加密模塊,用于對(duì)所述的待加密數(shù)據(jù)進(jìn)行加密;所述解密模塊,用于讀取加密數(shù)據(jù)時(shí),對(duì)存儲(chǔ)在數(shù)據(jù)庫中的加密后的數(shù)據(jù)進(jìn)行解密,獲取所述待加密數(shù)據(jù);所述分解模塊,用于對(duì)解密后獲取的所述待加密數(shù)據(jù),分解為多個(gè)字段,獲得原始數(shù)據(jù)。優(yōu)選地,所述整合模塊對(duì)原始數(shù)據(jù)執(zhí)行查找,查找出需要存儲(chǔ)的N個(gè)字段/數(shù)據(jù)對(duì);并在字段與對(duì)應(yīng)的數(shù)據(jù)對(duì)之間,以冒號(hào)區(qū)分;字段/數(shù)據(jù)對(duì)之間,以逗號(hào)間隔;將間隔排列后的字段/數(shù)據(jù)對(duì)合并為一個(gè)字符串,完成整合。優(yōu)選地,所述系統(tǒng)包括存儲(chǔ)模塊,用于存儲(chǔ)加密密鑰、預(yù)設(shè)的整合規(guī)則、加密算法。優(yōu)選地,所述加密模塊從所述整合模塊獲得待加密數(shù)據(jù),并從存儲(chǔ)模塊讀取加密算法及加密密鑰,對(duì)所述待加密數(shù)據(jù)進(jìn)行加密,并將加密后的數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫中。優(yōu)選地,所述加密算法為DES算法。與現(xiàn)有技術(shù)相比,本發(fā)明技術(shù)方案具有如下的優(yōu)點(diǎn):1)本發(fā)明提供的方法,能夠避免信息泄露。在數(shù)據(jù)庫中不能看到明文,僅能看到加密后的密文。從而避免了數(shù)據(jù)泄露的風(fēng)險(xiǎn)。2)多字段整合加密,減少存儲(chǔ)空間,提高存儲(chǔ)效率。多個(gè)存儲(chǔ)字段,只需一次加密計(jì)算,計(jì)算次數(shù)少。只需一個(gè)數(shù)據(jù)存儲(chǔ)空間,存儲(chǔ)效率高。3)防止數(shù)據(jù)被篡改。在讀取數(shù)據(jù)中,先從密文中予以解密,從而獲得解密的整合后字段。再依據(jù)整合格式,從而讀取到每一個(gè)字段的信息。由于一個(gè)密文,對(duì)應(yīng)多個(gè)字段/數(shù)據(jù)對(duì),所以密文中,不能找出其中某一個(gè)字段名/數(shù)據(jù)對(duì)。從而能夠有效防止數(shù)據(jù)被篡改。附圖說明為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其它的附圖。圖1為本發(fā)明實(shí)施例的加密及存儲(chǔ)流程;圖2為本發(fā)明實(shí)施例的讀取及解密流程。具體實(shí)施方式下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例進(jìn)行詳細(xì)描述。應(yīng)當(dāng)明確,所描述的實(shí)施例僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。對(duì)于數(shù)據(jù)庫被非法入侵之后,數(shù)據(jù)被泄露,被篡改的風(fēng)險(xiǎn),本發(fā)明提供了對(duì)應(yīng)的解決方法。實(shí)施例1:一方面,本發(fā)明提供了一種整合加密存儲(chǔ)防篡改的方法,該方法包括:S1、將原始數(shù)據(jù)中的多個(gè)字段,根據(jù)預(yù)設(shè)的整合規(guī)則,整合為一個(gè)字段;S2、讀取加密密鑰,對(duì)整合后的字段進(jìn)行加密,并將加密后的數(shù)據(jù)存儲(chǔ)至數(shù)據(jù)庫中。在具體的實(shí)施方式中,多字段整合加密,減少存儲(chǔ)空間,提高存儲(chǔ)效率。在加密之前,將需要存儲(chǔ)的多字段,以一定的格式整合為一個(gè)字段。再將整合后的字段整體予以加密后,將密文存入到數(shù)據(jù)庫中。雖然有多個(gè)需存儲(chǔ)的字段,但是僅僅需要一次加密計(jì)算,一個(gè)存儲(chǔ)空間即可。從而大大減少了加密計(jì)算的次數(shù),減少了存儲(chǔ)空間,提高了存儲(chǔ)效率。優(yōu)選地,所述方法還包括:對(duì)數(shù)據(jù)的解密步驟為:S3、讀取解密密鑰;S4、調(diào)用解密算法,使用所述密鑰,對(duì)所述加密后的數(shù)據(jù)進(jìn)行讀取,并進(jìn)行解密,獲取到明文;S5、根據(jù)預(yù)設(shè)的分解規(guī)則,對(duì)所述明文進(jìn)行分解,得到原始數(shù)據(jù)。具體實(shí)施方式中,本發(fā)明對(duì)明文數(shù)據(jù)采用可逆DES(DataEncryptionStandard)的加密方式。數(shù)據(jù)加密是指通過加密算法和加密密鑰將明文轉(zhuǎn)變?yōu)槊芪摹6饷軇t是通過對(duì)應(yīng)的解密算法和解密密鑰將密文恢復(fù)為明文。從而數(shù)據(jù)經(jīng)過加密這一步驟之后,以二進(jìn)制的形式,再存儲(chǔ)在數(shù)據(jù)庫中。從而在數(shù)據(jù)庫中不能看到明文,僅能看到加密后的密文。從而避免了數(shù)據(jù)泄露的風(fēng)險(xiǎn)。優(yōu)選地,所述S1還包括:對(duì)原始數(shù)據(jù)執(zhí)行查找,查找出需要存儲(chǔ)的N個(gè)字段/數(shù)據(jù)對(duì);再對(duì)查找到的字段/數(shù)據(jù)對(duì)進(jìn)行整合。優(yōu)選地,所述的整合規(guī)則與分解規(guī)則相同,均為JSON語法規(guī)則。優(yōu)選地,所述的整合具體包括:1)字段與對(duì)應(yīng)的數(shù)據(jù)對(duì)之間,以冒號(hào)區(qū)分;2)字段/數(shù)據(jù)對(duì)之間,以逗號(hào)間隔;3)將間隔排列后的字段/數(shù)據(jù)對(duì)以同一個(gè)大括號(hào)整合,獲得一字符串,完成整合。在一個(gè)更為具體的實(shí)施方式中,本發(fā)明的數(shù)據(jù)存儲(chǔ)加密流程如下:a)方法開始之后,查找出需要存儲(chǔ)的N個(gè)字段名/數(shù)據(jù)對(duì)。字段/數(shù)據(jù)對(duì)的個(gè)數(shù)N,不限于1個(gè),可以大于1。b)使用整合模塊,對(duì)步驟a)中的數(shù)據(jù)進(jìn)行整合。按照J(rèn)SON的規(guī)則,整合成對(duì)應(yīng)的格式。其具體的整合規(guī)則舉例如下(以三個(gè)字段/數(shù)據(jù)對(duì)為例):字段1字段2字段3數(shù)據(jù)1數(shù)據(jù)2數(shù)據(jù)3字段1,字段2,字段3分別對(duì)應(yīng)的數(shù)據(jù)為:數(shù)據(jù)1,數(shù)據(jù)2,數(shù)據(jù)3。整個(gè)算法分三步。第一步,字段/數(shù)據(jù)對(duì)以冒號(hào)予以區(qū)分,例如字段1:數(shù)據(jù)1第二步,字段/數(shù)據(jù)對(duì)之間以逗號(hào)予以間隔,字段1:數(shù)據(jù)1,字段2:數(shù)據(jù)2,字段3:數(shù)據(jù)3第三步,以大括號(hào)整合所有字段/數(shù)據(jù)對(duì),從而得到如下字符串,完成整合邏輯。{字段1:數(shù)據(jù)1,字段2:數(shù)據(jù)2,字段3:數(shù)據(jù)3}c)使用加密模塊,對(duì)步驟b)中的數(shù)據(jù),進(jìn)行加密處理。其加密模塊功能示例如下:第一步,在加密模塊中讀取加密密鑰。第二部,在加密模塊中調(diào)用DES算法,利用加密密鑰,對(duì)步驟b)中整合后的數(shù)據(jù),進(jìn)行加密。d)將c)步驟后的密文,存入到數(shù)據(jù)庫中。e)方法結(jié)束實(shí)施例2:解密的過程,是上述加密過程的逆過程,優(yōu)選地,解密過程為:先讀取加密后的密文,先從密文中予以解密,從而獲得解密的整合后字段。再依據(jù)整合規(guī)則,從而讀取到每一個(gè)字段對(duì)應(yīng)的數(shù)據(jù)信息。而且從密文中,不能找出字段、數(shù)據(jù)這些信息。因此在本方法中,能夠防止存儲(chǔ)的數(shù)據(jù)信息被篡改。在一個(gè)具體的實(shí)施方式中,本發(fā)明的數(shù)據(jù)讀取流程如下:a)方法開始之后,讀取出存儲(chǔ)的密文b)使用解密模塊,對(duì)步驟a)中的數(shù)據(jù)進(jìn)行解密。從而獲取到JSON格式的數(shù)據(jù)。其解密模塊功能示例如下:第一步,在解密模塊中讀取解密密鑰。第二部,在解密模塊中調(diào)用DES算法,利用解密密鑰,對(duì)步驟a)中讀取到的密文,進(jìn)行解密,獲取到明文。如下格式的數(shù)據(jù)對(duì)(以三個(gè)字段/數(shù)據(jù)對(duì)為例)。{字段1:數(shù)據(jù)1,字段2:數(shù)據(jù)2,字段3:數(shù)據(jù)3}c)使用分解模塊,對(duì)步驟b)中的數(shù)據(jù),按照J(rèn)SON的規(guī)則,分解成對(duì)應(yīng)的字段名/數(shù)據(jù)對(duì)。其具體的分解規(guī)則舉例如下:第一步,去除包含所有字段/數(shù)據(jù)對(duì)的大括號(hào),得到字段1:數(shù)據(jù)1,字段2:數(shù)據(jù)2,字段3:數(shù)據(jù)3第二步,以逗號(hào)為間隔獲取到對(duì)應(yīng)的字段/數(shù)據(jù)對(duì)字段1:數(shù)據(jù)1字段2:數(shù)據(jù)2字段3:數(shù)據(jù)3第三步,以冒號(hào)為間隔獲取到對(duì)應(yīng)的字段和數(shù)據(jù)字段1,字段2,字段3分別對(duì)應(yīng)的數(shù)據(jù)為:數(shù)據(jù)1,數(shù)據(jù)2,數(shù)據(jù)3。字段1字段2字段3數(shù)據(jù)1數(shù)據(jù)2數(shù)據(jù)3d)將對(duì)應(yīng)的字段名/數(shù)據(jù)對(duì)予以返回e)方法結(jié)束實(shí)施例3:另一方面,本發(fā)明還提供了一種整合加密存儲(chǔ)防篡改的系統(tǒng),應(yīng)用于數(shù)據(jù)庫數(shù)據(jù)的加密中,該系統(tǒng)包括:整合模塊、加密模塊、解密模塊、分解模塊;所述整合模塊,用于將原始數(shù)據(jù)的多個(gè)字段,整合為一個(gè)字段,獲得待加密數(shù)據(jù);所述加密模塊,用于對(duì)所述的待加密數(shù)據(jù)進(jìn)行加密;所述解密模塊,用于讀取加密數(shù)據(jù)時(shí),對(duì)存儲(chǔ)在數(shù)據(jù)庫中的加密后的數(shù)據(jù)進(jìn)行解密,獲取所述待加密數(shù)據(jù);所述分解模塊,用于對(duì)解密后獲取的所述待加密數(shù)據(jù),分解為多個(gè)字段,獲得原始數(shù)據(jù)。在兩個(gè)流程中,涉及四個(gè)功能模塊----整合模塊,加密模塊,解密模塊,分解模塊。其對(duì)應(yīng)的功能如下:1)整合模塊。該模塊對(duì)需要存儲(chǔ)的多個(gè)字段名/數(shù)據(jù)對(duì)進(jìn)行整合處理。在處理中,將多個(gè)字段名/數(shù)據(jù)按照J(rèn)SON(JavaScriptObjectNotation)的語法規(guī)則,予以整合。多個(gè)字段名/數(shù)據(jù)以冒號(hào)隔開,以逗號(hào)隔開其他字段。最后將所有內(nèi)容放在大括號(hào){}內(nèi)。2)加密模塊。該模塊實(shí)現(xiàn)對(duì)數(shù)據(jù)的加密。該加密模塊,可以使用通用的加密方法,比如DES(DataEncryptionStandard)數(shù)據(jù)標(biāo)準(zhǔn)加密方法。3)解密模塊。該模塊實(shí)現(xiàn)對(duì)密文的解密。該模塊需要與加密模塊對(duì)應(yīng),為加密模塊的逆運(yùn)算。4)分解模塊。該模塊實(shí)現(xiàn)對(duì)JSON數(shù)據(jù)的分解。該模塊與整合模塊對(duì)應(yīng),為整合模塊的逆運(yùn)算。實(shí)現(xiàn)JSON規(guī)則數(shù)據(jù)的分解,并分解為多個(gè)字段名/數(shù)據(jù),完成對(duì)數(shù)據(jù)的分解。在一個(gè)更為具體的實(shí)施例中,該系統(tǒng)還包括存儲(chǔ)模塊,用于存儲(chǔ)加密密鑰、預(yù)設(shè)的整合規(guī)則、加密算法。由上述的具體實(shí)施例可見,本發(fā)明技術(shù)方案的優(yōu)點(diǎn)在于:1)在一次加密存儲(chǔ)流程中,僅需一次加密計(jì)算,可以實(shí)現(xiàn)N個(gè)字段名/數(shù)據(jù)對(duì)的加密。在傳統(tǒng)的加密方式中,需要對(duì)每一個(gè)數(shù)據(jù)進(jìn)行加密計(jì)算。實(shí)現(xiàn)N個(gè)字段名/數(shù)據(jù)對(duì)的加密存儲(chǔ),需要N次加密計(jì)算。在本發(fā)明中,僅需一次加密計(jì)算,減少了N-1加密計(jì)算,提升了運(yùn)算速度,提高了運(yùn)算效率。2)在一次加密存儲(chǔ)流程中,僅需一個(gè)存儲(chǔ)空間,可以實(shí)現(xiàn)N個(gè)字段名/數(shù)據(jù)對(duì)的加密存儲(chǔ)。在傳統(tǒng)的加密存儲(chǔ)方式中,每一個(gè)數(shù)據(jù)進(jìn)需要一個(gè)存儲(chǔ)空間。實(shí)現(xiàn)N個(gè)字段名/數(shù)據(jù)對(duì)的加密存儲(chǔ),從而需要N個(gè)存儲(chǔ)空間。在本發(fā)明中,僅需一個(gè)存儲(chǔ)空間,減少了N-1個(gè)存儲(chǔ)空間。提高數(shù)據(jù)存儲(chǔ)的密度。3)在數(shù)據(jù)庫中不能看到明文,僅能看到加密后的密文。在沒有解密方法下,僅有密文,無從得到明文。因此降低了數(shù)據(jù)泄露的風(fēng)險(xiǎn)。4)在讀取數(shù)據(jù)中,先從密文中予以解密,從而獲得解密的整合后字段。再依據(jù)整合格式,從而讀取到每一個(gè)字段的信息。由于一個(gè)密文,對(duì)應(yīng)多個(gè)字段/數(shù)據(jù)對(duì),所以密文中,不能找出其中某一個(gè)字段名/數(shù)據(jù)對(duì)。從而能夠有效防止數(shù)據(jù)被篡改。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-OnlyMemory,ROM)或隨機(jī)存儲(chǔ)記憶體(RandomAccessMemory,RAM)等。以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本
技術(shù)領(lǐng)域:
的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求的保護(hù)范圍為準(zhǔn)。當(dāng)前第1頁1 2 3