亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種文件的加密、解密方法和裝置與流程

文檔序號(hào):12729092閱讀:331來源:國(guó)知局
一種文件的加密、解密方法和裝置與流程

本發(fā)明涉及數(shù)據(jù)安全技術(shù)領(lǐng)域,尤其涉及一種文件的加密、解密方法和裝置。



背景技術(shù):

數(shù)據(jù)加密又稱密碼學(xué),它是指通過加密算法和加密密鑰將明文轉(zhuǎn)變?yōu)槊芪模饷軇t是通過解密算法和解密密鑰將密文恢復(fù)為明文。數(shù)據(jù)加密目前仍是計(jì)算機(jī)系統(tǒng)對(duì)信息進(jìn)行保護(hù)的一種最可靠的辦法。它利用密碼技術(shù)對(duì)信息進(jìn)行加密,實(shí)現(xiàn)信息隱蔽,從而起到保護(hù)信息的安全的作用。加密類型主要分為兩種:私鑰加密技術(shù)和公鑰加密技術(shù)。

隨著計(jì)算機(jī)互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,對(duì)網(wǎng)絡(luò)數(shù)據(jù)安全的要求越來越高,不僅希望數(shù)據(jù)加密方法能夠具有較強(qiáng)的抗破解能力,還希望其能適用于各種不同的文件類型。而傳統(tǒng)的數(shù)據(jù)加密方法已無法滿足當(dāng)前的需求。



技術(shù)實(shí)現(xiàn)要素:

為了解決背景技術(shù)中提到的問題,本發(fā)明實(shí)施例提供了一種文件的加密、解密方法和裝置。所述技術(shù)方案如下:

一方面,一種文件的加密方法,包括以下步驟:

生成初始密碼;

讀取所述文件中待加密數(shù)據(jù);

獲取所述文件中已加密數(shù)據(jù)長(zhǎng)度,基于所述初始密碼和所述已加密數(shù)據(jù)長(zhǎng)度計(jì)算得到加密密碼;

使用所述加密密碼對(duì)所述待加密數(shù)據(jù)進(jìn)行加密,得到加密數(shù)據(jù)。

進(jìn)一步的,所述加密密碼是通過將所述初始密碼、所述初始密碼長(zhǎng)度和所述已加密數(shù)據(jù)長(zhǎng)度代入預(yù)設(shè)函數(shù)計(jì)算得到。

進(jìn)一步的,通過所述預(yù)設(shè)函數(shù)計(jì)算得到的所述加密密碼是分散化的。

進(jìn)一步的,所述預(yù)設(shè)函數(shù)為散列函數(shù)。

進(jìn)一步的,其特征在于所述加密密碼的長(zhǎng)度與所述初始密碼長(zhǎng)度相同。

進(jìn)一步的,所述生成初始密碼的步驟,包括:利用隨機(jī)函數(shù)生成所述初始密碼。

進(jìn)一步的,所述初始密碼為數(shù)組。

進(jìn)一步的,在使用所述加密密碼對(duì)所述待加密數(shù)據(jù)進(jìn)行加密時(shí),是對(duì)所述待加密數(shù)據(jù)的每個(gè)字節(jié)進(jìn)行加密。

進(jìn)一步的,所述加密數(shù)據(jù)是通過所述加密密碼與所述待加密數(shù)據(jù)進(jìn)行邏輯異或運(yùn)算得到。

進(jìn)一步的,所述文件為流媒體。

進(jìn)一步的,在讀取所述文件中待加密數(shù)據(jù)時(shí),是按順序分段讀取。

進(jìn)一步的,更包含步驟:保存所述初始密碼。

另一方面,本發(fā)明還提供一種加密文件的解密方法,包括:

獲取初始密碼;

讀取所述加密文件中待解密數(shù)據(jù);

獲取所述文件中已解密數(shù)據(jù)長(zhǎng)度,基于所述初始密碼和所述已解密數(shù)據(jù)長(zhǎng)度計(jì)算得到解密密碼;

使用所述解密密碼對(duì)所述待解密數(shù)據(jù)進(jìn)行解密,得到解密數(shù)據(jù)。

進(jìn)一步的,所述解密密碼是通過將所述初始密碼、所述初始密碼長(zhǎng)度和所述已加密數(shù)據(jù)長(zhǎng)度代入預(yù)設(shè)函數(shù)計(jì)算得到。

進(jìn)一步的,所述預(yù)設(shè)函數(shù)與所述文件加密時(shí)使用的函數(shù)相同。

進(jìn)一步的,所述初始密碼為所述文件加密時(shí)使用的初始密碼。

