本發(fā)明涉及數(shù)據(jù)安全技術領域,特別是涉及一種文件加密方法和裝置、文件解密方法和裝置。
背景技術:
在一些應用場景中,需要對文件進行加密保護,以避免文件內(nèi)容被非法獲取。比如流媒體文件存儲在用戶終端本地時,被要求進行加密處理,第三方應用程序就無法獲取到流媒體文件的內(nèi)容,有利于版權保護。
然而,目前文件加密主要采用的方式是對文件進行全文二進制加密,相應的解密方式時則是對加密文件進行全文二進制解密,加密和解密過程對中央處理器消耗都非常大,加密和解密的時間成本高。
技術實現(xiàn)要素:
基于此,有必要針對目前對文件加密采用全文二進制加密、解密采用全文二進制解密對中央處理器消耗大從而導致加密和解密時間成本高的問題,提供一種文件加密方法和裝置、文件解密方法和裝置。
一種文件加密方法,所述方法包括:
獲取待加密的原文件;
對所述原文件的頭部數(shù)據(jù)加密獲得頭部加密數(shù)據(jù)并存儲,對應于所述原文件的文件標識記錄所述頭部加密數(shù)據(jù)的第一存儲路徑;所述頭部數(shù)據(jù)包括所述原文件的元數(shù)據(jù);
將所述原文件中除所述頭部數(shù)據(jù)的文件數(shù)據(jù)分割為多個片段;
將分割出的各個所述片段進行混淆片段順序的存儲;
對應于所述文件標識記錄各個所述片段的第二存儲路徑以及各個所述片段在所述原文件中的順序。
一種文件加密裝置,所述裝置包括:
原文件獲取模塊,用于獲取待加密的原文件;
頭部數(shù)據(jù)加密模塊,用于對所述原文件的頭部數(shù)據(jù)加密獲得頭部加密數(shù)據(jù)并存儲;所述頭部數(shù)據(jù)包括所述原文件的元數(shù)據(jù);
分割模塊,用于將所述原文件中除所述頭部數(shù)據(jù)的文件數(shù)據(jù)分割為多個片段;
混淆片段順序存儲模塊,用于將分割出的各個所述片段進行混淆片段順序的存儲;
記錄模塊,用于對應于所述原文件的文件標識記錄所述頭部加密數(shù)據(jù)的第一存儲路徑;對應于所述文件標識記錄各個所述片段的第二存儲路徑以及各個所述片段在所述原文件中的順序。
上述文件加密方法和裝置,在對原文件進行加密時,僅加密原文件的頭部數(shù)據(jù),加密計算的數(shù)據(jù)量小,而原文件中除頭部數(shù)據(jù)之外的文件數(shù)據(jù)則分割成多個片段后通過混淆片段順序的方式進行存儲,分割和混淆片段順序存儲的計算量小,相較于目前全文二進制加密的加密方式,通過該文件加密方法和裝置可顯著減少對中央處理器的消耗,加密時間成本低。記錄第一存儲路徑、第二存儲路徑和片段的順序則使得文件被加密后可被解密。而且元數(shù)據(jù)用于描述原文件中的數(shù)據(jù)內(nèi)容,加密的頭部數(shù)據(jù)覆蓋原文件的元數(shù)據(jù),可防止惡意用戶利用元數(shù)據(jù)定位到加密的文件以及獲取到通過混淆片段順序存儲的各個片段來進行加密破解。
一種文件解密方法,所述方法包括:
讀取與待解密的文件標識對應的用于存儲頭部加密數(shù)據(jù)的第一存儲路徑;
根據(jù)所述第一存儲路徑獲取所述頭部加密數(shù)據(jù);
解密所述頭部加密數(shù)據(jù),獲得頭部數(shù)據(jù);所述頭部數(shù)據(jù)包括原文件的元數(shù)據(jù);
讀取與所述文件標識對應的混淆片段順序存儲的各個片段的第二存儲路徑 和各個所述片段在原文件中的順序;
根據(jù)所述第二存儲路徑獲取各個所述片段;
根據(jù)所述順序將各個所述片段與所述頭部數(shù)據(jù)拼接,獲得原文件。
一種文件解密裝置,所述裝置包括:
第一讀取模塊,用于讀取與待解密的文件標識對應的用于存儲頭部加密數(shù)據(jù)的第一存儲路徑;
頭部加密數(shù)據(jù)獲取模塊,用于根據(jù)所述第一存儲路徑獲取所述頭部加密數(shù)據(jù);
頭部加密數(shù)據(jù)解密模塊,用于解密所述頭部加密數(shù)據(jù),獲得頭部數(shù)據(jù);所述頭部數(shù)據(jù)包括原文件的元數(shù)據(jù);
第二讀取模塊,用于讀取與所述文件標識對應的混淆片段順序存儲的各個片段的第二存儲路徑和各個所述片段在原文件中的順序;
片段獲取模塊,用于根據(jù)所述第二存儲路徑獲取各個所述片段;
文件拼接模塊,用于根據(jù)所述順序將各個所述片段與所述頭部數(shù)據(jù)拼接,獲得原文件。
上述文件解密方法和裝置,利用記錄的第一存儲路徑定位到頭部加密數(shù)據(jù)并進行解密而獲得頭部數(shù)據(jù),利用記錄的第二存儲路徑定位并獲取到各個片段,進而利用記錄的順序將頭部數(shù)據(jù)和各片段進行拼接,獲得原文件。解密時僅需對頭部加密數(shù)據(jù)進行解密計算,解密計算的數(shù)據(jù)量小,片段拼接的時間成本少,相較于目前全文二進制解密的解密方式,通過該文件解密方法和裝置可顯著減少對中央處理器的消耗,解密時間成本低。而且元數(shù)據(jù)用于描述原文件中的數(shù)據(jù)內(nèi)容,加密的頭部數(shù)據(jù)覆蓋原文件的元數(shù)據(jù),可防止惡意用戶利用元數(shù)據(jù)定位到加密的文件以及獲取到通過混淆片段順序存儲的各個片段來進行加密破解。
附圖說明
圖1為一個實施例中電子設備的內(nèi)部結構示意圖;
圖2為一個實施例中文件加密方法的流程示意圖;
圖3為一個實施例中對原文件的頭部數(shù)據(jù)加密獲得頭部加密數(shù)據(jù)并存儲,對應于原文件的文件標識記錄頭部加密數(shù)據(jù)的第一存儲路徑的步驟的流程示意圖;
圖4為另一個實施例中文件加密方法的流程示意圖;
圖5為一個實施例中文件解密方法的流程示意圖;
圖6為一個實施例中文件加密裝置的結構框圖;
圖7為另一個實施例中文件加密裝置的結構框圖;
圖8為一個實施例中文件解密裝置的結構框圖;
圖9為另一個實施例中文件解密裝置的結構框圖。
具體實施方式
為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
如圖1所示,在一個實施例中,提供了一種電子設備,包括通過系統(tǒng)總線連接的處理器、非易失性存儲介質、內(nèi)存儲器、網(wǎng)絡接口和音頻輸出接口。其中處理器具有計算功能和控制電子設備工作的功能,該處理器被配置為執(zhí)行一種文件加密方法和文件解密方法。非易失性存儲介質包括磁存儲介質、光存儲介質以及閃存式存儲介質。非易失性存儲介質存儲有操作系統(tǒng),還存儲有文件加密裝置和文件解密裝置,該文件加密裝置用于實現(xiàn)一種文件加密方法,該文件解密裝置用于實現(xiàn)一種文件解密方法。內(nèi)存儲器用于為操作系統(tǒng)、文件加密裝置和文件解密裝置提供高速緩存。網(wǎng)絡接口用于連接到網(wǎng)絡,音頻輸出接口用于將處理器處理獲得的音頻數(shù)據(jù)輸出為音頻信號。
如圖2所示,在一個實施例中,提供了一種文件加密方法,本實施例以該方法應用于上述圖1中的電子設備來舉例說明。該方法具體包括如下步驟:
步驟202,獲取待加密的原文件。
其中,原文件是指未經(jīng)過加密的原始文件,原文件具體可以是媒體文件、圖片、壓縮包文件、文本文件或者富文本文件等。媒體文件包括流媒體文件和本地媒體文件,媒體文件具體比如視頻文件或者音頻文件等。電子設備具體可通過網(wǎng)絡下載待加密的原文件,還可以從本地獲取待加密的原文件。
步驟204,對原文件的頭部數(shù)據(jù)加密獲得頭部加密數(shù)據(jù)并存儲,對應于原文件的文件標識記錄頭部加密數(shù)據(jù)的第一存儲路徑;頭部數(shù)據(jù)包括原文件的元數(shù)據(jù)。
其中,頭部數(shù)據(jù)是位于原文件頭部的一部分數(shù)據(jù),可根據(jù)需要設置頭部數(shù)據(jù)的大小,比如可取100kb(kb,千字節(jié)),且要求頭部數(shù)據(jù)覆蓋到原文件的元數(shù)據(jù)。元數(shù)據(jù)(metadata)是指描述該原文件的數(shù)據(jù)內(nèi)容的數(shù)據(jù),比如若原文件為視頻流文件,則元數(shù)據(jù)可包括視頻格式、視頻時間信息、碼率、文件大小、及導演、演員以及制作單位等。
電子設備可采用各種二進制加密算法對頭部數(shù)據(jù)進行加密,獲得相應的頭部加密數(shù)據(jù)。電子設備加密頭部數(shù)據(jù),具體可采用aes(advancedencryptionstandard,即高級加密標準)算法或者des(dataencryptionstandard,即數(shù)據(jù)加密標準)算法等二進制加密算法。
電子設備存儲加密所獲得的頭部加密數(shù)據(jù),并在以原文件的文件標識為索引的記錄中記錄該頭部加密數(shù)據(jù)的存儲路徑。為將該存儲路徑與下述的其它存儲路徑相區(qū)分,稱頭部加密數(shù)據(jù)的存儲路徑為第一存儲路徑。原文件的文件標識可唯一標識出相應的原文件,可以包括數(shù)字、字母、標點符號以及漢字等字符中的一種或幾種的組合。
步驟206,將原文件中除頭部數(shù)據(jù)的文件數(shù)據(jù)分割為多個片段。
具體地,在一個實施例中,電子設備可按照預設的單個片段大小將原文件中除頭部數(shù)據(jù)的文件數(shù)據(jù)分割為多個片段。比如預設的單個片段大小為1m(兆字節(jié)),則電子設備可從原文件中除去頭部數(shù)據(jù)之后,再從剩余的文件數(shù)據(jù)逐個地分割出一個個大小為1m的片段,最后不足1m的文件數(shù)據(jù)則是分割出的最后一個片段。
在一個實施例中,電子設備可將原文件中除頭部數(shù)據(jù)的文件數(shù)據(jù)等量或隨 機分割為預設數(shù)量的多個片段。具體地,電子設備可從原文件中除去頭部數(shù)據(jù)之后,再將剩余的文件數(shù)據(jù)分割為預設數(shù)量的片段。分割時可采用等量分割方式,即分割出的每個片段的大小相等;也可以采用隨機分割方式,即隨機地分配預設數(shù)量的片段中每個片段的大小。
其中,分割出的片段的數(shù)量可根據(jù)加密等級和/或響應時間等級進行控制,具體若加密等級越高,則分割出的片段的數(shù)量應當更多,文件被加密后更難被破解;若加密等級越低,則分割出的片的數(shù)量可以減少。若響應時間等級越高,即要求響應時間短,則分割出的數(shù)量應當減少;若響應時間等級越低,則可增加分割出的片段的數(shù)量。
步驟208,將分割出的各個片段進行混淆片段順序的存儲。
具體地,電子設備將分割出的每個片段獨立地存儲,并且在存儲時混淆片段順序,從而使得各個片段被存儲后無法從存儲路徑分辨出各個片段在原文件中的順序。
在一個實施例中,步驟208包括:為每個片段分配隨機的新文件名,并在指定文件目錄或者隨機創(chuàng)建的文件目錄下將每個片段存儲在以相應的新文件名命名的片段文件中。
具體地,電子設備可生成與片段數(shù)量相等的多個不同的隨機字符串,將每個隨機字符串分別分配給多個片段中的其中一個,使得每個片段具有相應的隨機字符串作為新文件名。電子設備將每個片段作為獨立的文件進行存儲,該文件稱之為片段文件,并將存儲的片段文件命名為分配的新文件名。
其中片段文件可存儲在指定目錄下,比如創(chuàng)建一個具有隨機文件夾名稱的文件夾,從而將分割出的片段文件均存儲在該創(chuàng)建的文件夾下。電子設備也可以隨機為每個片段文件創(chuàng)建新的文件目錄,從而將每個片段文件存儲在相應的文件目錄下,每個片段文件的文件目錄可以均不相同。
步驟210,對應于文件標識記錄各個片段的第二存儲路徑以及各個片段在原文件中的順序。
具體地,電子設備可在實施本發(fā)明實施例的文件加密方法的應用的私有數(shù)據(jù)庫中生成一條記錄,該條記錄可以原文件的文件標識為索引,在該條記錄中 存儲第一存儲路徑、第二存儲路徑以及各個片段在原文件中的順序。其中私有數(shù)據(jù)庫可存儲于本地或者網(wǎng)絡中,私有數(shù)據(jù)庫的訪問需要經(jīng)過身份驗證,可保證安全性。第二存儲路徑是指存儲的片段的存儲路徑。記錄片段的順序具體可按照各片段在原文件中的順序記錄相應片段文件名的順序,也可以為每個片段分配唯一且混淆順序的片段序號,從而按照各片段在原文件中的順序記錄各片段序號的順序。電子設備還可以記錄原文件的文件校驗值,比如md5(messagedigestalgorithmmd5,即消息摘要算法第五版)值,用以在解密獲得原文件后根據(jù)文件校驗值校驗原文件的完整性。
在一個實施例中,電子設備還可以將在實施上述文件加密方法過程中生成的文件進行格式偽裝,比如將生成的文件的擴展名修改為另一種文件格式的擴展名。生成的文件包括頭部加密數(shù)據(jù)所在的文件和各片段所在的文件。在解密時需要將經(jīng)過格式偽裝的文件進行格式還原。
上述文件加密方法,在對原文件進行加密時,僅加密原文件的頭部數(shù)據(jù),加密計算的數(shù)據(jù)量小,而原文件中除頭部數(shù)據(jù)之外的文件數(shù)據(jù)則分割成多個片段后通過混淆片段順序的方式進行存儲,分割和混淆片段順序存儲的計算量小,相較于目前全文二進制加密的加密方式,通過該文件加密方法可顯著減少對中央處理器的消耗,加密時間成本低。記錄第一存儲路徑、第二存儲路徑和片段的順序則使得文件被加密后可被解密。而且元數(shù)據(jù)用于描述原文件中的數(shù)據(jù)內(nèi)容,加密的頭部數(shù)據(jù)覆蓋原文件的元數(shù)據(jù),可防止惡意用戶利用元數(shù)據(jù)定位到加密的文件以及獲取到通過混淆片段順序存儲的各個片段來進行加密破解。
如圖3所示,在一個實施例中,步驟204具體包括以下步驟:
步驟302,生成隨機的加密密鑰,根據(jù)加密密鑰對原文件的頭部數(shù)據(jù)進行加密獲得頭部加密數(shù)據(jù)。
具體地,電子設備可采用隨機哈希算法生成隨機的第一哈希值,將該隨機的第一哈希值作為加密密鑰,進而電子設備可根據(jù)該加密密鑰將明文的頭部數(shù)據(jù)轉化為密文的頭部加密數(shù)據(jù)。生成隨機的加密密鑰可盡量避免被第三方猜解。
步驟304,創(chuàng)建具有隨機生成的文件名的新文件,并將頭部加密數(shù)據(jù)存儲在新文件中。
具體地,電子設備可采用隨機哈希算法生成隨機的第二哈希值,將該隨機的第二哈希值作為文件名創(chuàng)建新文件,進而將加密獲得的頭部加密數(shù)據(jù)存儲在該新文件中。電子設備也可以當前時間作為隨機種子來生成隨機的文件名。創(chuàng)建具有隨機文件名的新文件來存儲頭部加密數(shù)據(jù),可進一步避免被第三方定位和破解。
步驟306,對應于原文件的文件標識記錄加密密鑰以及新文件的第一存儲路徑。
具體地,電子設備可在私有數(shù)據(jù)庫中以原文件的文件標識為索引的記錄中存儲加密密鑰以及新文件的第一存儲路徑,以便在解密時根據(jù)第一存儲路徑定位到頭部加密數(shù)據(jù)所在的文件,并根據(jù)加密密鑰對頭部加密數(shù)據(jù)進行解密。
本實施例中,生成隨機的加密密鑰來對頭部數(shù)據(jù)進行加密,可避免加密密鑰被第三方猜解;進而生成隨機的文件名來存儲頭部加密數(shù)據(jù),可防止頭部加密數(shù)據(jù)被輕易獲取到,從而進一步保障文件被加密后的安全性。
在一個實施例中,原文件為流媒體應用所下載的流媒體文件;第一存儲路徑、各個第二存儲路徑以及順序對應于文件標識記錄在流媒體應用對應的私有數(shù)據(jù)庫中。
如圖4所示,在一個實施例中,一種文件加密方法,具體包括如下步驟:
步驟402,通過流媒體應用下載待加密的流媒體文件。
具體地,電子設備可通過流媒體應用連接到流媒體服務器,從而從流媒體服務器下載流媒體文件作為待加密的流媒體文件。其中流媒體應用是指具有處理流媒體能力的應用,比如流媒體播放應用或者流媒體編輯應用等。
步驟404,對流媒體文件的頭部數(shù)據(jù)加密獲得頭部加密數(shù)據(jù)并存儲;頭部數(shù)據(jù)包括流媒體文件的元數(shù)據(jù)。
具體地,電子設備可生成隨機的加密密鑰,根據(jù)加密密鑰對原文件的頭部數(shù)據(jù)進行加密獲得頭部加密數(shù)據(jù)。電子設備可創(chuàng)建具有隨機生成的文件名的新文件,并將頭部加密數(shù)據(jù)存儲在新文件中。
步驟406,將流媒體文件中除頭部數(shù)據(jù)的文件數(shù)據(jù)分割為多個片段。
具體地,電子設備可按照預設的單個片段大小將原文件中除頭部數(shù)據(jù)的文 件數(shù)據(jù)分割為多個片段,電子設備也可以將原文件中除頭部數(shù)據(jù)的文件數(shù)據(jù)等量或隨機分割為預設數(shù)量的多個片段。
步驟408,將分割出的各個片段進行混淆片段順序的存儲。
步驟410,對應于流媒體文件的文件標識記錄頭部加密數(shù)據(jù)的第一存儲路徑、各個片段的第二存儲路徑以及各個片段在流媒體文件中的順序。
具體地,電子設備可在流媒體應用對應的私有數(shù)據(jù)庫中創(chuàng)建一條以文件標識為索引的記錄,在該記錄中存儲加密密鑰、第一存儲路徑、第二存儲路徑以及各片段在流媒體文件中的順序。
步驟412,刪除流媒體文件。
具體地,電子設備在完成對流媒體文件的加密后,刪除流媒體文件。在一個實施例中,電子設備可在下載流媒體文件后播放流媒體文件,同時執(zhí)行上述步驟402至步驟410,并在播放完畢后刪除下載的流媒體文件。
本實施例中,針對流媒體文件版權保護的需求,采用本發(fā)明實施例的文件加密方法可在保證加密性能的同時提高加密效率,進而提高對流媒體文件進行處理的效率。
如圖5所示,在一個實施例中,提供了一種文件解密方法,本實施例以該方法應用于上述圖1中的電子設備來舉例說明。該方法具體包括如下步驟:
步驟502,讀取與待解密的文件標識對應的用于存儲頭部加密數(shù)據(jù)的第一存儲路徑。
具體地,電子設備可在實施上述文件加密方法后,再在需要使用原文件時實施本實施例的文件解密方法來還原出原文件。電子設備具體可獲取待解密的文件標識,從應用的私有數(shù)據(jù)庫中查找以該文件標識為索引的記錄,并從查找到的記錄中讀取第一存儲路徑和加密密鑰。第一存儲路徑是存儲頭部加密數(shù)據(jù)的路徑。
步驟504,根據(jù)第一存儲路徑獲取頭部加密數(shù)據(jù)。
具體地,電子設備根據(jù)第一存儲路徑查找到相應文件目錄下的文件,進而從查找到的文件中讀取頭部加密數(shù)據(jù)。
步驟506,解密頭部加密數(shù)據(jù),獲得頭部數(shù)據(jù);頭部數(shù)據(jù)包括原文件的元數(shù)據(jù)。
具體地,電子設備可根據(jù)讀取的加密密鑰從頭部加密數(shù)據(jù)中解密出頭部數(shù)據(jù)。解密時可采用二進制解密算法進行解密,具體可采用aes算法或者des算法等二進制解密算法。
步驟508,讀取與文件標識對應的混淆片段順序存儲的各個片段的第二存儲路徑和各個片段在原文件中的順序。
具體地,電子設備在加密原文件時,將原文件中除頭部數(shù)據(jù)的文件數(shù)據(jù)分割為多個片段,并將分割出的各個片段進行混淆片段順序的存儲,從而使得各個片段被存儲后無法從存儲路徑分辨出各個片段在原文件中的順序,并將第二存儲路徑和各個片段在原文件中的順序記錄下來,在解密時讀取。
步驟510,根據(jù)第二存儲路徑獲取各個片段。
具體地,電子設備根據(jù)讀取的第二存儲路徑查找到相應文件目錄下的文件,并在查找到的文件中獲取從原文件中分割出的各個片段。
步驟512,根據(jù)順序將各個片段與頭部數(shù)據(jù)拼接,獲得原文件。
具體地,電子設備創(chuàng)建一個臨時文件,在該臨時文件中寫入頭部數(shù)據(jù),并在頭部數(shù)據(jù)之后按照順序將各個片段寫入臨時文件,從而將頭部數(shù)據(jù)和各個片段拼接,獲得完整的原文件。
在一個實施例中,電子設備還可以讀取與文件標識對應存儲的原文件的文件校驗值,從而根據(jù)讀取的文件校驗值進行校驗,若校驗通過則完成解密;若校驗未通過則發(fā)出解密出錯提示信息。具體在校驗時可計算拼接獲得的原文件的文件校驗值,并將計算出的文件校驗值與讀取的文件校驗值進行比較,若一致則校驗通過,若不一致則校驗未通過。
上述文件解密方法,利用記錄的第一存儲路徑定位到頭部加密數(shù)據(jù)并進行解密而獲得頭部數(shù)據(jù),利用記錄的第二存儲路徑定位并獲取到各個片段,進而利用記錄的順序將頭部數(shù)據(jù)和各片段進行拼接,獲得原文件。解密時僅需對頭部加密數(shù)據(jù)進行解密計算,解密計算的數(shù)據(jù)量小,片段拼接的時間成本少,相較于目前全文二進制解密的解密方式,通過該文件解密方法可顯著減少對中央 處理器的消耗,解密時間成本低。而且元數(shù)據(jù)用于描述原文件中的數(shù)據(jù)內(nèi)容,加密的頭部數(shù)據(jù)覆蓋原文件的元數(shù)據(jù),可防止惡意用戶利用元數(shù)據(jù)定位到加密的文件以及獲取到通過混淆片段順序存儲的各個片段來進行加密破解。
在一個實施例中,原文件為流媒體文件;第一存儲路徑、第二存儲路徑以及順序讀取自流媒體應用對應的私有數(shù)據(jù)庫。步驟512之后,還包括:播放原文件,并在播放完畢后清除原文件。
具體地,電子設備可在需要播放流媒體文件時,根據(jù)相應的文件標識進行解密獲得流媒體文件,并播放該流媒體文件。該流媒體文件為臨時文件,在播放完畢后該流媒體文件被清除,若需要再次播放則重新進行解密播放。
本實施例中,將文件解密方法應用于流媒體文件的解密,可在保證加密性能的同時提高解密效率,在需要播放流媒體文件時進行即時地解密,不會影響到播放流媒體文件的初次響應時間和播放流暢度,既能起到保護流媒體文件的效果,又大大減少了加密解密帶來的額外性能消耗,兼顧了安全性和性能,同時保障了版權方的權益和用戶的體驗。
如圖6所示,在一個實施例中,提供了一種文件加密裝置600,包括:
原文件獲取模塊601,用于獲取待加密的原文件。
頭部數(shù)據(jù)加密模塊602,用于對原文件的頭部數(shù)據(jù)加密獲得頭部加密數(shù)據(jù)并存儲;頭部數(shù)據(jù)包括原文件的元數(shù)據(jù)。
分割模塊603,用于將原文件中除頭部數(shù)據(jù)的文件數(shù)據(jù)分割為多個片段。
混淆片段順序存儲模塊604,用于將分割出的各個片段進行混淆片段順序的存儲。
記錄模塊605,用于對應于原文件的文件標識記錄頭部加密數(shù)據(jù)的第一存儲路徑。對應于文件標識記錄各個片段的第二存儲路徑以及各個片段在原文件中的順序。
上述文件加密裝置600,在對原文件進行加密時,僅加密原文件的頭部數(shù)據(jù),加密計算的數(shù)據(jù)量小,而原文件中除頭部數(shù)據(jù)之外的文件數(shù)據(jù)則分割成多個片段后通過混淆片段順序的方式進行存儲,分割和混淆片段順序存儲的計算量小, 相較于目前全文二進制加密的加密方式,通過該文件加密裝置可顯著減少對中央處理器的消耗,加密時間成本低。記錄第一存儲路徑、第二存儲路徑和片段的順序則使得文件被加密后可被解密。而且元數(shù)據(jù)用于描述原文件中的數(shù)據(jù)內(nèi)容,加密的頭部數(shù)據(jù)覆蓋原文件的元數(shù)據(jù),可防止惡意用戶利用元數(shù)據(jù)定位到加密的文件以及獲取到通過混淆片段順序存儲的各個片段來進行加密破解。
在一個實施例中,頭部數(shù)據(jù)加密模塊602具體用于生成隨機的加密密鑰,根據(jù)加密密鑰對原文件的頭部數(shù)據(jù)進行加密獲得頭部加密數(shù)據(jù);創(chuàng)建具有隨機生成的文件名的新文件,并將頭部加密數(shù)據(jù)存儲在新文件中。
記錄模塊605還用于對應于原文件的文件標識記錄加密密鑰以及新文件的第一存儲路徑。
本實施例中,生成隨機的加密密鑰來對頭部數(shù)據(jù)進行加密,可避免加密密鑰被第三方猜解;進而生成隨機的文件名來存儲頭部加密數(shù)據(jù),可防止頭部加密數(shù)據(jù)被輕易獲取到,從而進一步保障文件被加密后的安全性。
在一個實施例中,分割模塊603具體用于按照預設的單個片段大小將原文件中除頭部數(shù)據(jù)的文件數(shù)據(jù)分割為多個片段。
在一個實施例中,分割模塊603具體用于將原文件中除頭部數(shù)據(jù)的文件數(shù)據(jù)等量或隨機分割為預設數(shù)量的多個片段。
在一個實施例中,混淆片段順序存儲模塊604具體用于為每個片段分配隨機的新文件名,并在指定文件目錄或者隨機創(chuàng)建的文件目錄下將每個片段存儲在以相應的新文件名命名的片段文件中。
在一個實施例中,原文件為流媒體應用所下載的流媒體文件;第一存儲路徑、各個第二存儲路徑以及順序對應于文件標識記錄在流媒體應用對應的私有數(shù)據(jù)庫中。如圖7所示,文件加密裝置600還包括文件刪除模塊606,用于刪除流媒體文件。
本實施例中,針對流媒體文件版權保護的需求,采用本發(fā)明實施例的文件加密方法可在保證加密性能的同時提高加密效率,進而提高對流媒體文件進行處理的效率。
如圖8所示,在一個實施例中,提供了一種文件解密裝置800,包括第一讀取模塊801、頭部加密數(shù)據(jù)獲取模塊802、頭部加密數(shù)據(jù)解密模塊803、第二讀取模塊804、片段獲取模塊805和文件拼接模塊806。
第一讀取模塊801,用于讀取與待解密的文件標識對應的用于存儲頭部加密數(shù)據(jù)的第一存儲路徑。
頭部加密數(shù)據(jù)獲取模塊802,用于根據(jù)第一存儲路徑獲取頭部加密數(shù)據(jù)。
頭部加密數(shù)據(jù)解密模塊803,用于解密頭部加密數(shù)據(jù),獲得頭部數(shù)據(jù);頭部數(shù)據(jù)包括原文件的元數(shù)據(jù)。
第二讀取模塊804,用于讀取與文件標識對應的混淆片段順序存儲的各個片段的第二存儲路徑和各個片段在原文件中的順序。
片段獲取模塊805,用于根據(jù)第二存儲路徑獲取各個片段。
文件拼接模塊806,用于根據(jù)順序將各個片段與頭部數(shù)據(jù)拼接,獲得原文件。
上述文件解密裝置800,利用記錄的第一存儲路徑定位到頭部加密數(shù)據(jù)并進行解密而獲得頭部數(shù)據(jù),利用記錄的第二存儲路徑定位并獲取到各個片段,進而利用記錄的順序將頭部數(shù)據(jù)和各片段進行拼接,獲得原文件。解密時僅需對頭部加密數(shù)據(jù)進行解密計算,解密計算的數(shù)據(jù)量小,片段拼接的時間成本少,相較于目前全文二進制解密的解密方式,通過該文件解密裝置可顯著減少對中央處理器的消耗,解密時間成本低。而且元數(shù)據(jù)用于描述原文件中的數(shù)據(jù)內(nèi)容,加密的頭部數(shù)據(jù)覆蓋原文件的元數(shù)據(jù),可防止惡意用戶利用元數(shù)據(jù)定位到加密的文件以及獲取到通過混淆片段順序存儲的各個片段來進行加密破解。
在一個實施例中,原文件為流媒體文件;第一存儲路徑、第二存儲路徑以及順序讀取自流媒體應用對應的私有數(shù)據(jù)庫。如圖9所示,文件解密裝置800還包括:播放模塊807和文件清除模塊808。
播放模塊807,用于播放原文件。
文件清除模塊808,用于在播放原文件完畢后清除原文件。
本實施例中,將文件解密方法應用于流媒體文件的解密,可在保證加密性能的同時提高解密效率,在需要播放流媒體文件時進行即時地解密,不會影響到播放流媒體文件的初次響應時間和播放流暢度,既能起到保護流媒體文件的 效果,又大大減少了加密解密帶來的額外性能消耗,兼顧了安全性和性能,同時保障了版權方的權益和用戶的體驗。
本領域普通技術人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(read-onlymemory,rom)等非易失性存儲介質,或隨機存儲記憶體(randomaccessmemory,ram)等。
以上所述實施例的各技術特征可以進行任意的組合,為使描述簡潔,未對上述實施例中的各個技術特征所有可能的組合都進行描述,然而,只要這些技術特征的組合不存在矛盾,都應當認為是本說明書記載的范圍。
以上所述實施例僅表達了本發(fā)明的幾種實施方式,其描述較為具體和詳細,但并不能因此而理解為對發(fā)明專利范圍的限制。應當指出的是,對于本領域的普通技術人員來說,在不脫離本發(fā)明構思的前提下,還可以做出若干變形和改進,這些都屬于本發(fā)明的保護范圍。因此,本發(fā)明專利的保護范圍應以所附權利要求為準。