本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別是涉及一種文件加密方法、文件解密方法及裝置。
背景技術(shù):
在互聯(lián)網(wǎng)時(shí)代,信息安全是非常重要的,偏重于個(gè)人信息的保護(hù)方式也越來越重要,從而孕育出很多加密的算法,用戶可利用現(xiàn)有的加密算法然后加上自己的一些想法來處理一些需要加密的信息,從而從一定程度上來保障用戶信息或者其他重要的信息。
現(xiàn)有技術(shù)中,大多采用一次性加密文件的方式,相應(yīng)地,用戶也只需進(jìn)行一次解密即可得到想要的數(shù)據(jù),例如,采用SHA(Secure Hash Algorithm)加密算法、Base64加密算法等把文件內(nèi)容加密之后打包成二進(jìn)制內(nèi)容,在解密時(shí),則將二進(jìn)制內(nèi)容轉(zhuǎn)化為正常內(nèi)容然后進(jìn)行解密,從而得到想要的數(shù)據(jù)。但是,由于上述方式只對數(shù)據(jù)進(jìn)行一次加密,并且將有用數(shù)據(jù)作為一個(gè)整體進(jìn)行加密,黑客或者惡意攻擊者很可能通過對截獲的密文進(jìn)行破解,因此數(shù)據(jù)安全性較低,造成數(shù)據(jù)安全隱患。
技術(shù)實(shí)現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的文件加密方法、文件解密方法及裝置。
依據(jù)本發(fā)明的一個(gè)方面,提供了一種文件加密方法,包括:
判斷待加密的文件的長度是否超過預(yù)定總長度;
若是,則以第一預(yù)設(shè)長度作為預(yù)定分段長度;
按照所述預(yù)定分段長度對所述文件進(jìn)行分段處理,獲得至少兩個(gè)子文件;
利用預(yù)設(shè)加密算法分別對各子文件進(jìn)行加密,獲得至少兩個(gè)加密子文件;
根據(jù)所述至少兩個(gè)加密子文件生成加密文件。
可選地,所述方法還包括:
若所述文件的長度未超過所述預(yù)定總長度,則判斷所述文件的長度是否超過第二預(yù)設(shè)長度;
若是,則以第二預(yù)設(shè)長度作為所述預(yù)定分段長度。
可選地,所述第一預(yù)設(shè)長度和所述第二預(yù)設(shè)長度皆不超過所述預(yù)定總長度,且所述第二預(yù)設(shè)長度小于所述第一預(yù)設(shè)長度。
可選地,所述加密子文件中依次包括其對應(yīng)的字節(jié)長度、校驗(yàn)位和加密內(nèi)容。
可選地,根據(jù)所述至少兩個(gè)加密子文件生成加密文件,包括:
依次組合以下內(nèi)容:占用第一字節(jié)長度的頭文件、占用第二字節(jié)長度的所述預(yù)定分段長度、依次排列的各加密子文件;其中,所述各加密子文件之間的排列次序與各子文件在所述文件中的位置關(guān)系一致;
打包所述組合后的內(nèi)容,獲得所述加密文件。
可選地,所述預(yù)設(shè)加密算法為RSA非對稱加密算法。
可選地,利用預(yù)設(shè)加密算法分別對各子文件進(jìn)行加密,包括:
利用密鑰對中的公鑰分別對所述各子文件進(jìn)行加密,所述密鑰對是預(yù)先利用所述RSA非對稱加密算法生成的。
依據(jù)本發(fā)明的另一個(gè)方面,提供了一種文件解密方法,包括:
獲取加密文件,并確定對所述加密文件加密的預(yù)設(shè)加密算法,所述加密文件中包括至少兩個(gè)加密子文件;
從所述加密文件中獲取各加密子文件;
利用所述預(yù)設(shè)加密算法對應(yīng)的解密算法,分別對所述各加密子文件進(jìn)行解密,獲得至少兩個(gè)子文件;
根據(jù)所述至少兩個(gè)子文件生成解密后的文件。
可選地,所述加密文件中依次包括:占用第一字節(jié)長度的頭文件、占用第二字節(jié)長度的預(yù)定分段長度、依次排列的至少兩個(gè)加密子文件,所述各加密子文件之間的排列次序與各子文件在所述文件中的位置關(guān)系一致,所述加密子文件中依次包括其對應(yīng)的字節(jié)長度、校驗(yàn)位和加密內(nèi)容。
可選地,所述從所述加密文件中獲取各加密子文件,包括:
根據(jù)所述第一字節(jié)長度、所述第二字節(jié)長度以及各加密子文件之間的排列次序,確定所述加密文件中各加密子文件的位置;
根據(jù)所述各加密子文件的位置,從所述加密文件中獲取所述各加密子文件。
可選地,根據(jù)所述至少兩個(gè)子文件生成解密后的文件,包括:
按照各子文件在所述文件中的位置關(guān)系組合所述各子文件,獲得所述解密后的文件。
可選地,所述預(yù)設(shè)加密算法為RSA非對稱加密算法。
可選地,分別對所述各加密子文件進(jìn)行解密,包括:
利用密鑰對中的私鑰分別對所述各加密子文件進(jìn)行解密,所述密鑰對是預(yù)先利用所述RSA非對稱加密算法生成的。
依據(jù)本發(fā)明的另一個(gè)方面,提供了一種文件加密裝置,包括:
第一判斷模塊,適于判斷待加密的文件的長度是否超過預(yù)定總長度;
第一確定模塊,適于若所述第一判斷模塊判定所述待加密的文件的長度超過所述預(yù)定總長度,則以第一預(yù)設(shè)長度作為預(yù)定分段長度;
分段模塊,適于按照所述預(yù)定分段長度對所述文件進(jìn)行分段處理,獲得至少兩個(gè)子文件;
加密模塊,適于利用預(yù)設(shè)加密算法分別對各子文件進(jìn)行加密,獲得至少兩個(gè)加密子文件;
第一生成模塊,適于根據(jù)所述至少兩個(gè)加密子文件生成加密文件。
可選地,所述裝置還包括:
第二判斷模塊,適于若所述第一判斷模塊判定所述文件的長度未超過所述預(yù)定總長度,則判斷所述文件的長度是否超過第二預(yù)設(shè)長度;
第二確定模塊,適于若所述第二判斷模塊判定所述文件的長度超過所述第二預(yù)設(shè)長度,則以第二預(yù)設(shè)長度作為所述預(yù)定分段長度。
可選地,所述第一預(yù)設(shè)長度和所述第二預(yù)設(shè)長度皆不超過所述預(yù)定總長度,且所述第二預(yù)設(shè)長度小于所述第一預(yù)設(shè)長度。
可選地,所述加密子文件中依次包括其對應(yīng)的字節(jié)長度、校驗(yàn)位和加密內(nèi)容。
可選地,所述第一生成模塊,適于依次組合以下內(nèi)容:占用第一字節(jié)長度的頭文件、占用第二字節(jié)長度的所述預(yù)定分段長度、依次排列的各加密子文件;其中,所述各加密子文件之間的排列次序與各子文件在所述文件中的位置關(guān)系一致;打包所述組合后的內(nèi)容,獲得所述加密文件。
可選地,所述預(yù)設(shè)加密算法為RSA非對稱加密算法。
可選地,所述加密模塊,適于利用密鑰對中的公鑰分別對所述各子文件進(jìn)行加密,所述密鑰對是預(yù)先利用所述RSA非對稱加密算法生成的。
依據(jù)本發(fā)明的另一個(gè)方面,提供了一種文件解密裝置,包括:
第一獲取模塊,適于獲取加密文件,并確定對所述加密文件加密的預(yù)設(shè)加密算法,所述加密文件中包括至少兩個(gè)加密子文件;
第二獲取模塊,適于從所述加密文件中獲取各加密子文件;
解密模塊,適于利用所述預(yù)設(shè)加密算法對應(yīng)的解密算法,分別對所述各加密子文件進(jìn)行解密,獲得至少兩個(gè)子文件;
第二生成模塊,適于根據(jù)所述至少兩個(gè)子文件生成解密后的文件。
可選地,所述加密文件中依次包括:占用第一字節(jié)長度的頭文件、占用第二字節(jié)長度的預(yù)定分段長度、依次排列的至少兩個(gè)加密子文件,所述各加密子文件之間的排列次序與各子文件在所述文件中的位置關(guān)系一致,所述加密子文件中依次包括其對應(yīng)的字節(jié)長度、校驗(yàn)位和加密內(nèi)容。
可選地,所述第二獲取模塊,適于根據(jù)所述第一字節(jié)長度、所述第二字節(jié)長度以及各加密子文件之間的排列次序,確定所述加密文件中各加密子文件的位置;根據(jù)所述各加密子文件的位置,從所述加密文件中獲取各加密子文件。
可選地,所述第二生成模塊,適于按照各子文件在所述文件中的位置關(guān)系組合所述各子文件,獲得所述解密后的文件。
可選地,所述預(yù)設(shè)加密算法為RSA非對稱加密算法。
可選地,所述解密模塊,還適于利用密鑰對中的私鑰分別對所述各子文件進(jìn)行解密,所述密鑰對是預(yù)先利用所述RSA非對稱加密算法生成的。
采用本發(fā)明實(shí)施例提供的技術(shù)方案,能夠在待加密的文件的長度超過預(yù)定總長度時(shí),以第一預(yù)設(shè)長度作為預(yù)定分段長度對文件進(jìn)行分段處理,并分別對分段后的各子文件進(jìn)行加密,使得待加密的文件能夠被加密為多個(gè)加密子文件,相較于現(xiàn)有的不依賴于文件長度、將文件作為一個(gè)整體進(jìn)行一次性加密的方案而言,該技術(shù)方案中的加密算法能夠有效防止黑客或惡意攻擊者對加密文件的破解,即使破解了其中某個(gè)加密子文件,也無法獲取到文件中的數(shù)據(jù)明文,因此大大提高了文件的保密性,確保數(shù)據(jù)無安全隱患。并且,該技術(shù)方案能夠根據(jù)多個(gè)加密子文件生成加密文件,確保了數(shù)據(jù)的完整性。
進(jìn)一步地,本發(fā)明實(shí)施例中,在生成加密文件時(shí),能夠依次組合占用第一字節(jié)長度的頭文件、占用第二字節(jié)長度的預(yù)定分段長度以及依次排列的各加密子文件,使得加密文件中的各加密子文件都對應(yīng)有明確的位置信息,從而使用戶讀取加密文件中的各加密子文件時(shí),能夠根據(jù)上述依次排列的數(shù)據(jù)準(zhǔn)確讀取出各加密子文件。
進(jìn)一步地,本發(fā)明實(shí)施例中,對文件解密時(shí),能夠首先從加密文件中獲取各加密子文件,并分別對各加密子文件進(jìn)行解密,然后根據(jù)解密后的各子文件生成文件,即,用戶需對每個(gè)加密子文件都分別進(jìn)行解密才能獲得文件中的數(shù)據(jù)明文,因此,該技術(shù)方案能夠有效防止黑客或惡意攻擊者對加密文件的破解,即使破解了其中某個(gè)加密子文件,也無法獲取到文件中的數(shù)據(jù)明文,因此大大提高了文件的保密性,確保數(shù)據(jù)無安全隱患。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。
根據(jù)下文結(jié)合附圖對本發(fā)明具體實(shí)施例的詳細(xì)描述,本領(lǐng)域技術(shù)人員將會(huì)更加明了本發(fā)明的上述以及其他目的、優(yōu)點(diǎn)和特征。
附圖說明
通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1是根據(jù)本發(fā)明一個(gè)實(shí)施例的一種文件加密方法的示意性流程圖;
圖2是根據(jù)本發(fā)明另一個(gè)實(shí)施例的一種文件加密方法的示意性流程圖;
圖3是根據(jù)本發(fā)明一個(gè)實(shí)施例的一種文件解密方法的示意性流程圖;
圖4是根據(jù)本發(fā)明一個(gè)實(shí)施例的一種文件加密裝置的示意性框圖;
圖5是根據(jù)本發(fā)明另一個(gè)實(shí)施例的一種文件加密裝置的示意性框圖;
圖6是根據(jù)本發(fā)明一個(gè)實(shí)施例的一種文件解密裝置的示意性框圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
圖1是根據(jù)本發(fā)明一個(gè)實(shí)施例的一種文件加密方法的示意性流程圖。如圖1所示,該方法一般性地可包括步驟S101-S105:
步驟S101,判斷待加密的文件的長度是否超過預(yù)定總長度;若是,則執(zhí)行步驟S102。
步驟S102,以第一預(yù)設(shè)長度作為預(yù)定分段長度。
步驟S103,按照預(yù)定分段長度對文件進(jìn)行分段處理,獲得至少兩個(gè)子文件。
步驟S104,利用預(yù)設(shè)加密算法分別對各子文件進(jìn)行加密,獲得至少兩個(gè)加密子文件。
其中,預(yù)設(shè)加密算法可以是RSA非對稱加密算法、SHA加密算法、Base64加密算法等任一種加密算法。
步驟S105,根據(jù)至少兩個(gè)加密子文件生成加密文件。
采用本發(fā)明實(shí)施例提供的技術(shù)方案,能夠在待加密的文件的長度超過預(yù)定總長度時(shí),以第一預(yù)設(shè)長度作為預(yù)定分段長度對文件進(jìn)行分段處理,并分別對分段后的各子文件進(jìn)行加密,使得待加密的文件能夠被加密為多個(gè)加密子文件,相較于現(xiàn)有的不依賴于文件長度、將文件作為一個(gè)整體進(jìn)行一次性加密的方案而言,該技術(shù)方案中的加密算法能夠有效防止黑客或惡意攻擊者對加密文件的破解,即使破解了其中某個(gè)加密子文件,也無法獲取到文件中的數(shù)據(jù)明文,因此大大提高了文件的保密性,確保數(shù)據(jù)無安全隱患。并且,該技術(shù)方案能夠根據(jù)多個(gè)加密子文件生成加密文件,確保了數(shù)據(jù)的完整性。
在另一實(shí)施例中,若執(zhí)行步驟S101時(shí)判定待加密的文件的長度未超過預(yù)定總長度,可以直接對文件進(jìn)行整體加密,不再分段。
在另一個(gè)實(shí)施例中,執(zhí)行步驟S101時(shí),若判定待加密的文件的長度未超過預(yù)定總長度,則可以繼續(xù)執(zhí)行如圖2所示的步驟S106-S108:
步驟S106,判斷文件的長度是否超過第二預(yù)設(shè)長度;若是,則執(zhí)行步驟S107;若否,則執(zhí)行步驟S108。
步驟S107,以第二預(yù)設(shè)長度作為預(yù)定分段長度。然后返回步驟S103,按照預(yù)定分段長度對文件進(jìn)行分段處理,進(jìn)而對分段后的各子文件進(jìn)行加密。
步驟S108,對整個(gè)文件進(jìn)行加密。
該實(shí)施例中,第一預(yù)設(shè)長度和第二預(yù)設(shè)長度皆不超過預(yù)定總長度,且第二預(yù)設(shè)長度小于第一預(yù)設(shè)長度。當(dāng)然,若判定文件的長度未超過第二預(yù)設(shè)長度時(shí),還可繼續(xù)判斷文件的長度是否超過第三預(yù)設(shè)長度(第三預(yù)設(shè)長度小于第二預(yù)設(shè)長度),并在文件的長度超過第三預(yù)設(shè)長度時(shí)以第三預(yù)設(shè)長度作為預(yù)定分段長度,以此類推。判斷的次數(shù)可由用戶根據(jù)文件的長度來定義,當(dāng)文件的長度足夠小(例如50字節(jié))時(shí),則不需要再將文件分段加密。
舉例而言,預(yù)定總長度為120字節(jié),第一預(yù)設(shè)長度為100字節(jié),第二預(yù)設(shè)長度為60字節(jié),第三預(yù)設(shè)長度為40字節(jié)。第一種情況:假設(shè)待加密的文件的長度為180字節(jié),由于文件的長度超過預(yù)定總長度120字節(jié),則以第一預(yù)設(shè)長度100字節(jié)為預(yù)定分段長度對文件進(jìn)行分段,得到長度分別為100字節(jié)和80字節(jié)的兩個(gè)子文件,然后分別對這兩個(gè)子文件進(jìn)行加密,獲得兩個(gè)加密子文件,最后根據(jù)兩個(gè)加密子文件生成加密文件。第二種情況:假設(shè)待加密的文件的長度為80字節(jié),此時(shí)文件的長度未超過預(yù)定總長度120字節(jié),因此可判斷文件的長度是否超過第二預(yù)設(shè)長度60字節(jié),由于文件的長度(80字節(jié))已超過第二預(yù)設(shè)長度60字節(jié),因此可將第二預(yù)設(shè)長度60字節(jié)作為預(yù)定分段長度對文件進(jìn)行分段,得到長度分別為60字節(jié)和20字節(jié)的兩個(gè)子文件,然后分別對這兩個(gè)子文件進(jìn)行加密,獲得兩個(gè)加密子文件,最后根據(jù)兩個(gè)加密子文件生成加密文件。第三種情況:假設(shè)待加密的文件的長度為30字節(jié),由于文件的長度(30字節(jié))未超過第三預(yù)設(shè)長度,則不對文件進(jìn)行分段處理,此時(shí)可將文件作為一個(gè)整體進(jìn)行加密。
將待加密的文件進(jìn)行分段以獲得多個(gè)子文件之后,需要對各子文件進(jìn)行加密以獲得各加密子文件。本實(shí)施例中以預(yù)設(shè)加密算法為RSA非對稱加密算法為例來說明如何對各子文件進(jìn)行加密。當(dāng)預(yù)設(shè)加密算法為RSA非對稱加密算法時(shí),該加密算法會(huì)預(yù)先生成密鑰對,其中包括相互配對的公鑰和私鑰,然后利用密鑰對中的公鑰分別對各子文件進(jìn)行加密,得到各加密子文件,密鑰對中的私鑰用于對各加密子文件進(jìn)行解密。在具體實(shí)施時(shí),可以僅生成一對密鑰對,然后利用其中的公鑰分別對各子文件進(jìn)行加密,即每個(gè)子文件加密時(shí)所使用的皆是相同的公鑰,這樣,在對各加密子文件進(jìn)行解密時(shí)所使用的私鑰也就相同。為了提高文件的保密性,還可以生成多個(gè)密鑰對,每個(gè)密鑰對對應(yīng)一個(gè)子文件,即利用多個(gè)密鑰對中的公鑰分別對與各自相對應(yīng)的子文件進(jìn)行加密,這樣,在對各加密子文件進(jìn)行解密時(shí)所使用的私鑰也就各不相同,從而提高對各加密子文件的解密難度,確保文件的安全性。
在一個(gè)實(shí)施例中,加密子文件中依次包括其對應(yīng)的字節(jié)長度、校驗(yàn)位和加密內(nèi)容。其中,加密子文件對應(yīng)的字節(jié)長度可在子文件加密之后自動(dòng)生成;校驗(yàn)位的占用字節(jié)長度可預(yù)先設(shè)定,例如2位校驗(yàn)位或8位校驗(yàn)位;加密內(nèi)容則是對子文件中的原始文件內(nèi)容進(jìn)行加密得到的。
在一個(gè)實(shí)施例中,獲得各加密子文件之后,繼續(xù)執(zhí)行步驟S105,即根據(jù)加密子文件生成加密文件,具體的,可按照如下方式生成加密文件:首先,依次組合以下內(nèi)容:占用第一字節(jié)長度的頭文件、占用第二字節(jié)長度的預(yù)定分段長度、依次排列的各加密子文件,其中,各加密子文件之間的排列次序與對應(yīng)的各子文件在文件中的位置關(guān)系一致;其次,打包組合后的內(nèi)容,獲得加密文件。其中,頭文件通常為占用16字節(jié)的二進(jìn)制內(nèi)容,第二字節(jié)長度與預(yù)定分段長度的值有關(guān),通常情況下為4字節(jié),每個(gè)加密子文件中依次包括各自對應(yīng)的字節(jié)長度、校驗(yàn)位和加密內(nèi)容。
舉例而言,某段待加密的文件被分段成三個(gè)子文件,分別對每個(gè)子文件進(jìn)行加密得到三個(gè)加密子文件,則根據(jù)這三個(gè)加密子文件所生成的加密文件為:頭文件+預(yù)定分段長度+第一個(gè)加密子文件的字節(jié)長度+第一個(gè)加密子文件的校驗(yàn)位+第一個(gè)加密子文件的加密內(nèi)容+第二個(gè)加密子文件的字節(jié)長度+第二個(gè)加密子文件的校驗(yàn)位+第二個(gè)加密子文件的加密內(nèi)容+第三個(gè)加密子文件的字節(jié)長度+第三個(gè)加密子文件的校驗(yàn)位+第三個(gè)加密子文件的加密內(nèi)容。
由此可知,該實(shí)施例在生成加密文件時(shí),能夠依次組合占用第一字節(jié)長度的頭文件、占用第二字節(jié)長度的預(yù)定分段長度以及依次排列的各加密子文件,使得加密文件中的各加密子文件都對應(yīng)有明確的位置信息,從而使用戶讀取加密文件中的各加密子文件時(shí),能夠根據(jù)上述依次排列的數(shù)據(jù)準(zhǔn)確讀取出各加密子文件。
圖3是根據(jù)本發(fā)明一個(gè)實(shí)施例的一種文件解密方法的示意性流程圖。如圖3所示,該方法一般性地可包括步驟S301-S304:
步驟S301,獲取加密文件,并確定對加密文件加密的預(yù)設(shè)加密算法,加密文件中包括至少兩個(gè)加密子文件。
其中,預(yù)設(shè)加密算法可以是RSA非對稱加密算法、SHA加密算法、Base64加密算法等任一種加密算法。
步驟S302,從加密文件中獲取各加密子文件。
步驟S303,利用預(yù)設(shè)加密算法對應(yīng)的解密算法,分別對各加密子文件進(jìn)行解密,獲得至少兩個(gè)子文件。
步驟S304,根據(jù)至少兩個(gè)子文件生成解密后的文件。
采用本發(fā)明實(shí)施例中的文件解密方法,在對文件解密時(shí),能夠首先從加密文件中獲取各加密子文件,并分別對各加密子文件進(jìn)行解密,然后根據(jù)解密后的各子文件生成文件,即,用戶需對每個(gè)加密子文件都分別進(jìn)行解密才能獲得文件中的數(shù)據(jù)明文,因此,該技術(shù)方案能夠有效防止黑客或惡意攻擊者對加密文件的破解,即使破解了其中某個(gè)加密子文件,也無法獲取到文件中的數(shù)據(jù)明文,因此大大提高了文件的保密性,確保數(shù)據(jù)無安全隱患。
在一個(gè)實(shí)施例中,加密文件中依次包括:占用第一字節(jié)長度的頭文件、占用第二字節(jié)長度的預(yù)定分段長度、依次排列的至少兩個(gè)加密子文件。其中,各加密子文件之間的排列次序與各子文件在所述文件中的位置關(guān)系一致,加密子文件中依次包括其對應(yīng)的字節(jié)長度、校驗(yàn)位和加密內(nèi)容。第一字節(jié)長度、第二字節(jié)長度、加密子文件對應(yīng)的字節(jié)長度以及校驗(yàn)位是預(yù)先確定的,頭文件通常為占用16字節(jié)的二進(jìn)制內(nèi)容,因此第一字節(jié)長度為16字節(jié),第二字節(jié)長度與預(yù)定分段長度的值有關(guān),通常情況下為4字節(jié),加密內(nèi)容則是對子文件中的原始文件內(nèi)容進(jìn)行加密得到的。
舉例而言,獲取到的加密文件包括:頭文件+預(yù)定分段長度+第一個(gè)加密子文件的字節(jié)長度+第一個(gè)加密子文件的校驗(yàn)位+第一個(gè)加密子文件的加密內(nèi)容+第二個(gè)加密子文件的字節(jié)長度+第二個(gè)加密子文件的校驗(yàn)位+第二個(gè)加密子文件的加密內(nèi)容+第三個(gè)加密子文件的字節(jié)長度+第三個(gè)加密子文件的校驗(yàn)位+第三個(gè)加密子文件的加密內(nèi)容。其中,“第一個(gè)加密子文件的字節(jié)長度+第一個(gè)加密子文件的校驗(yàn)位+第一個(gè)加密子文件的加密內(nèi)容”為第一個(gè)加密子文件,“第二個(gè)加密子文件的字節(jié)長度+第二個(gè)加密子文件的校驗(yàn)位+第二個(gè)加密子文件的加密內(nèi)容”為第二個(gè)加密子文件,“第三個(gè)加密子文件的字節(jié)長度+第三個(gè)加密子文件的校驗(yàn)位+第三個(gè)加密子文件的加密內(nèi)容”為第三個(gè)加密子文件。
在一個(gè)實(shí)施例中,基于上述加密文件的組成,可按如下方式從加密文件中獲取各加密子文件(即步驟S302):首先,根據(jù)第一字節(jié)長度、第二字節(jié)長度以及各加密子文件之間的排列次序,確定加密文件中各加密子文件的位置;其次,根據(jù)各加密子文件的位置,從加密文件中獲取各加密子文件。例如,加密文件中共包括三個(gè)加密子文件,第一字節(jié)長度為16字節(jié),第二字節(jié)長度為4字節(jié),各加密子文件之間的排列次序與對應(yīng)的各子文件在原始文件中的位置關(guān)系一致,那么,在獲取各加密子文件時(shí),可先獲取16字節(jié)的頭文件和4字節(jié)的預(yù)定分段長度,然后從預(yù)定分度長度之后即可讀取到第一個(gè)加密子文件,其中包括第一個(gè)加密子文件對應(yīng)的字節(jié)長度、校驗(yàn)位及加密內(nèi)容,獲取到第一個(gè)加密子文件之后,即可依次獲取第二個(gè)加密子文件和第三個(gè)加密子文件。
在一個(gè)實(shí)施例中,獲得各加密子文件之后,需要對各加密子文件進(jìn)行解密以獲得各子文件(即步驟S303)。本實(shí)施例中以預(yù)設(shè)加密算法為RSA非對稱加密算法為例來說明如何對各子文件進(jìn)行解密。當(dāng)預(yù)設(shè)加密算法為RSA非對稱加密算法時(shí),則利用RSA非對稱解密算法獲取各加密子文件對應(yīng)的私鑰,并利用獲取到的私鑰分別對各加密子文件進(jìn)行解密,其中,私鑰與加密子文件加密時(shí)所使用的公鑰相互配對,且私鑰與其相互配對的公鑰所組成的密鑰對由RSA非對稱加密算法預(yù)先生成。由于加密子文件中依次包括其對應(yīng)的字節(jié)長度、校驗(yàn)位和加密內(nèi)容,因此在利用私鑰對加密子文件進(jìn)行解密時(shí),需首先讀取出字節(jié)長度和校驗(yàn)位,然后在校驗(yàn)位之后獲取到加密內(nèi)容,再利用私鑰對該加密內(nèi)容進(jìn)行解密,解密后得到的數(shù)據(jù)即為該加密子文件對應(yīng)的子文件。本領(lǐng)域的技術(shù)人員應(yīng)可了解,此處的私鑰可以是統(tǒng)一的(相同的),也可以針對不同的子文件有不同的私鑰,本發(fā)明并不以此為限。
在一個(gè)實(shí)施例中,獲取到各子文件之后,繼續(xù)執(zhí)行步驟S304,可按照如下方式獲得解密后的文件:根據(jù)各子文件在文件中的位置關(guān)系組合各子文件,獲得解密后的文件。優(yōu)選地,由于各加密子文件之間的排列次序與對應(yīng)的各子文件在文件中的位置關(guān)系一致,因此獲取到各子文件之后,可采用依次拼接各子文件的方式獲取文件。
舉例而言,加密文件包括:頭文件+預(yù)定分段長度+第一個(gè)加密子文件的字節(jié)長度+第一個(gè)加密子文件的校驗(yàn)位+第一個(gè)加密子文件的加密內(nèi)容+第二個(gè)加密子文件的字節(jié)長度+第二個(gè)加密子文件的校驗(yàn)位+第二個(gè)加密子文件的加密內(nèi)容+第三個(gè)加密子文件的字節(jié)長度+第三個(gè)加密子文件的校驗(yàn)位+第三個(gè)加密子文件的加密內(nèi)容。該加密文件是由RSA非對稱加密算法預(yù)先生成的密鑰對中的公鑰進(jìn)行加密的,且各加密子文件之間的排列次序與對應(yīng)的各子文件在文件中的位置關(guān)系一致,則在獲取文件時(shí),首先讀取加密文件中的頭文件和預(yù)定分段長度,在預(yù)定分段長度之后即可依次讀取到第一個(gè)加密子文件、第二個(gè)加密子文件和第三個(gè)加密子文件;其次,由于各加密子文件中還包括有各自對應(yīng)的字節(jié)長度和校驗(yàn)位,因此需從各加密子文件中依次讀取字節(jié)長度和校驗(yàn)位,在校驗(yàn)位之后獲取到各加密子文件中的加密內(nèi)容;然后,獲取每個(gè)加密子文件對應(yīng)的私鑰,該私鑰與加密時(shí)使用的公鑰相互配對,使用私鑰對每個(gè)加密子文件中的加密內(nèi)容進(jìn)行解密,獲得各加密子文件對應(yīng)的子文件;最后,將各子文件依次拼接生成文件。
由上述實(shí)施例可知,該技術(shù)方案在對加密文件解密時(shí),能夠根據(jù)加密文件中各加密子文件對應(yīng)的位置信息分別獲取各加密子文件,并分別獲取各加密子文件中的加密內(nèi)容,然后利用相應(yīng)的解密算法對加密內(nèi)容進(jìn)行解密,從而獲得解密后的子文件,進(jìn)而根據(jù)各子文件生成文件,不僅提高了文件的保密性,確保數(shù)據(jù)無安全隱患,還能夠確保文件中數(shù)據(jù)的完整性和正確性。
圖4是根據(jù)本發(fā)明一個(gè)實(shí)施例的一種文件加密裝置的示意性框圖。如圖4所示,該文件加密裝置一般性地可包括:
第一判斷模塊410,適于判斷待加密的文件的長度是否超過預(yù)定總長度;
第一確定模塊420,與第一判斷模塊410相耦合,適于若第一判斷模塊判定待加密的文件的長度超過預(yù)定總長度,則以第一預(yù)設(shè)長度作為預(yù)定分段長度;
分段模塊430,與第一確定模塊420相耦合,適于按照預(yù)定分段長度對文件進(jìn)行分段處理,獲得至少兩個(gè)子文件;
加密模塊440,與分段模塊430相耦合,適于利用預(yù)設(shè)加密算法分別對各子文件進(jìn)行加密,獲得至少兩個(gè)加密子文件;
第一生成模塊450,與加密模塊440相耦合,適于根據(jù)至少兩個(gè)加密子文件生成加密文件。
在一個(gè)實(shí)施例中,如圖5所示,上述裝置還包括:
第二判斷模塊460,與第一判斷模塊410相耦合,適于若第一判斷模塊判定文件的長度未超過預(yù)定總長度,則判斷文件的長度是否超過第二預(yù)設(shè)長度;
第二確定模塊470,與第二判斷模塊460和分段模塊430相耦合,適于若第二判斷模塊判定文件的長度超過第二預(yù)設(shè)長度,則以第二預(yù)設(shè)長度作為預(yù)定分段長度。
在一個(gè)實(shí)施例中,第一預(yù)設(shè)長度和第二預(yù)設(shè)長度皆不超過預(yù)定總長度,且第二預(yù)設(shè)長度小于第一預(yù)設(shè)長度。
在一個(gè)實(shí)施例中,加密子文件中依次包括其對應(yīng)的字節(jié)長度、校驗(yàn)位和加密內(nèi)容。
在一個(gè)實(shí)施例中,第一生成模塊450還適于依次組合以下內(nèi)容:占用第一字節(jié)長度的頭文件、占用第二字節(jié)長度的預(yù)定分段長度、依次排列的各加密子文件;其中,各加密子文件之間的排列次序與各子文件在文件中的位置關(guān)系一致;打包組合后的內(nèi)容,獲得加密文件。
在一個(gè)實(shí)施例中,預(yù)設(shè)加密算法為RSA非對稱加密算法。
在一個(gè)實(shí)施例中,加密模塊440還適于利用密鑰對中的公鑰分別對各子文件進(jìn)行加密,密鑰對是預(yù)先利用RSA非對稱加密算法生成的。
采用本發(fā)明實(shí)施例提供的裝置,能夠在待加密的文件的長度超過預(yù)定總長度時(shí),以第一預(yù)設(shè)長度作為預(yù)定分段長度對文件進(jìn)行分段處理,并分別對分段后的各子文件進(jìn)行加密,使得待加密的文件能夠被加密為多個(gè)加密子文件,相較于現(xiàn)有的不依賴于文件長度、將文件作為一個(gè)整體進(jìn)行一次性加密的方案而言,該技術(shù)方案中的加密算法能夠有效防止黑客或惡意攻擊者對加密文件的破解,即使破解了其中某個(gè)加密子文件,也無法獲取到文件中的數(shù)據(jù)明文,因此大大提高了文件的保密性,確保數(shù)據(jù)無安全隱患。并且,該技術(shù)方案能夠根據(jù)多個(gè)加密子文件生成加密文件,確保了數(shù)據(jù)的完整性。
圖6是根據(jù)本發(fā)明一個(gè)實(shí)施例的一種文件解密裝置的示意性框圖。如圖6所示,該文件解密裝置一般性地可包括:
第一獲取模塊610,適于獲取加密文件,并確定對加密文件加密的預(yù)設(shè)加密算法,加密文件中包括至少兩個(gè)加密子文件;
第二獲取模塊620,與第一獲取模塊610相耦合,適于從加密文件中獲取各加密子文件;
解密模塊630,與第二獲取模塊620相耦合,適于利用預(yù)設(shè)加密算法對應(yīng)的解密算法,分別對各加密子文件進(jìn)行解密,獲得至少兩個(gè)子文件;
第二生成模塊640,與解密模塊630相耦合,適于根據(jù)至少兩個(gè)子文件生成解密后的文件。
在一個(gè)實(shí)施例中,加密文件中依次包括:占用第一字節(jié)長度的頭文件、占用第二字節(jié)長度的預(yù)定分段長度、依次排列的至少兩個(gè)加密子文件,各加密子文件之間的排列次序與各子文件在文件中的位置關(guān)系一致,加密子文件中依次包括其對應(yīng)的字節(jié)長度、校驗(yàn)位和加密內(nèi)容。
在一個(gè)實(shí)施例中,第二獲取模塊620還適于根據(jù)第一字節(jié)長度、第二字節(jié)長度以及各加密子文件之間的排列次序,確定加密文件中各加密子文件的位置;根據(jù)各加密子文件的位置,從加密文件中獲取各加密子文件。
在一個(gè)實(shí)施例中,第二生成模塊640還適于按照各子文件在文件中的位置關(guān)系組合各子文件,獲得解密后的文件。
在一個(gè)實(shí)施例中,預(yù)設(shè)加密算法為RSA非對稱加密算法。
在一個(gè)實(shí)施例中,解密模塊630還適于利用密鑰對中的私鑰分別對各子文件進(jìn)行解密,密鑰對是預(yù)先利用RSA非對稱加密算法生成的。
采用本發(fā)明實(shí)施例提供的裝置,在對文件解密時(shí),能夠首先從加密文件中獲取各加密子文件,并分別對各加密子文件進(jìn)行解密,然后根據(jù)解密后的各子文件生成文件,即,用戶需對每個(gè)加密子文件都分別進(jìn)行解密才能獲得文件中的數(shù)據(jù)明文,因此,該技術(shù)方案能夠有效防止黑客或惡意攻擊者對加密文件的破解,即使破解了其中某個(gè)加密子文件,也無法獲取到文件中的數(shù)據(jù)明文,因此大大提高了文件的保密性,確保數(shù)據(jù)無安全隱患。
關(guān)于上述實(shí)施例中的裝置,其中各個(gè)模塊執(zhí)行操作的具體方式已經(jīng)在有關(guān)該方法的實(shí)施例中進(jìn)行了詳細(xì)描述,此處將不做詳細(xì)闡述說明。
在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們設(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的文件加密裝置和文件解密裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實(shí)施例對本發(fā)明進(jìn)行說明而不是對本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
至此,本領(lǐng)域技術(shù)人員應(yīng)認(rèn)識(shí)到,雖然本文已詳盡示出和描述了本發(fā)明的多個(gè)示例性實(shí)施例,但是,在不脫離本發(fā)明精神和范圍的情況下,仍可根據(jù)本發(fā)明公開的內(nèi)容直接確定或推導(dǎo)出符合本發(fā)明原理的許多其他變型或修改。因此,本發(fā)明的范圍應(yīng)被理解和認(rèn)定為覆蓋了所有這些其他變型或修改。
本發(fā)明實(shí)施例公開了A1.一種文件加密方法,包括:
判斷待加密的文件的長度是否超過預(yù)定總長度;
若是,則以第一預(yù)設(shè)長度作為預(yù)定分段長度;
按照所述預(yù)定分段長度對所述文件進(jìn)行分段處理,獲得至少兩個(gè)子文件;
利用預(yù)設(shè)加密算法分別對各子文件進(jìn)行加密,獲得至少兩個(gè)加密子文件;
根據(jù)所述至少兩個(gè)加密子文件生成加密文件。
A2.根據(jù)A1所述的方法,還包括:
若所述文件的長度未超過所述預(yù)定總長度,則判斷所述文件的長度是否超過第二預(yù)設(shè)長度;
若是,則以第二預(yù)設(shè)長度作為所述預(yù)定分段長度。
A3.根據(jù)A1或A2所述的方法,其中,所述第一預(yù)設(shè)長度和所述第二預(yù)設(shè)長度皆不超過所述預(yù)定總長度,且所述第二預(yù)設(shè)長度小于所述第一預(yù)設(shè)長度。
A4.根據(jù)A1-A3中任一項(xiàng)所述的方法,其中,所述加密子文件中依次包括其對應(yīng)的字節(jié)長度、校驗(yàn)位和加密內(nèi)容。
A5.根據(jù)A1-A4中任一項(xiàng)所述的方法,其中,根據(jù)所述至少兩個(gè)加密子文件生成加密文件,包括:
依次組合以下內(nèi)容:占用第一字節(jié)長度的頭文件、占用第二字節(jié)長度的所述預(yù)定分段長度、依次排列的各加密子文件;其中,所述各加密子文件之間的排列次序與各子文件在所述文件中的位置關(guān)系一致;
打包所述組合后的內(nèi)容,獲得所述加密文件。
A6.根據(jù)A1-A5中任一項(xiàng)所述的方法,其中,所述預(yù)設(shè)加密算法為RSA非對稱加密算法。
A7.根據(jù)A6所述的方法,其中,利用預(yù)設(shè)加密算法分別對各子文件進(jìn)行加密,包括:
利用密鑰對中的公鑰分別對所述各子文件進(jìn)行加密,所述密鑰對是預(yù)先利用所述RSA非對稱加密算法生成的。
本發(fā)明實(shí)施例還公開了B8.一種文件解密方法,包括:
獲取加密文件,并確定對所述加密文件加密的預(yù)設(shè)加密算法,所述加密文件中包括至少兩個(gè)加密子文件;
從所述加密文件中獲取各加密子文件;
利用所述預(yù)設(shè)加密算法對應(yīng)的解密算法,分別對所述各加密子文件進(jìn)行解密,獲得至少兩個(gè)子文件;
根據(jù)所述至少兩個(gè)子文件生成解密后的文件。
B9.根據(jù)B8所述的方法,其中,所述加密文件中依次包括:占用第一字節(jié)長度的頭文件、占用第二字節(jié)長度的預(yù)定分段長度、依次排列的至少兩個(gè)加密子文件,所述各加密子文件之間的排列次序與各子文件在所述文件中的位置關(guān)系一致,所述加密子文件中依次包括其對應(yīng)的字節(jié)長度、校驗(yàn)位和加密內(nèi)容。
B10.根據(jù)B9所述的方法,其中,所述從所述加密文件中獲取各加密子文件,包括:
根據(jù)所述第一字節(jié)長度、所述第二字節(jié)長度以及各加密子文件之間的排列次序,確定所述加密文件中各加密子文件的位置;
根據(jù)所述各加密子文件的位置,從所述加密文件中獲取所述各加密子文件。
B11.根據(jù)B8-B10中任一項(xiàng)所述的方法,其中,根據(jù)所述至少兩個(gè)子文件生成解密后的文件,包括:
按照各子文件在所述文件中的位置關(guān)系組合所述各子文件,獲得所述解密后的文件。
B12.根據(jù)B8-B11中任一項(xiàng)所述的方法,其中,所述預(yù)設(shè)加密算法為RSA非對稱加密算法。
B13.根據(jù)B12所述的方法,其中,分別對所述各加密子文件進(jìn)行解密,包括:
利用密鑰對中的私鑰分別對所述各加密子文件進(jìn)行解密,所述密鑰對是預(yù)先利用所述RSA非對稱加密算法生成的。
本發(fā)明實(shí)施例還公開了C14.一種文件加密裝置,包括:
第一判斷模塊,適于判斷待加密的文件的長度是否超過預(yù)定總長度;
第一確定模塊,適于若所述第一判斷模塊判定所述待加密的文件的長度超過所述預(yù)定總長度,則以第一預(yù)設(shè)長度作為預(yù)定分段長度;
分段模塊,適于按照所述預(yù)定分段長度對所述文件進(jìn)行分段處理,獲得至少兩個(gè)子文件;
加密模塊,適于利用預(yù)設(shè)加密算法分別對各子文件進(jìn)行加密,獲得至少兩個(gè)加密子文件;
第一生成模塊,適于根據(jù)所述至少兩個(gè)加密子文件生成加密文件。
C15.根據(jù)C14所述的裝置,還包括:
第二判斷模塊,適于若所述第一判斷模塊判定所述文件的長度未超過所述預(yù)定總長度,則判斷所述文件的長度是否超過第二預(yù)設(shè)長度;
第二確定模塊,適于若所述第二判斷模塊判定所述文件的長度超過所述第二預(yù)設(shè)長度,則以第二預(yù)設(shè)長度作為所述預(yù)定分段長度。
C16.根據(jù)C14或C15所述的裝置,其中,所述第一預(yù)設(shè)長度和所述第二預(yù)設(shè)長度皆不超過所述預(yù)定總長度,且所述第二預(yù)設(shè)長度小于所述第一預(yù)設(shè)長度。
C17.根據(jù)C14-C16中任一項(xiàng)所述的裝置,其中,所述加密子文件中依次包括其對應(yīng)的字節(jié)長度、校驗(yàn)位和加密內(nèi)容。
C18.根據(jù)C14-C17中任一項(xiàng)所述的裝置,其中,所述第一生成模塊,適于依次組合以下內(nèi)容:占用第一字節(jié)長度的頭文件、占用第二字節(jié)長度的所述預(yù)定分段長度、依次排列的各加密子文件;其中,所述各加密子文件之間的排列次序與各子文件在所述文件中的位置關(guān)系一致;打包所述組合后的內(nèi)容,獲得所述加密文件。
C19.根據(jù)C14-C18中任一項(xiàng)所述的裝置,其中,所述預(yù)設(shè)加密算法為RSA非對稱加密算法。
C20.根據(jù)C19所述的裝置,其中,所述加密模塊,適于利用密鑰對中的公鑰分別對所述各子文件進(jìn)行加密,所述密鑰對是預(yù)先利用所述RSA非對稱加密算法生成的。
本發(fā)明實(shí)施例還公開了D21.一種文件解密裝置,包括:
第一獲取模塊,適于獲取加密文件,并確定對所述加密文件加密的預(yù)設(shè)加密算法,所述加密文件中包括至少兩個(gè)加密子文件;
第二獲取模塊,適于從所述加密文件中獲取各加密子文件;
解密模塊,適于利用所述預(yù)設(shè)加密算法對應(yīng)的解密算法,分別對所述各加密子文件進(jìn)行解密,獲得至少兩個(gè)子文件;
第二生成模塊,適于根據(jù)所述至少兩個(gè)子文件生成解密后的文件。
D22.根據(jù)D21所述的裝置,其中,所述加密文件中依次包括:占用第一字節(jié)長度的頭文件、占用第二字節(jié)長度的預(yù)定分段長度、依次排列的至少兩個(gè)加密子文件,所述各加密子文件之間的排列次序與各子文件在所述文件中的位置關(guān)系一致,所述加密子文件中依次包括其對應(yīng)的字節(jié)長度、校驗(yàn)位和加密內(nèi)容。
D23.根據(jù)D22所述的裝置,其中,所述第二獲取模塊,適于根據(jù)所述第一字節(jié)長度、所述第二字節(jié)長度以及各加密子文件之間的排列次序,確定所述加密文件中各加密子文件的位置;根據(jù)所述各加密子文件的位置,從所述加密文件中獲取各加密子文件。
D24.根據(jù)D21-D23中任一項(xiàng)所述的裝置,其中,所述第二生成模塊,適于按照各子文件在所述文件中的位置關(guān)系組合所述各子文件,獲得所述解密后的文件。
D25.根據(jù)D21-D24中任一項(xiàng)所述的裝置,其中,所述預(yù)設(shè)加密算法為RSA非對稱加密算法。
D26.根據(jù)D25所述的裝置,其中,所述解密模塊,還適于利用密鑰對中的私鑰分別對所述各子文件進(jìn)行解密,所述密鑰對是預(yù)先利用所述RSA非對稱加密算法生成的。