進(jìn)一步的,在使用所述解密密碼對(duì)所述待解密數(shù)據(jù)進(jìn)行解密時(shí),是對(duì)所述待解密數(shù)據(jù)的每個(gè)字節(jié)進(jìn)行解密。

進(jìn)一步的,所述解密數(shù)據(jù)是通過所述解密密碼與所述待解密數(shù)據(jù)進(jìn)行邏輯異或運(yùn)算得到。

進(jìn)一步的,所述文件為流媒體。

進(jìn)一步的,所述讀取所述待解密數(shù)據(jù)的方式與加密所述文件時(shí)讀取待加密數(shù)據(jù)的方式相同。

對(duì)應(yīng)于上述文件加密方法,本發(fā)明提供一種文件加密裝置,其特征在于,包括:

初始密碼生成單元,用于生成初始密碼,并保存所述初始密碼至存儲(chǔ)單元中;

加密數(shù)據(jù)讀取單元,用于讀取所述文件中待加密數(shù)據(jù);

加密密碼生成單元,用于獲取所述文件中已加密數(shù)據(jù)長(zhǎng)度,并基于所述初始密碼和所述已加密數(shù)據(jù)長(zhǎng)度計(jì)算得到加密密碼;

數(shù)據(jù)加密單元,使用所述加密密碼對(duì)所述待加密數(shù)據(jù)進(jìn)行加密,得到加密數(shù)據(jù),并將所述加密數(shù)據(jù)保存至所述存儲(chǔ)單元。

進(jìn)一步的,所述加密密碼生成單元通過將所述初始密碼、所述初始密碼長(zhǎng)度和所述已加密數(shù)據(jù)長(zhǎng)度代入預(yù)設(shè)函數(shù)計(jì)算得到所述加密密碼。

進(jìn)一步的,通過所述預(yù)設(shè)函數(shù)計(jì)算得到的所述加密密碼是分散化的。

進(jìn)一步的,所述預(yù)設(shè)函數(shù)為散列函數(shù)。

進(jìn)一步的,其特征在于所述加密密碼的長(zhǎng)度與所述初始密碼長(zhǎng)度相同。

進(jìn)一步的,所述初始密碼生成單元利用隨機(jī)函數(shù)生成所述初始密碼。

進(jìn)一步的,所述數(shù)據(jù)加密單元在使用所述加密密碼對(duì)所述待加密數(shù)據(jù)進(jìn)行加密時(shí),是對(duì)所述待加密數(shù)據(jù)的每個(gè)字節(jié)進(jìn)行加密。

進(jìn)一步的,所述數(shù)據(jù)加密單元通過將所述加密密碼與所述待加密數(shù)據(jù)進(jìn)行邏輯異或運(yùn)算得到所述加密數(shù)據(jù)。

進(jìn)一步的,所述文件為流媒體。

進(jìn)一步的,所述加密數(shù)據(jù)讀取單元在讀取所述待加密數(shù)據(jù)時(shí),是按順序分段讀取。

對(duì)應(yīng)于上述加密文件的解密方法,本發(fā)明提供一種加密文件的解密裝置,其特征在于,所述解密裝置包括:

解密密碼生成單元,所述解密密碼生成單元從存儲(chǔ)單元中獲取初始密碼,并獲取所述文件中已解密數(shù)據(jù)長(zhǎng)度,基于所述初始密碼和所述已解密數(shù)據(jù)長(zhǎng)度計(jì)算得到解密密碼;

解密數(shù)據(jù)讀取單元,用于讀取所述加密文件中待解密數(shù)據(jù);

數(shù)據(jù)解密單元,使用所述解密密碼對(duì)所述待解密數(shù)據(jù)進(jìn)行解密,得到解密數(shù)據(jù)。

進(jìn)一步的,所述解密密碼生成單元通過將所述初始密碼、所述初始密碼長(zhǎng)度和所述已加密數(shù)據(jù)長(zhǎng)度代入預(yù)設(shè)函數(shù)計(jì)算得到所述解密密碼。

進(jìn)一步的,所述預(yù)設(shè)函數(shù)與所述文件加密時(shí)使用的函數(shù)相同。

進(jìn)一步的,所述初始密碼為所述文件加密時(shí)使用的初始密碼。

進(jìn)一步的,所述數(shù)據(jù)解密單元在使用所述解密密碼對(duì)所述待解密數(shù)據(jù)進(jìn)行解密時(shí),是對(duì)所述待解密數(shù)據(jù)的每個(gè)字節(jié)進(jìn)行解密。

進(jìn)一步的,所述數(shù)據(jù)解密單元通過所述解密密碼與所述待解密數(shù)據(jù)進(jìn)行邏輯異或運(yùn)算得到所述解密數(shù)據(jù)。

進(jìn)一步的,所述文件為流媒體。

進(jìn)一步的,所述解密讀取單元讀取所述待解密數(shù)據(jù)的方式與加密所述文件時(shí)讀取待加密數(shù)據(jù)的方式相同。

使用本發(fā)明提供的加密技術(shù),引入了隨機(jī)函數(shù)、預(yù)設(shè)函數(shù)及數(shù)據(jù)讀取方式來生成加密密碼在很大程度上提升了被惡意破解的難度,本發(fā)明提供的加密技術(shù)是針對(duì)文件中的每個(gè)字節(jié)進(jìn)行加密,可適用于各種類型的文件,尤其是流媒體文件,在很大程度上對(duì)傳統(tǒng)數(shù)據(jù)加密技術(shù)進(jìn)行了改進(jìn),更好的滿足了當(dāng)前技術(shù)發(fā)展的需求。

附圖說明

為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1是本發(fā)明實(shí)施例一提供的一種文件加密的方法流程圖;

圖2是本發(fā)明實(shí)施例二提供的一種加密文件的解密方法流程圖;

圖3是本發(fā)明實(shí)施例三提供的一種文件加密裝置的結(jié)構(gòu)示意圖;

圖4是本發(fā)明實(shí)施例四提供的一種加密文件的解密裝置結(jié)構(gòu)示意圖。

具體實(shí)施方式

為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。

第一實(shí)施例

參見圖1所示,本發(fā)明第一實(shí)施例提供一種文件的加密方法,包括步驟101~步驟104,詳述如下。

步驟101:生成初始密碼。

初始密碼用于生成加密密碼,本發(fā)明的實(shí)施例中,初始密碼可以是單個(gè)數(shù)字,也可以是數(shù)組,可以是隨機(jī)的,也可以是固定的,在一些較佳實(shí)施例中,為了提高安全性,初始密碼可借助隨機(jī)函數(shù)生成,更進(jìn)一步的,為了提升密碼破解難度,初始密碼為借助隨機(jī)函數(shù)生成的包含多個(gè)元素的數(shù)組。

更進(jìn)一步的,為了后續(xù)的解密操作,需將初始密碼進(jìn)行保存。

步驟102:讀取文件中待加密數(shù)據(jù)。

本發(fā)明的實(shí)施例中,讀取文件中待加密數(shù)據(jù)時(shí),可以是一次性讀取所有的待加密數(shù)據(jù),也可以按順序分段讀取,所謂按順序分段讀取是指設(shè)定一個(gè)固定數(shù)據(jù)長(zhǎng)度單位,根據(jù)文件讀取的順序按照該單位長(zhǎng)度來讀取待加密數(shù)據(jù),故當(dāng)使用分段讀取的方式來讀取待加密數(shù)據(jù)時(shí),可能需要讀取多次,每次讀取后,對(duì)該分段進(jìn)行加密處理后,再讀取下一分段數(shù)據(jù),直至所以待加密數(shù)據(jù)加密完畢。

步驟103:獲取文件中已加密數(shù)據(jù)的長(zhǎng)度,基于所述初始密碼和所述已加密數(shù)據(jù)長(zhǎng)度計(jì)算得到加密密碼。

文件中已加密數(shù)據(jù)的長(zhǎng)度是指文件在當(dāng)前已經(jīng)完成加密的數(shù)據(jù)的長(zhǎng)度。

在計(jì)算加密密碼時(shí),通過將初始密碼、初始密碼長(zhǎng)度和加密數(shù)據(jù)的長(zhǎng)度代入預(yù)設(shè)函數(shù)計(jì)算得到。本發(fā)明的實(shí)施例中并不對(duì)預(yù)設(shè)函數(shù)的類型進(jìn)行限制,在本發(fā)明的一些較佳實(shí)施例中,預(yù)設(shè)函數(shù)可以為散列函數(shù),由于分散函數(shù)計(jì)算出的結(jié)果不具有規(guī)律性,通過預(yù)設(shè)函數(shù)計(jì)算得到的加密密碼是分散化的,無規(guī)律可尋,從而更進(jìn)一步的增加了密碼被破解的難度。

在本發(fā)明的較佳實(shí)施例中,為了增加破解難度,初始密碼可設(shè)為包含多個(gè)元素的隨機(jī)數(shù)組,通過預(yù)設(shè)函數(shù)計(jì)算得到的結(jié)果與初始密碼長(zhǎng)度相同的加密密碼數(shù)組,如此一來,初始密碼的長(zhǎng)度較長(zhǎng),數(shù)據(jù)范圍較大,計(jì)算得到的加密密碼數(shù)組的數(shù)據(jù)范圍也隨之?dāng)U大。該加密密碼數(shù)組中的每個(gè)字節(jié)就是用于對(duì)文件中各個(gè)字節(jié)進(jìn)行加密的加密密碼,該些加密密碼屬于較大的數(shù)據(jù)范圍,之間具有分散化的特點(diǎn),且計(jì)算得出的每組加密密碼之間也無規(guī)律可尋,故在很大程度上增加了密碼被破解的難度,提高了數(shù)據(jù)安全性。

步驟104:使用所述加密密碼對(duì)待加密數(shù)據(jù)進(jìn)行加密,得到加密數(shù)據(jù)。

使用加密密碼對(duì)文件中待加密數(shù)據(jù)進(jìn)行加密時(shí),是對(duì)將加密密碼與對(duì)應(yīng)的字節(jié)進(jìn)行邏輯異或運(yùn)算得到該字節(jié)數(shù)據(jù)的加密數(shù)據(jù)。

本發(fā)明的實(shí)施例中,在對(duì)文件進(jìn)行加密時(shí),是按文件讀取順序以字節(jié)為單位進(jìn)行加密操作的,也就是說,文件中的每個(gè)組成字節(jié)都有對(duì)應(yīng)的加密密碼,每個(gè)字節(jié)都將與其對(duì)應(yīng)的加密密碼進(jìn)行邏輯運(yùn)算,以得到相應(yīng)的密文,故在文件加密的過程中,是按照文件讀取順序一個(gè)字節(jié)一個(gè)字節(jié)的進(jìn)行加密操作。

以下對(duì)上述加密密碼的計(jì)算方法和數(shù)據(jù)加密方法的具體程序邏輯實(shí)現(xiàn)進(jìn)行詳細(xì)說明。

步驟一:從待加密文件in中讀出一段長(zhǎng)度為data_len的數(shù)據(jù)data,記錄當(dāng)前已經(jīng)加密完成的數(shù)據(jù)長(zhǎng)度offset,文件in的長(zhǎng)度為in_len。如果讀到的數(shù)據(jù)長(zhǎng)度為0既文件結(jié)尾則跳出加密流程,關(guān)閉文件in和文件out,并將in文件刪除,文件out重新命名成in。值得注意的是,本實(shí)施例中,文件加密是否完成是根據(jù)讀取的待加密數(shù)據(jù)長(zhǎng)度來判斷,在本發(fā)明的其他實(shí)施例中,還可以通過其他方式來進(jìn)行判斷,如判斷已加密數(shù)據(jù)的長(zhǎng)度是否等于文件長(zhǎng)度等,本發(fā)明并不以此為限。

步驟二:計(jì)算本次加密密碼組的偏移量n=offset/m、加密密碼偏移量key_i=offset%m,其中本次加密密碼組的偏移量是指本次加密時(shí)所使用的加密密碼組的序號(hào),加密密碼偏移量是指本次加密使用的加密密碼在加密密碼組中的標(biāo)識(shí);初始化data偏移data_i=0;通過預(yù)設(shè)函數(shù)計(jì)算加密密碼組new_Kn,計(jì)算公式是new_Kn=xor_key(key,offset/m),其中key為通過隨機(jī)函數(shù)計(jì)算得到的初始密碼,m為初始密碼的長(zhǎng)度,xor_key是預(yù)設(shè)函數(shù),為了保證xor_key的計(jì)算結(jié)果是分散化的,可以取crc64(循環(huán)冗余校驗(yàn))或者Hash(散列函數(shù))函數(shù)等來實(shí)現(xiàn),本實(shí)施例中使用的是crc64(循環(huán)冗余校驗(yàn))。

步驟三:將數(shù)據(jù)data中的字節(jié)數(shù)據(jù)data[data_i]和加密密碼組new_Kn中的加密密碼new_Kn[key_i]做加密運(yùn)算,運(yùn)算規(guī)則是data[data_i]^new_Kn[key_i],然后自加data_i和key_i即data_i++和key_i++。

步驟四:如果data_i==data_len,表示本次讀取出的數(shù)據(jù)data已全部完成加密,則將數(shù)據(jù)data對(duì)應(yīng)的密文寫入文件out,如果offset+=in_len,重新執(zhí)行步驟一。

步驟五:如果key_i==m,重新計(jì)算new_Kn,計(jì)算過程是new_Kn=xor_key(key,(offsert+data_i)/m),n=(offsert+data_i)/m,設(shè)置key_i=0,并重新執(zhí)行步驟三。

綜上所述,本發(fā)明實(shí)施例所提供的文件加密方法,通過初始密碼、已加密數(shù)據(jù)的長(zhǎng)度計(jì)算得到加密密碼,再通過加密密碼對(duì)文件進(jìn)行加密,在加密時(shí),文件中的每個(gè)字節(jié)數(shù)據(jù)都有對(duì)應(yīng)的加密密碼。故若要對(duì)加密文件進(jìn)行破解,需要獲取到初始密碼、計(jì)算規(guī)則以及加密時(shí)已加密數(shù)據(jù)長(zhǎng)度的獲取方式,才能正確得出解密密碼。

更進(jìn)一步的,本發(fā)明的實(shí)施所提供的文件加密方法通過隨機(jī)函數(shù)生成初始密碼,并通過將初始密碼、初始密碼長(zhǎng)度和已加密的數(shù)據(jù)長(zhǎng)度代入散列函數(shù)計(jì)算得到加密密碼,使得加密密碼無規(guī)律可循,從而使得加密后的加密數(shù)據(jù)無規(guī)律可循,較于傳統(tǒng)的加密方法而言,很大程度的提升了密碼被破解的難度,提升了數(shù)據(jù)安全性。

更進(jìn)一步的,本發(fā)明實(shí)施例所提供的文件加密方法中,初始密碼可為數(shù)組,通過預(yù)設(shè)函數(shù)計(jì)算得到的結(jié)果是與初始密碼長(zhǎng)度相同的加密密碼數(shù)組,由于數(shù)組的數(shù)據(jù)范圍較單個(gè)字符大,故加密密碼的取值范圍在很大程度上得到擴(kuò)張,更進(jìn)一步的提升了密碼被破解的難度。

更進(jìn)一步的,本發(fā)明實(shí)施例所提供的文件加密方法中,讀取待加密數(shù)據(jù)時(shí)采用按順序分段讀取的方式,每次讀取待加密數(shù)據(jù)時(shí)需代入已加密數(shù)據(jù)的長(zhǎng)度進(jìn)行加密密碼的計(jì)算,故,采取不同的分段長(zhǎng)度讀取數(shù)據(jù)時(shí),計(jì)算得出的加密密碼也不相同,從而更進(jìn)一步的增加了密碼被破解的難度。

值得注意的是,本發(fā)明實(shí)施例所提供的加密方法是針對(duì)文件中的每個(gè)字節(jié)進(jìn)行加密,解密時(shí)也是針對(duì)單個(gè)字節(jié)進(jìn)行的,從而可以在文件的任意節(jié)點(diǎn)進(jìn)行解密,從而適用于對(duì)流媒體的加密,滿足用戶在客戶端播放視頻音頻文件時(shí),拖動(dòng)播放的需求。

第二實(shí)施例

參見圖2所示,本發(fā)明第二實(shí)施例提供一種加密文件的解密方法,包括步驟201~步驟204,詳述如下。

步驟201:獲取初始密碼。

具體而言,解密時(shí)需使用加密時(shí)相同的初始密碼,本步驟中,可通過加密時(shí)初始密碼的保存路徑中讀取得到初始密碼,可以是通過其他方式獲取初始密碼,其使用的技術(shù)手段為本領(lǐng)域技術(shù)人員所習(xí)知,故不再贅述。

步驟202:讀取加密文件中待解密數(shù)據(jù)。

由于讀取待解密數(shù)據(jù)的方式會(huì)影響到解密密碼的生成,所以本實(shí)施例中,讀取所述待解密數(shù)據(jù)的方式與加密所述文件時(shí)讀取待加密數(shù)據(jù)的方式相同。

步驟203:獲取所述已解密數(shù)據(jù)長(zhǎng)度,基于初始密碼和已解密數(shù)據(jù)長(zhǎng)度計(jì)算得到解密密碼。

文件中解密數(shù)據(jù)的長(zhǎng)度是指文件在當(dāng)前已經(jīng)完成解密的數(shù)據(jù)的長(zhǎng)度。

在計(jì)算解密密碼時(shí),通過將初始密碼、初始密碼長(zhǎng)度和解密數(shù)據(jù)的長(zhǎng)度代入預(yù)設(shè)函數(shù)計(jì)算得到,其中所使用的預(yù)設(shè)函數(shù)與加密時(shí)所使用的函數(shù)相同。

步驟204:使用所述解密密碼對(duì)所述待解密數(shù)據(jù)進(jìn)行解密,得到解密數(shù)據(jù)。

使用解密密碼對(duì)文件中待解密數(shù)據(jù)進(jìn)行解密時(shí),是對(duì)將解密密碼與對(duì)應(yīng)的字節(jié)進(jìn)行邏輯異或運(yùn)算得到該字節(jié)數(shù)據(jù)的解密數(shù)據(jù)。

在本實(shí)施例的文件解密方法中,為了能對(duì)加密文件進(jìn)行順利解密,其操作方法與加密方法相對(duì)應(yīng),使用的初始密碼、計(jì)算規(guī)則和文件讀取方式應(yīng)都相同。其中,解密密碼的計(jì)算邏輯與上述實(shí)施例中的程序邏輯相同,故不再贅述。

同樣的,本發(fā)明實(shí)施例中的加密文件解密方法,也是針對(duì)每個(gè)字節(jié)進(jìn)行解密操作,故可適用于流媒體的解密。

第三實(shí)施例

參見圖3所示,本發(fā)明第三實(shí)施例提供一種文件加密裝置,與圖1所示的文件加密方法相對(duì)應(yīng),能實(shí)現(xiàn)第一實(shí)施例中的文件加密方法的細(xì)節(jié),并達(dá)到相同的效果。所述文件加密裝置10包括初始密碼生成單元11,存儲(chǔ)單元12,加密數(shù)據(jù)讀取單元13,加密密碼生成單元14,數(shù)據(jù)加密單元15,其中初始密碼生成單元11連接于存儲(chǔ)單元12,加密密碼生成單元14連接于和數(shù)據(jù)加密單元15,數(shù)據(jù)加密單元15連接于存儲(chǔ)單元12和加密數(shù)據(jù)讀取單元13。

具體而言,初始密碼生成單元11,用于生成初始密碼,并保存初始密碼至存儲(chǔ)單元12中。

本發(fā)明的實(shí)施例中,初始密碼可以是單個(gè)數(shù)字,也可以是數(shù)組,可以是隨機(jī)的,也可以是固定的,在一些較佳實(shí)施例中,為了提高安全性,初始密碼可借助隨機(jī)函數(shù)生成,更進(jìn)一步的,為了提升密碼破解難度,初始密碼為借助隨機(jī)函數(shù)生成的包含多個(gè)元素的數(shù)組。

將初始密碼進(jìn)行保存,是一方面可提供給后續(xù)加密過程中使用,另一方面是為了在解密時(shí)使用。

加密數(shù)據(jù)讀取單元13,用于讀取文件中待加密數(shù)據(jù),并提供待加密數(shù)據(jù)給數(shù)據(jù)加密單元15進(jìn)行加密操作。

本發(fā)明的實(shí)施例中,讀取文件中待加密數(shù)據(jù)時(shí),可以是一次性讀取所有的待加密數(shù)據(jù),也可以按順序分段讀取,所謂按順序分段讀取是指設(shè)定一個(gè)固定數(shù)據(jù)長(zhǎng)度單位,根據(jù)文件讀取的順序按照該單位長(zhǎng)度來讀取待加密數(shù)據(jù),故當(dāng)使用分段讀取的方式來讀取待加密數(shù)據(jù)時(shí),可能需要讀取多次,每次讀取后,對(duì)該分段進(jìn)行加密處理后,再讀取下一分段數(shù)據(jù),直至所以待加密數(shù)據(jù)加密完畢。

加密密碼生成單元14,可獲取文件中已加密數(shù)據(jù)長(zhǎng)度,并基于初始密碼和已加密數(shù)據(jù)長(zhǎng)度計(jì)算得到加密密碼,其中,加密密碼生成單元14可以從初始密碼生成單元11中獲得初始密碼,也可以從存儲(chǔ)單元12中讀取初始密碼,本發(fā)明并不做限制。

文件中已加密數(shù)據(jù)的長(zhǎng)度是指文件在當(dāng)前已經(jīng)完成加密的數(shù)據(jù)的長(zhǎng)度。

在計(jì)算加密密碼時(shí),通過將初始密碼、初始密碼長(zhǎng)度和加密數(shù)據(jù)的長(zhǎng)度代入預(yù)設(shè)函數(shù)計(jì)算得到。本發(fā)明的實(shí)施例中并不對(duì)預(yù)設(shè)函數(shù)的類型進(jìn)行限制,在本發(fā)明的一些較佳實(shí)施例中,預(yù)設(shè)函數(shù)可以為散列函數(shù),由于分散函數(shù)計(jì)算出的結(jié)果不具有規(guī)律性,通過預(yù)設(shè)函數(shù)計(jì)算得到的加密密碼是分散化的,無規(guī)律可尋,從而更進(jìn)一步的增加了密碼被破解的難度。

在本發(fā)明的較佳實(shí)施例中,為了增加破解難度,初始密碼可設(shè)為包含多個(gè)元素的隨機(jī)數(shù)組,通過預(yù)設(shè)函數(shù)計(jì)算得到的結(jié)果與初始密碼長(zhǎng)度相同的加密密碼數(shù)組,如此一來,初始密碼的長(zhǎng)度較長(zhǎng),數(shù)據(jù)范圍較大,計(jì)算得到的加密密碼數(shù)組的數(shù)據(jù)范圍也隨之?dāng)U大。該加密密碼數(shù)組中的每個(gè)字節(jié)就是用于對(duì)文件中各個(gè)字節(jié)進(jìn)行加密的加密密碼,該些加密密碼屬于較大的數(shù)據(jù)范圍,之間具有分散化的特點(diǎn),且計(jì)算得出的每組加密密碼之間也無規(guī)律可尋,故在很大程度上增加了密碼被破解的難度,提高了數(shù)據(jù)安全性。

數(shù)據(jù)加密單元15,使用的加密密碼對(duì)待加密數(shù)據(jù)進(jìn)行加密,得到加密數(shù)據(jù),并將加密數(shù)據(jù)保存至所述存儲(chǔ)單元12,其中,加密密碼是從加密密碼生成單元14中獲得,加密數(shù)據(jù)從加密數(shù)據(jù)讀取單元13中獲得。

使用加密密碼對(duì)文件中待加密數(shù)據(jù)進(jìn)行加密時(shí),是對(duì)將加密密碼與對(duì)應(yīng)的字節(jié)進(jìn)行邏輯異或運(yùn)算得到該字節(jié)數(shù)據(jù)的加密數(shù)據(jù)。

本發(fā)明的實(shí)施例中,在對(duì)文件進(jìn)行加密時(shí),是按文件讀取順序以字節(jié)為單位進(jìn)行加密操作的,也就是說,文件中的每個(gè)組成字節(jié)都有對(duì)應(yīng)的加密密碼,每個(gè)字節(jié)都將與其對(duì)應(yīng)的加密密碼進(jìn)行邏輯運(yùn)算,以得到相應(yīng)的密文,故在文件加密的過程中,是按照文件讀取順序一個(gè)字節(jié)一個(gè)字節(jié)的進(jìn)行加密操作。

本實(shí)施例中所使用的加密密碼的計(jì)算方式和加密方法的實(shí)現(xiàn)邏輯與實(shí)施例一中的相同,故不再贅述。

由此可見,通過本發(fā)明實(shí)施例所提供的文件加密裝置對(duì)文件進(jìn)行加密時(shí),通過初始密碼、已加密數(shù)據(jù)的長(zhǎng)度計(jì)算得到加密密碼,再通過加密密碼對(duì)文件進(jìn)行加密,在加密時(shí),文件中的每個(gè)字節(jié)數(shù)據(jù)都有對(duì)應(yīng)的加密密碼。故若要對(duì)加密文件進(jìn)行破解,需要獲取到初始密碼、計(jì)算規(guī)則以及加密時(shí)已加密數(shù)據(jù)長(zhǎng)度的獲取方式,才能正確得出解密密碼。

更進(jìn)一步的,本發(fā)明的實(shí)施所提供的文件加密裝置對(duì)文件進(jìn)行加密時(shí),通過隨機(jī)函數(shù)生成初始密碼,并通過將初始密碼、初始密碼長(zhǎng)度和已加密的數(shù)據(jù)長(zhǎng)度代入散列函數(shù)計(jì)算得到加密密碼,使得加密密碼無規(guī)律可循,從而使得加密后的加密數(shù)據(jù)無規(guī)律可循,較于傳統(tǒng)的加密方法而言,很大程度的提升了密碼被破解的難度,提升了數(shù)據(jù)安全性。

更進(jìn)一步的,本發(fā)明實(shí)施例所提供的文件加密裝置對(duì)文件進(jìn)行加密時(shí),初始密碼可為數(shù)組,通過預(yù)設(shè)函數(shù)計(jì)算得到的結(jié)果是與初始密碼長(zhǎng)度相同的加密密碼數(shù)組,由于數(shù)組的數(shù)據(jù)范圍較單個(gè)字符大,故加密密碼的取值范圍在很大程度上得到擴(kuò)張,更進(jìn)一步的提升了密碼被破解的難度。

更進(jìn)一步的,本發(fā)明實(shí)施例所提供的文件加密裝置對(duì)文件進(jìn)行加密時(shí),讀取待加密數(shù)據(jù)時(shí)采用按順序分段讀取的方式,每次讀取待加密數(shù)據(jù)時(shí)需代入已加密數(shù)據(jù)的長(zhǎng)度進(jìn)行加密密碼的計(jì)算,故,采取不同的分段長(zhǎng)度讀取數(shù)據(jù)時(shí),計(jì)算得出的加密密碼也不相同,從而更進(jìn)一步的增加了密碼被破解的難度。

值得注意的是,本發(fā)明實(shí)施例所提供的加密裝置對(duì)文件進(jìn)行加密時(shí)是針對(duì)文件中的每個(gè)字節(jié)進(jìn)行加密,解密時(shí)也是針對(duì)單個(gè)字節(jié)進(jìn)行的,從而可以在文件的任意節(jié)點(diǎn)進(jìn)行解密,從而適用于對(duì)流媒體的加密,滿足用戶在客戶端播放視頻音頻文件時(shí),拖動(dòng)播放的需求。

第四實(shí)施例

參見圖4所示,本發(fā)明第四實(shí)施例提供一種文件解密裝置,與圖2所示的文件解密方法相對(duì)應(yīng),能實(shí)現(xiàn)第一實(shí)施例中的文件解密方法的細(xì)節(jié),并達(dá)到相同的效果。所述加密文件解密裝置20包括解密密碼生成單元21、存儲(chǔ)單元22、解密數(shù)據(jù)讀取單元23和數(shù)據(jù)解密單元24,其中,解密密碼生成單元21連接于存儲(chǔ)單元22和數(shù)據(jù)解密單元24,數(shù)據(jù)解密單元24分別連接于其他三個(gè)單元。

具體而言,解密密碼生成單元21從存儲(chǔ)單元22中獲取文件加密時(shí)使用的初始密碼,并獲取文件中已解密數(shù)據(jù)長(zhǎng)度,基于初始密碼和已解密數(shù)據(jù)長(zhǎng)度計(jì)算得到解密密碼。

值得注意的是,本發(fā)明的其他實(shí)施例中,可通過加密時(shí)初始密碼的保存路徑中讀取得到初始密碼,可以是通過其他方式獲取初始密碼,其使用的技術(shù)手段為本領(lǐng)域技術(shù)人員所習(xí)知,故不再贅述。文件中解密數(shù)據(jù)的長(zhǎng)度是指文件在當(dāng)前已經(jīng)完成解密的數(shù)據(jù)的長(zhǎng)度。

在計(jì)算解密密碼時(shí),通過將初始密碼、初始密碼長(zhǎng)度和解密數(shù)據(jù)的長(zhǎng)度代入預(yù)設(shè)函數(shù)計(jì)算得到,其中所使用的預(yù)設(shè)函數(shù)與加密時(shí)所使用的函數(shù)相同。

解密數(shù)據(jù)讀取單元23,讀取加密文件中待解密數(shù)據(jù),如前文所述,讀取待解密數(shù)據(jù)的方式會(huì)影響到解密密碼的生成,所以本實(shí)施例中,讀取待解密數(shù)據(jù)的方式與加密文件時(shí)讀取待加密數(shù)據(jù)的方式相同。

數(shù)據(jù)解密單元24,使用所述解密密碼對(duì)所述待解密數(shù)據(jù)進(jìn)行解密,得到解密數(shù)據(jù)。

使用解密密碼對(duì)文件中待解密數(shù)據(jù)進(jìn)行解密時(shí),是對(duì)將解密密碼與對(duì)應(yīng)的字節(jié)進(jìn)行邏輯異或運(yùn)算得到該字節(jié)數(shù)據(jù)的解密數(shù)據(jù)。

在本實(shí)施例的加密文件解密裝置中,為了能對(duì)加密文件進(jìn)行順利解密,其操作方法與加密方法相對(duì)應(yīng),使用的初始密碼、計(jì)算規(guī)則和文件讀取方式應(yīng)都相同。其中,解密密碼的計(jì)算邏輯與上述實(shí)施例中的程序邏輯相同,故不再贅述。

同樣的,本發(fā)明實(shí)施例中的加密文件解密裝置,也是針對(duì)每個(gè)字節(jié)進(jìn)行解密操作,故可適用于流媒體的解密。

上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。

以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動(dòng)的情況下,即可以理解并實(shí)施。

通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實(shí)施方式可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。

以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1