一種文件加密方法、裝置及設(shè)備的制造方法
【專利摘要】本發(fā)明實施例提供了一種文件加密方法、裝置及設(shè)備,所述方法包括:獲取待加密文件的內(nèi)存大?。辉谒鰞?nèi)存大小大于第一預(yù)設(shè)閾值時,將所述待加密文件分為N個小塊,其中,所述N為大于1的整數(shù);對所述N個小塊中的M個小塊按照第一加密方式進行加密,并對所述N個小塊中除所述M個小塊之外的其他小塊按照第二加密方式進行加密,所述M為小于所述N的正整數(shù)。通過本發(fā)明實施例可對待加密文件的一部分采用第一加密方式加密,另一部分采用第二加密方式進行加密,因此,采用了兩種加密方式對待加密文件進行加密,增大了待加密文件被破解的難度,從而,提高安全性。
【專利說明】
_種文件加密方法、裝置及設(shè)備
技術(shù)領(lǐng)域
[0001 ]本發(fā)明涉及數(shù)據(jù)安全技術(shù)領(lǐng)域,具體涉及一種文件加密方法、裝置及設(shè)備。
【背景技術(shù)】
[0002]隨著信息技術(shù)的快速發(fā)展,終端(如手機、平板電腦等等)使用越來越頻繁。在當今時代,計算機存儲的信息越來越多,而且數(shù)據(jù)的安全也越來越重要。因而,當存儲到各種設(shè)備和在服務(wù)中使用時,數(shù)據(jù)必須要恰當加密,例如,將數(shù)據(jù)存儲到云端時,更需要這樣加密,因為存儲在云端中的數(shù)據(jù)總時不時地會存在被惡意攻擊的可能。
[0003]通常對數(shù)據(jù)加密,可以采用傳統(tǒng)加密算法,例如高級加密算法(AdvancedEncrypt1n StandarcUAES)或者數(shù)據(jù)加密標準(Data Encrypt1n Standard,DES)等等,但是,該加密方式較容易被破解,因而,降低了文件的安全性。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例提供了一種文件加密方法、裝置及設(shè)備,可以提高文件的安全性。
[0005]本發(fā)明實施例第一方面提供了一種文件加密方法,包括:
[0006]獲取待加密文件的內(nèi)存大?。?br>[0007]在所述內(nèi)存大小大于第一預(yù)設(shè)閾值時,將所述待加密文件分為N個小塊,其中,所述N為大于I的整數(shù);
[0008]對所述N個小塊中的M個小塊按照第一加密方式進行加密,并對所述N個小塊中除所述M個小塊之外的其他小塊按照第二加密方式進行加密,所述M為小于所述N的正整數(shù)。
[0009]結(jié)合本發(fā)明實施例的第一方面的實施方式,在第一方面的第一種可能的實施方式中,所述將所述待加密文件分為N個小塊,包括:
[0010]在所述內(nèi)存大小被第二預(yù)設(shè)閾值整除時,將所述待加密文件分為N個小塊,且每一小塊的內(nèi)存大小相等;
[0011]或者,
[0012]在所述內(nèi)存大小不被所述第二預(yù)設(shè)閾值整除時,將所述待加密文件分為N個小塊,其中,所述N個小塊中部分小塊的內(nèi)存大小相等。
[0013]結(jié)合本發(fā)明實施例的第一方面的實施方式,在第一方面的第二種可能的實施方式中,所述將所述待加密文件分為N個小塊,包括:
[0014]在所述內(nèi)存大小為偶數(shù)時,將所述待加密文件分成內(nèi)存大小相等的第一部分和第二部分;
[0015]將所述第一部分分為內(nèi)存大小相等的P個小塊,并將所述第二部分分為內(nèi)存大小均不相等的N-P個小塊,其中,所述P為小于所述N的正整數(shù)。
[0016]結(jié)合本發(fā)明實施例的第一方面的第二種可能的實施方式,在第一方面的第三種可能的實施方式中,所述P為所述第一部分被按照第一預(yù)設(shè)大小進行平均分塊后得到的小塊數(shù)目,或者,所述P為用戶指定的數(shù)值。
[0017]結(jié)合本發(fā)明實施例的第一方面、第一方面的第一種至第三種中任一種可能的實施方式,在第一方面的第四種可能的實施方式中,所述對所述N個小塊中的M個小塊按照第一加密方式進行加密,包括:
[0018]將所述N個小塊中的M個小塊中的每一小塊分別劃分為K個小塊,得到M*K個小塊,其中,所述K為大于I的整數(shù),其中,所述K為由用戶指定的數(shù)值,或者,所述K為所述每一小塊被按照第二預(yù)設(shè)大小進行平均分塊后得到的小塊數(shù)目;
[0019]將所述M*K個小塊中的部分小塊按照第一加密算法進行加密,并將所述M*K個小塊中除所述部分小塊之外的其他小塊按照第二加密算法進行加密。
[0020]結(jié)合本發(fā)明實施例的第一方面、第一方面的第一種至第三種中任一種可能的實施方式,在第一方面的第五種可能的實施方式中,所述將所述N個小塊中除所述M個小塊之外的其他小塊按照第二加密方式進行加密,包括:
[0021]將所述N個小塊中除所述M個小塊之外的其他小塊按照異或加密算法進行加密。
[0022]結(jié)合本發(fā)明實施例的第一方面、第一方面的第一種至第三種中任一種可能的實施方式,在第一方面的第六種可能的實施方式中,所述N為所述待加密文件被按照第三預(yù)設(shè)大小進行分塊后得到的小塊數(shù)目,或者,所述N為用戶指定的數(shù)值;
[0023]所述M為用戶指定的數(shù)值,所述M個小塊為所述N個小塊中隨機的所述M個,或者,所述M個小塊為被按照預(yù)先設(shè)置的順序選擇的M個小塊。
[0024]本發(fā)明實施例第二方面提供了一種文件加密裝置,包括:
[0025]獲取單元,用于獲取待加密文件的內(nèi)存大??;
[0026]分塊單元,用于在所述內(nèi)存大小大于第一預(yù)設(shè)閾值時,將所述待加密文件分為N個小塊,其中,所述N為大于I的整數(shù);
[0027]第一加密單元,用于對所述分塊單元分塊的所述N個小塊中的M個小塊按照第一加密方式進行加密;
[0028]第二加密單元,用于對所述N個小塊中除所述M個小塊之外的其他小塊按照第二加密方式進行加密,所述M為小于所述N的正整數(shù)。
[0029]結(jié)合本發(fā)明實施例的第二方面的實施方式,在第二方面的第一種可能的實施方式中,所述分塊單元具體用于:
[0030]在所述內(nèi)存大小被第二預(yù)設(shè)閾值整除時,將所述待加密文件分為N個小塊,且每一小塊的內(nèi)存大小相等;
[0031]或者,
[0032]在所述內(nèi)存大小不被所述第二預(yù)設(shè)閾值整除時,將所述待加密文件分為N個小塊,其中,所述N個小塊中部分小塊的內(nèi)存大小相等。
[0033]結(jié)合本發(fā)明實施例的第二方面的實施方式,在第二方面的第二種可能的實施方式中,所述分塊單元包括:
[0034]第一劃分模塊,用于在所述獲取單元獲取的所述內(nèi)存大小大于第一預(yù)設(shè)閾值且為偶數(shù)時,將所述待加密文件分成內(nèi)存大小相等的第一部分和第二部分;
[0035]第二劃分模塊,用于將所述第一劃分模塊劃分的所述第一部分分為內(nèi)存大小相等的P個小塊,并將所述第二部分分為內(nèi)存大小均不相等的N-P個小塊,其中,所述P為小于所述N的正整數(shù)。
[0036]結(jié)合本發(fā)明實施例的第二方面的第二種可能的實施方式,在第二方面的第三種可能的實施方式中,所述P為所述第一部分被按照第一預(yù)設(shè)大小進行平均分塊后得到的小塊數(shù)目,或者,所述P為用戶指定的數(shù)值。
[0037]結(jié)合本發(fā)明實施例的第二方面、第二方面的第一種至第三種中任一種可能的實施方式,在第二方面的第四種可能的實施方式中,所述第一加密單元包括:
[0038]第三劃分模塊,用于將所述N個小塊中的M個小塊中的每一小塊分別劃分為K個小塊,得到M*K個小塊,其中,所述K為大于I的整數(shù),其中,所述K為由用戶指定的數(shù)值,或者,所述K為所述每一小塊被按照第二預(yù)設(shè)大小進行平均分塊后得到的小塊數(shù)目;
[0039]第一加密模塊,用于將所述M*K個小塊中的部分小塊按照第一加密算法進行加密,并將所述M*K個小塊中除所述部分小塊之外的其他小塊按照第二加密算法進行加密。
[0040]結(jié)合本發(fā)明實施例的第二方面、第二方面的第一種至第三種中任一種可能的實施方式,在第二方面的第五種可能的實施方式中,所述第二加密單元具體用于:
[0041]將所述N個小塊中除所述M個小塊之外的其他小塊按照異或加密算法進行加密。
[0042]結(jié)合本發(fā)明實施例的第二方面、第二方面的第一種至第三種中任一種可能的實施方式,在第二方面的第六種可能的實施方式中,所述N為所述待加密文件被按照第三預(yù)設(shè)大小進行分塊后得到的小塊數(shù)目,或者,所述N為用戶指定的數(shù)值;
[0043]所述M為用戶指定的數(shù)值,所述M個小塊為所述N個小塊中隨機的所述M個,或者,所述M個小塊為被按照預(yù)先設(shè)置的順序選擇的M個小塊。
[0044]本發(fā)明實施例第三面提供了一種文件加密設(shè)備,其特征在于,包括:處理器、存儲器、通信接口和總線;
[0045]所述處理器、所述存儲器和所述通信接口通過所述總線連接并完成相互間的通信;所述存儲器存儲可執(zhí)行程序代碼;所述處理器通過讀取所述存儲器中存儲的可執(zhí)行程序代碼來運行與所述可執(zhí)行程序代碼對應(yīng)的程序,以用于執(zhí)行一種數(shù)據(jù)處理方法;其中,所述方法包括:
[0046]獲取待加密文件的內(nèi)存大?。?br>[0047]在所述內(nèi)存大小大于第一預(yù)設(shè)閾值時,將所述待加密文件分為N個小塊,其中,所述N為大于I的整數(shù);
[0048]對所述N個小塊中的M個小塊按照第一加密方式進行加密,并對所述N個小塊中除所述M個小塊之外的其他小塊按照第二加密方式進行加密,所述M為小于所述N的正整數(shù)。
[0049]本發(fā)明實施例第四方面提供一種存儲介質(zhì),其中,該存儲介質(zhì)用于存儲應(yīng)用程序,所述應(yīng)用程序用于在運行時執(zhí)行本發(fā)明實施例的所述的一種文件加密方法。
[0050]本發(fā)明實施例第五方面提供一種應(yīng)用程序,其中,該應(yīng)用程序用于在運行時執(zhí)行本發(fā)明實施例所述的一種文件加密方法。
[0051]實施本發(fā)明實施例,具有如下有益效果:
[0052]通過本發(fā)明實施例獲取待加密文件的內(nèi)存大小,在該內(nèi)存大小大于第一預(yù)設(shè)閾值時,將待加密文件分為N個小塊,其中,該N為大于I的整數(shù),對該N個小塊中的M個小塊按照第一加密方式進行加密,并對該N個小塊中除該M個小塊之外的其他小塊按照第二加密方式進行加密,該M為小于的正整數(shù)。從而,可對待加密文件的一部分采用第一加密方式加密,另一部分采用第二加密方式進行加密,因此,采用了兩種加密方式對待加密文件進行加密,增大了待加密文件被破解的難度,從而,提高安全性。
【附圖說明】
[0053]為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0054]圖1是本發(fā)明實施例提供的一種文件加密方法的第一實施例流程示意圖;
[0055]圖2是本發(fā)明實施例提供的一種文件加密方法的第二實施例流程示意圖;
[0056]圖3是本發(fā)明實施例提供的一種文件加密方法的第三實施例流程示意圖;
[0057]圖4a是本發(fā)明實施例提供的一種文件加密裝置的實施例結(jié)構(gòu)示意圖;
[0058]圖4b是本發(fā)明實施例提供的一種文件加密裝置的實施例又一結(jié)構(gòu)示意圖;
[0059]圖4c是本發(fā)明實施例提供的一種文件加密裝置的實施例又一結(jié)構(gòu)示意圖;
[0060]圖5是本發(fā)明實施例提供的一種文件加密設(shè)備的實施例結(jié)構(gòu)示意圖。
【具體實施方式】
[0061]本發(fā)明實施例提供了一種文件加密方法、裝置及設(shè)備,可以提高文件的安全性。
[0062]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0063]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0064]本發(fā)明的說明書和權(quán)利要求書及所述附圖中的術(shù)語“第一”、“第二”、“第三”和“第四”等是用于區(qū)別不同對象,而不是用于描述特定順序。此外,術(shù)語“包括”和“具有”以及它們?nèi)魏巫冃危鈭D在于覆蓋不排他的包含。例如包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備沒有限定于已列出的步驟或單元,而是可選地還包括沒有列出的步驟或單元,或可選地還包括對于這些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
[0065]在本文中提及“實施例”意味著,結(jié)合實施例描述的特定特征、結(jié)構(gòu)或特性可以包含在本發(fā)明的至少一個實施例中。在說明書中的各個位置出現(xiàn)該短語并不一定均是指相同的實施例,也不是與其它實施例互斥的獨立的或備選的實施例。本領(lǐng)域技術(shù)人員顯式地和隱式地理解的是,本文所描述的實施例可以與其它實施例相結(jié)合。
[0066]本發(fā)明實施例所描述的設(shè)備可以包括智能手機(如Android手機、1S手機、Windows Phone手機等)、平板電腦、掌上電腦、筆記本電腦、移動互聯(lián)網(wǎng)設(shè)備(MID,MobileInternet Devices)或穿戴式設(shè)備等,上述設(shè)備僅是舉例,而非窮舉,包含但不限于上述設(shè)備。
[0067]本發(fā)明一種文件加密方法的一個實施例,一種文件加密方法可包括:獲取待加密文件的內(nèi)存大小;在所述內(nèi)存大小大于第一預(yù)設(shè)閾值時,將所述待加密文件分為N個小塊,其中,所述N為大于I的整數(shù);對所述N個小塊中的M個小塊按照第一加密方式進行加密,并對所述N個小塊中除所述M個小塊之外的其他小塊按照第二加密方式進行加密,所述M為小于所述N的正整數(shù)。
[0068]請參閱圖1,為本發(fā)明實施例提供的一種文件加密方法的第一實施例流程示意圖。本實施例中所描述的文件加密方法,包括以下步驟:
[0069]101、獲取待加密文件的內(nèi)存大小。
[0070]本發(fā)明實施例中,待加密文件可包括但不僅限于:圖片文件、視頻文件、音頻文件、word文本文件、緩存數(shù)據(jù)文件、壓縮包文件、文件夾文件等等。進一步地,待加密文件還可為已經(jīng)加密過的文件。具體地,可讀取待加密文件,并獲取該待加密文件的內(nèi)存大小,其中,可從待加密文件的屬性信息中獲取該待加密文件的內(nèi)存大小,例如,在待加密文件為一張圖片時,不僅可從該圖片的屬性信息中得到圖片的內(nèi)存大小,還可以得到該圖片的格式。
[0071]可選地,待加密文件可為I個或者多個,其中,該待加密文件可由用戶通過觸控操作進行選擇的文件,例如,用戶在對圖片加密時,可從圖片庫中對需選取的至少一張圖片進行觸控操作,將選取的該至少一張圖片作為待加密文件。
[0072]102、在所述內(nèi)存大小大于第一預(yù)設(shè)閾值時,將所述待加密文件分為N個小塊,其中,所述N為大于I的整數(shù)。
[0073]本發(fā)明實施例中,可判斷該待加密文件的內(nèi)存大小是否大于第一預(yù)設(shè)閾值,其中,第一預(yù)設(shè)閾值可為:5001^、5011^、7501^、8001^、8011^、801.111^、1]\1等等。在待加密文件的內(nèi)存大小大于第一預(yù)設(shè)閾值時,將待加密文件分為N個小塊,該N為大于I的整數(shù)。
[0074]可選地,在待加密文件的內(nèi)存大小大于第一預(yù)設(shè)閾值時,可按照隨機方式將待加密文件分為N個小塊。進一步地,可將待加密文件分為N個小塊,每一小塊的內(nèi)存大小相等。
[0075]可選地,在該待加密文件的內(nèi)存大小小于第一預(yù)設(shè)閾值時,可對待加密文件進行直接加密。實際應(yīng)用中,若待加密文件較小,則采用復(fù)雜度較高的加密算法時,也不會太影響待加密文件的加密速度,因而,可考慮在待加密文件的內(nèi)存大小小于某個閾值時,對該待加密文件直接進行加密。
[0076]進一步可選地,在待加密文件的內(nèi)存大小大于第一預(yù)設(shè)閾值時,可判斷該內(nèi)存大小是否可被第二預(yù)設(shè)閾值整除,在待加密文件的內(nèi)存大小可被第二預(yù)設(shè)閾值整除時,將該待加密文件平均分成N等份,得到N個小塊。在待加密文件的內(nèi)存大小不被第二預(yù)設(shè)閾值整除時,可將待加密文件分成N個小塊,該N個小塊中只有部分小塊的內(nèi)存大小相等,特殊地,N個小塊中有N-1個小塊的內(nèi)存大小相等,剩下的I個小塊不與該N-1個小塊的內(nèi)存大小相等。上述第二預(yù)設(shè)閾值可為任一整數(shù),可選地,第二預(yù)設(shè)閾值為16,例如,對于DES加密方式來說,最小加密單元(待加密文件的大小)需為16bit的整數(shù)倍,即采用DES對待加密文件進行加密時,文件的大小得為16bit的整數(shù)倍,其中,第二預(yù)設(shè)閾值的具體大小可由用戶根據(jù)對待加密文件進行加密時采用的加密算法決定。具體地,在待加密文件的內(nèi)存大小大于第一預(yù)設(shè)閾值時,且待加密文件的內(nèi)存大小可被第二預(yù)設(shè)閾值整除時,可將該待加密文件平均分成N等份,具體實現(xiàn)中,N的大小可由用戶設(shè)置,即用戶指定的數(shù)值。進一步地,N還可為待加密文件按照被按照第三預(yù)設(shè)大小進行分塊后得到的小塊數(shù)目,其中,第三預(yù)設(shè)大小可為4kb、8kb、16kb、512b等等,例如,N可為將待加密文件按照每4kb為一個小塊進行分塊得到的小塊數(shù)目。具體實施過程中,如何判斷待加密文件的內(nèi)存大小能否被第二預(yù)設(shè)閾值整除呢,可將內(nèi)存大小轉(zhuǎn)化為以kb為單位進行表示,然后判斷該轉(zhuǎn)化的數(shù)字可否被第二預(yù)設(shè)閾值整除,在轉(zhuǎn)化后的數(shù)字帶有小數(shù)點時,則可對該轉(zhuǎn)后的數(shù)字進行取整,然后,判斷該整數(shù)可否被第二預(yù)設(shè)閾值整除。以第二預(yù)設(shè)閾值為4 O 9 6加以說明,例如,待加密文件的內(nèi)存大小為4M,則4M = 4*1024kb = 4096kb,則該待加密文件的內(nèi)存大小可被4096整除,又例如,待加密文件的大小為4095kb,則該待加密文件的內(nèi)存大小不可被4096整除,又例如,4.113M =4.113*1024吐=4211.712吐,取整后得到4211吐,那么,4211不可被4096整除,那么,則該待加密文件的內(nèi)存大小不可被4096整除。進一步地,上述N可由第二預(yù)設(shè)閾值確定,例如,N為待加密文件的內(nèi)存大小與第二預(yù)設(shè)閾值之比,或者,N為待加密文件的內(nèi)存大小與第二預(yù)設(shè)閾值的約數(shù)之比,例如,若第二預(yù)設(shè)閾值為4096,待加密文件的內(nèi)存大小為IM時,那么,該IM= 1024kb = 1024*1024b,那么,該IM可被第二預(yù)設(shè)閾值整除,那么,Ν=1Μ/4096,或者,N =1M/8等等。上述在待加密文件的內(nèi)存大小不被第二預(yù)設(shè)閾值整除時,可將待加密文件分成N個小塊,該N個小塊中只有部分小塊的內(nèi)存大小相等,例如,在待加密文件不能被4整除的情況下,可將待加密文件按照每4kb大小的小塊進行分割,并將該最后那個不是4kb的小塊作為單獨的一個小塊。
[0077]103、對所述N個小塊中的M個小塊按照第一加密方式進行加密,將所述N個小塊中除所述M個小塊之外的其他小塊按照第二加密方式進行加密,所述M為小于所述N的正整數(shù)。
[0078]本發(fā)明實施例中,]?可為用戶指定的數(shù)值,M個小塊可為N個小塊中的任意M個小塊,或者,M個小塊為被按照預(yù)先設(shè)置的順序選擇的M個小塊,可對N個小塊進行編號,那么,預(yù)先設(shè)置的順序可為第I個到第M個、第2個到第M+1個,等等,預(yù)先設(shè)置的順序還可為采樣順序,例如,以2為采樣間隔肩個小塊可為:2,4,6,8,-_,21,其中肩為正整數(shù)且小于N。其中,可對M個小塊按照第一加密方式進行加密,將該N個小塊中的剩余N-M個小塊按照第二加密方式進行加密。其中,第一加密方式可包含一種加密算法或者多種加密算法,例如,將上述M個小塊均按照RSA加密算法進行加密,或者,可將M個小塊中的某部分小塊按照RSA加密算法進行加密和該M個小塊中除了該某部分小塊外的其他小塊按照異或加密算法進行加密。同理,第二加密方式可包含一種加密算法或者多種加密算法,例如,將上述N-M個小塊均按照RSA加密算法進行加密,或者,可將N-M個小塊中的某部分小塊按照RSA加密算法進行加密和該N-M個小塊中除了該某部分小塊外的其他小塊按照異或加密算法進行加密。
[0079]可選地,第一加密方式中所采用的加密算法的復(fù)雜度可大于第二加密方式中所采用的加密算法,或者,第二加密方式中采用的加密算法的復(fù)雜度大于第一加密方式中采用的加密算法。
[0080]可選地,第一加密方式可采用的加密算法可包括但不僅限于:高級加密算法、RSA加密算法、數(shù)據(jù)加密標準、3DES(Triple DES)、RC2、RC4、國際數(shù)據(jù)加密算法(Internat1nalData Encrypt1n Algorithm,IDEA)、異或加密算法等等,第二加密方式可采用的加密算法可包括但不僅限于:高級加密算法、RSA加密算法、數(shù)據(jù)加密標準、3DES、RC2、RC4、IDEA、異或加密算法等等,可選地,第一加密方式采用的加密算法不同于第二加密方式采用的加密算法。
[°081 ] 一個具體實實進行說明,在第一預(yù)設(shè)閾值為512kb,第二預(yù)設(shè)閾值為4096,在待加密文件的大小可被第二預(yù)設(shè)閾值整除時,第一加密方式可為將第一小塊和最后一個小塊按照AES加密算法進行加密,第二加密方式為對其余的小塊繼續(xù)劃分為多個等分,然后,對第一個小塊進行AES加密算法進行加密,其他小塊按照異或加密算法進行加密。在待加密文件的大小不可被第二預(yù)設(shè)閾值整除時,第一加密方式可為將第一小塊和倒數(shù)第二個小塊按照AES加密算法進行加密和最后一個小塊按照異或加密算法進行加密,第二加密方式為對其余的小塊繼續(xù)劃分為多個等分,然后,對第一個小塊進行AES加密算法進行加密,其他小塊按照異或加密算法進行加密。
[0082]假如,待加密文件的內(nèi)存大小為400kb,則待加密文件的內(nèi)存大小512kb,那么,可直接對整個待加密文件進行加密,例如,可采用RSA加密算法對整個待加密文件進行加密。因為,此時,待加密文件的內(nèi)存大小較小,因而,即使采用較為復(fù)雜的加密算法也不會對加密過程中CPU對內(nèi)存的占用率造成明顯影響。
[0083]又假如,待加密文件的內(nèi)存大小為4096kb,則該待加密文件的內(nèi)存大小大于512Kb,且該待加密文件的內(nèi)存大小能被4096整除,則可進一步將該待加密文件按照每一小塊的內(nèi)存大小為4kb的大小進行分割,具體地,把第一小塊和最后一個小塊按照第一加密方式進行加密,即將第一小塊和最后一個小塊按照AES加密算法進行加密。其余的小塊按照第二加密方式進行加密,即將其余的小塊再等分成8份,并對第一個小塊按照AES加密算法進行加密,其余小塊按照異或加密算法進行加密。因而,此時,可對分塊后得到的N個小塊盡可能地使用異或加密算法,該異或加密算法復(fù)雜度較低,因而,與采用復(fù)雜加密算法相比,可提高加密速度和降低CPU對內(nèi)存資源的占用率。
[0084]又假如,待加密文件的內(nèi)存大小為4095kb,則該待加密文件的內(nèi)存大小大于512Kb,且該待加密文件的內(nèi)存大小不能被4096整除,則可將待加密文件文件按照每塊4Kb的大小進行分割,那么,最后一個小塊的內(nèi)存大小小于4kb,可將第一個小塊和倒數(shù)第二個小塊和最后一個小塊按照第一加密方式進行加密,即將第一個小塊和倒數(shù)第二個小塊按照AES加密算法進行加密,將最后一個塊按照異或加密算法進行加密,其余的小塊按照第二加密方式進行加密,即將其余的小塊等分成8份,可對第一個小塊按照AES加密算法進行加密,其余的小塊按照異或加密算法進行加密。
[0085]需要說明的是,實施本發(fā)明實施例的過程中,需選擇盡可能多的小塊按照異或加密算法進行加密,并對其他的小塊按照異或加密算法以外的加密算法進行加密??蛇x地,可將待加密文件劃分為N個小塊,其中,采用異或加密算法進行加密的小塊的數(shù)目大于N/2且小于9N/10,如此,不僅可以提升加密速度,降低加密過程中CPU的內(nèi)存資源占用率,而且,可保障加密的安全性。
[0086]通過本發(fā)明實施例獲取待加密文件的內(nèi)存大小,在該內(nèi)存大小大于第一預(yù)設(shè)閾值時,將待加密文件分為N個小塊,其中,該N為大于I的整數(shù),對該N個小塊中的M個小塊按照第一加密方式進行加密,并對該N個小塊中除該M個小塊之外的其他小塊按照第二加密方式進行加密,該M為小于的正整數(shù)。從而,可對待加密文件的一部分采用第一加密方式加密,另一部分采用第二加密方式進行加密,因此,采用了兩種加密方式對待加密文件進行加密,增大了待加密文件被破解的難度,從而,提高安全性。進一步地,在其中一種加密方式為簡單加密方式,另一加密方式為復(fù)雜加密方式時,可提高待加密文件的加密速度,降低CPU的內(nèi)存空間占用率。
[0087]請參閱圖2,為本發(fā)明實施例提供的一種文件加密方法的第二實施例流程示意圖。本實施例中所描述的文件加密方法,包括以下步驟:
[0088]201、獲取待加密文件的內(nèi)存大小。
[0089]202、在所述內(nèi)存大小大于第一預(yù)設(shè)閾值且為偶數(shù)時,將所述待加密文件分成內(nèi)存大小相等的第一部分和第二部分。
[0090]本發(fā)明實施例中,可在判斷出待加密文件的內(nèi)存大小大于第一預(yù)設(shè)閾值之后,再判斷內(nèi)存大小是否為偶數(shù),可將內(nèi)存大小轉(zhuǎn)化為以kb單位進行表示,例如,IM= 1024kb,即,1024為偶數(shù)。若將內(nèi)存大小轉(zhuǎn)化為以kb為單位時帶小數(shù),則可對該轉(zhuǎn)化后的數(shù)進行取整,再判斷取整后的數(shù)是否為偶數(shù),例如,1.113M= 1139.712kb,那么,對1139.712進行取整,可得到1139,該1139不為偶數(shù)。在待加密文件的內(nèi)存大小為偶數(shù)時,則可將待加密文件分成內(nèi)存大小相等的第一部分和第二部分,即第一部分的內(nèi)存大小與第二部分的內(nèi)存大小相等。[0091 ] 203、將所述第一部分分為內(nèi)存大小相等的P個小塊,并將所述第二部分分為內(nèi)存大小均不相等的N-P個小塊,其中,所述N為正整數(shù)且所述P為小于所述N的正整數(shù)。
[0092]本發(fā)明實施例中,可將第一部分的內(nèi)存大小相等的P個小塊,其中,P的大小可由用戶選擇的每一小塊的內(nèi)存大小決定。具體地,可根據(jù)第一部分的內(nèi)存大小,尋找該內(nèi)存大小對應(yīng)的約數(shù),根據(jù)該約數(shù)確定P的大小,例如,內(nèi)存大小為1024kb,那么,可以確定它的一個約數(shù)32,則P=1024/32 = 32,則可將第一部分分為內(nèi)存大小為32kb的32等份。具體實現(xiàn)中,N的大小可由用戶設(shè)置,在設(shè)定了該N值之后,P的大小須小于該N,因而,對于第二部分而言,則可將該第二部分分為N-P份,則可將該第二部分分為大小均不相等的N-P個小塊,可采用隨機算法,可第二部分分為大小均不相等的N-P個小塊。其中,上述P為小于N的正整數(shù)。上述P為第一部分被按照第一預(yù)設(shè)大小進行平均分塊后得到的小塊數(shù)目,或者,P為用戶指定的數(shù)值。進一步地,P還可為待加密文件按照被按照第一預(yù)設(shè)大小進行平均分塊后得到的小塊數(shù)目,其中,第一預(yù)設(shè)大小可為4kb、8kb、16kb、512b等等。
[0093]204、對所述N個小塊中的M個小塊按照第一加密方式進行加密,并對所述N個小塊中除所述M個小塊之外的其他小塊按照第二加密方式進行加密,所述M為小于所述N的正整數(shù)。
[0094]本發(fā)明實施例中,M個小塊可為N個小塊中的任意M個小塊。其中,11為正整數(shù)且小于N??蓪個小塊按照第一加密方式進行加密,將該N個小塊中的剩余N-M個小塊按照第二加密方式進行加密。其中,第一加密方式可包含一種加密算法或者多種加密算法,例如,將上述M個小塊均按照RSA加密算法進行加密,或者,可將M個小塊中的某部分小塊按照RSA加密算法進行加密和該M個小塊中除了該某部分小塊外的其他小塊按照異或加密算法進行加密。同理,第二加密方式可包含一種加密算法或者多種加密算法,例如,將上述N-M個小塊均按照RSA加密算法進行加密,或者,可將N-M個小塊中的某部分小塊按照RSA加密算法進行加密和該N-M個小塊中除了該某部分小塊外的其他小塊按照異或加密算法進行加密。
[0095]需要說明的是,實施本發(fā)明實施例的過程中,需選擇盡可能多的小塊按照異或加密算法進行加密,并對其他的小塊按照異或加密算法以外的加密算法進行加密??蛇x地,可將待加密文件劃分為N個小塊,其中,采用異或加密算法進行加密的小塊的數(shù)目大于N/2且小于9N/10,如此,不僅可以提升加密速度,降低加密過程中CPU的內(nèi)存資源占用率,而且,可保障加密的安全性。
[0096]通過本發(fā)明實施例獲取待加密文件的內(nèi)存大小,在該內(nèi)存大小大于第一預(yù)設(shè)閾值時且為偶數(shù)時,將其待處理數(shù)據(jù)分為2等份,其中,一等份平均劃分為內(nèi)存大小相等的多個小塊,另一等份劃分為內(nèi)存大小均不相等的多個小塊,得到N個小塊,對該N個小塊中的M個小塊按照第一加密方式進行加密,并對該N個小塊中除該M個小塊之外的其他小塊按照第二加密方式進行加密,該M為小于的正整數(shù)。從而,可對待加密文件的一部分采用第一加密方式加密,另一部分采用第二加密方式進行加密,因此,采用了兩種加密方式對待加密文件進行加密,增大了待加密文件被破解的難度,從而,提高安全性。進一步地,在其中一種加密方式為簡單加密方式,另一加密方式為復(fù)雜加密方式時,可提高待加密文件的加密速度,降低(PU的內(nèi)存空間占用率。
[0097]請參閱圖3,為本發(fā)明實施例提供的一種文件加密方法的第三實施例流程示意圖。本實施例中所描述的文件加密方法,包括以下步驟:
[0098]301、獲取待加密文件的內(nèi)存大小。
[0099]302、在所述內(nèi)存大小大于第一預(yù)設(shè)閾值時,將所述待加密文件分為N個小塊,其中,所述N為大于I的整數(shù)。
[0100]303、將所述N個小塊中的M個小塊中的每一小塊分別劃分為K個小塊,得到M*K個小塊,其中,所述K為大于I的整數(shù),所述M為小于所述N的整數(shù)。
[0101]本發(fā)明實施例中,可繼續(xù)對M個小塊中的每一小塊作進一步劃分,其中,每一小塊可分別被劃分為K個小塊。該K個小塊的內(nèi)存大小可相等,或者K個小塊的內(nèi)存大小可不相等,或者,該K個小塊的內(nèi)存大小可部分相等。進一步地,在將M個小塊中的每一小塊劃分為K個小塊的過程中,可對M個小塊中的部分小塊按照平均分割方法進行劃分,那么,由該方式得到的每個小塊中的每一小塊的內(nèi)存大小相等。針對M個小塊中除了部分小塊之外的其他小塊,在將這部分中每一小塊劃分為K個小塊的過程中,可設(shè)置小塊的最小內(nèi)存大小或者最大內(nèi)存大小。例如,將某個小塊劃分為K個小塊的過程中,可設(shè)置K個小塊中每一小塊的最小內(nèi)存大小,則K個小塊的內(nèi)存大小均大于該最小內(nèi)存大小,或者,將某個小塊劃分為K個小塊的過程中,可設(shè)置K個小塊中每一小塊的最大內(nèi)存大小,則該K個小塊的內(nèi)存大小均小于該最小內(nèi)存大小?;谏鲜龇绞?,在對M個小塊中的每一小塊分別劃分為K個小塊,可得到M*K個小塊,其中,K為大于I的整數(shù)。上述K為M個小塊中的每一小塊被按照第三預(yù)設(shè)大小進行平均分塊后得到的小塊數(shù)目,或者,K為用戶指定的數(shù)值。進一步地,K還可為M個小塊中的每一小塊按照被按照第三預(yù)設(shè)大小進行平均分塊后得到的小塊數(shù)目,其中,第三預(yù)設(shè)大小可為4kb、8kb、16kb、512b 等等。
[0102]304、將所述M*K個小塊中的部分小塊按照第一加密算法進行加密,并將所述M*K個小塊中除所述部分小塊之外的其他小塊按照第二加密算法進行加密。
[0103]本發(fā)明實施例中,可對M*K個小塊中的部分小塊按照第一加密算法進行加密,中部分小塊中含有的小塊個數(shù)可由系統(tǒng)默認或者用戶自行設(shè)置,該部分小塊可從M*K個小塊中隨機選取,或者,由用戶指定。
[0104]305、將所述N個小塊中除所述M個小塊之外的其他小塊按照異或加密算法進行加
LU O
[0105]本發(fā)明實施例中,可對N個小塊中除了M個小塊之外的其他小塊按照異或加密算法進行加密,從而,與其他加密算法相比,可降低加密過程中的算法復(fù)雜度,不僅縮短了完成加密的時間,更重要的是,降低了CPU對內(nèi)存資源的占用率。
[0106]需要說明的是,實施本發(fā)明實施例的過程中,需選擇盡可能多的小塊按照異或加密算法進行加密,并對其他的小塊按照異或加密算法以外的加密算法進行加密。可選地,可將待加密文件劃分為N個小塊,其中,采用異或加密算法進行加密的小塊的數(shù)目大于N/2且小于9N/10,如此,不僅可以提升加密速度,降低加密過程中CPU的內(nèi)存資源占用率,而且,可保障加密的安全性。
[0107]通過本發(fā)明實施例獲取待加密文件的內(nèi)存大小,在該內(nèi)存大小大于第一預(yù)設(shè)閾值時,將待加密文件分為N個小塊,其中,該N為大于I的整數(shù),對該N個小塊中的M個小塊繼續(xù)劃分得到M*K個小塊,對該M*K個小塊中的部分小塊按照第一加密進行加密,其他小塊按照第二加密算法進行加密,并對該N個小塊除了上述M個小塊之外的其他小塊按照異或加密算法進行加密,該M為小于的正整數(shù)。從而,可對待加密文件的一部分采用第一加密方式加密,另一部分采用第二加密方式進行加密,因此,采用了兩種加密方式對待加密文件進行加密,增大了待加密文件被破解的難度,從而,提高安全性。進一步地,在其中一種加密方式為簡單加密方式,另一加密方式為復(fù)雜加密方式時,可提高待加密文件的加密速度,降低CPU的內(nèi)存空間占用率。
[0108]請參閱圖4,為本發(fā)明實施例提供的一種文件加密裝置的實施例結(jié)構(gòu)示意圖。本實施例中所描述的,包括:
[0109]獲取單元401,用于獲取待加密文件的內(nèi)存大小。
[0110]本發(fā)明實施例中,待加密文件可包括但不僅限于:圖片文件、視頻文件、音頻文件、word文本文件、緩存數(shù)據(jù)文件、壓縮包文件、文件夾文件等等。進一步地,待加密文件還可為已經(jīng)加密過的文件。可讀取待加密文件,并獲取該待加密文件的內(nèi)存大小,其中,可從待加密文件的屬性信息中獲取該待加密文件的內(nèi)存大小,在待加密文件為一張圖片時,不僅可從該圖片的屬性信息中得到圖片的內(nèi)存大小,還可以得到該圖片的格式。
[0111]可選地,待加密文件可為I個或者多個,其中,該待加密文件可由用戶通過觸控操作進行選擇的文件,例如,用戶在對圖片加密時,可從圖片庫中對需選取的至少一張圖片進行觸控操作,將選取的該至少一張圖片作為待加密文件。
[0112]分塊單元402,用于在所述內(nèi)存大小大于第一預(yù)設(shè)閾值時,將所述待加密文件分為N個小塊,其中,所述N為大于I的整數(shù)。
[0113]本發(fā)明實施例中,可判斷該待加密文件的內(nèi)存大小是否大于第一預(yù)設(shè)閾值,其中,第一預(yù)設(shè)閾值可為:5001^、5011^、7501^、8001^、8011^、801.111^、1]\1等等。在待加密文件的內(nèi)存大小大于第一預(yù)設(shè)閾值時,將待加密文件分為N個小塊,該N為大于I的整數(shù)。
[0114]可選地,在待加密文件的內(nèi)存大小大于第一預(yù)設(shè)閾值時,可按照隨機方式將待加密文件分為N個小塊。進一步地,可為將待加密文件分為N個小塊,每一小塊的內(nèi)存大小相等。
[0115]可選地,在該待加密文件的內(nèi)存大小小于第一預(yù)設(shè)閾值時,可對待加密文件進行直接加密。實際應(yīng)用中,若待加密文件較小,則采用復(fù)雜度較高的加密算法時,也不會太影響待加密文件的加密速度,因而,可考慮在待加密文件的內(nèi)存大小小于某個閾值時,對該待加密文件直接進行加密。
[0116]進一步可選地,在待加密文件的內(nèi)存大小大于第一預(yù)設(shè)閾值時,可判斷該內(nèi)存大小是否可被第二預(yù)設(shè)閾值整除,在待加密文件的內(nèi)存大小可被第二預(yù)設(shè)閾值整除時,將該待加密文件平均分成N等份,得到N個小塊。在待加密文件的內(nèi)存大小不被第二預(yù)設(shè)閾值整除時,可將待加密文件分成N個小塊,該N個小塊中只有部分小塊的內(nèi)存大小相等,特殊地,N個小塊中有N-1個小塊的內(nèi)存大小相等,剩下的I個小塊不與該N-1個小塊的內(nèi)存大小相等。上述第二預(yù)設(shè)閾值可為任一整數(shù),可選地,4的整數(shù),例如,4096。具體地,在待加密文件的內(nèi)存大小大于第一預(yù)設(shè)閾值時,且待加密文件的內(nèi)存大小可被第二預(yù)設(shè)閾值整除時,可將該待加密文件平均分成N等份,具體實現(xiàn)中,N的大小可由用戶設(shè)置,或者,該N可由第二預(yù)設(shè)閾值確定。進一步地,N還可為將待加密文件按照某個固定小塊進行分塊后得到的小塊個數(shù),例如,將待加密文件按照每4kb為一個小塊進行分塊。具體實施過程中,如何判斷待加密文件的內(nèi)存大小能否被第二預(yù)設(shè)閾值整除呢,可將內(nèi)存大小轉(zhuǎn)化為以kb為單位進行表示,然后判斷該轉(zhuǎn)化的數(shù)字可否被第二預(yù)設(shè)閾值整除,在轉(zhuǎn)化后的數(shù)字帶有小數(shù)點時,則可對該轉(zhuǎn)后的數(shù)字進行取整,然后,判斷該整數(shù)可否被第二預(yù)設(shè)閾值整除。以第二預(yù)設(shè)閾值為4096加以說明,例如,待加密文件的內(nèi)存大小為4M,則4M = 4* 1024kb = 4096kb,則該待加密文件的內(nèi)存大小可被4096整除,又例如,待加密文件的大小為4095kb,則該待加密文件的內(nèi)存大小不可被4096整除,又例如,4.1131 = 4.113*1024吐=4211.712吐,取整后得到4211吐,那么,4211不可被4096整除,那么,則該待加密文件的內(nèi)存大小不可被4096整除。
[0117]例如,N為待加密文件的內(nèi)存大小與第二預(yù)設(shè)閾值之比,或者,N為待加密文件的內(nèi)存大小與第二預(yù)設(shè)閾值的約數(shù)之比,例如,若第二預(yù)設(shè)閾值為4096,待加密文件的內(nèi)存大小為IM時,那么,該lM=1024kb = 1024*1024b,那么,該IM可被第二預(yù)設(shè)閾值整除,那么,N =1M/4096,或者,N= 1M/8 等等。
[0118]又例如,在待加密文件的內(nèi)存大小不被第二預(yù)設(shè)閾值整除時,可將待加密文件分成N個小塊,該N個小塊中只有部分小塊的內(nèi)存大小相等,例如,在待加密文件不能被4整除的情況下,可將待加密文件按照每4kb大小的小塊進行分割,并將該最后那個不是4kb的小塊作為單獨的一個小塊。
[0119]第一加密單元403,用于對所述分塊單元402分塊的所述N個小塊中的M個小塊按照第一加密方式進行加密。
[0120]第二加密單元404,用于對所述N個小塊中除所述M個小塊之外的其他小塊按照第二加密方式進行加密,所述M為小于所述N的正整數(shù)。
[0121]本發(fā)明實施例中,M個小塊可為N個小塊中的任意M個小塊。其中,11為正整數(shù)且小于N。其中,可對M個小塊按照第一加密方式進行加密,將該N個小塊中的剩余N-M個小塊按照第二加密方式進行加密。其中,第一加密方式可包含一種加密算法或者多種加密算法,例如,將上述M個小塊均按照RSA加密算法進行加密,或者,可將M個小塊中的某部分小塊按照RSA加密算法進行加密和該M個小塊中除了該某部分小塊外的其他小塊按照異或加密算法進行加密。同理,第二加密方式可包含一種加密算法或者多種加密算法,例如,將上述N-M個小塊均按照RSA加密算法進行加密,或者,可將N-M個小塊中的某部分小塊按照RSA加密算法進行加密和該N-M個小塊中除了該某部分小塊外的其他小塊按照異或加密算法進行加密。
[0122]可選地,第一加密方式中所采用的加密算法的復(fù)雜度可大于第二加密方式中所采用的加密算法,或者,第二加密方式中采用的加密算法的復(fù)雜度大于第一加密方式中采用的加密算法。
[0123]可選地,第一加密方式可采用的加密算法可包括但不僅限于:高級加密算法AES、RSA加密算法、DES、3DES、RC2、RC4、IDEA、異或加密算法等等,第二加密方式可采用的加密算法可包括但不僅限于:高級加密算法、RSA加密算法、數(shù)據(jù)加密標準、3DES、RC2、RC4、IDEA、異或加密算法等等,可選地,第一加密方式采用的加密算法不同于第二加密方式采用的加密算法。
[0124]一個具體實實進行說明,在第一預(yù)設(shè)閾值為512kb,第二預(yù)設(shè)閾值為4096,在待加密文件的大小可被第二預(yù)設(shè)閾值整除時,第一加密方式可為將第一小塊和最后一個小塊按照AES加密算法進行加密,第二加密方式為對其余的小塊繼續(xù)劃分為多個等分,然后,對第一個小塊進行AES加密算法進行加密,其他小塊按照異或加密算法進行加密。在待加密文件的大小不可被第二預(yù)設(shè)閾值整除時,第一加密方式可為將第一小塊和倒數(shù)第二個小塊按照AES加密算法進行加密和最后一個小塊按照異或加密算法進行加密,第二加密方式為對其余的小塊繼續(xù)劃分為多個等分,然后,對第一個小塊進行AES加密算法進行加密,其他小塊按照異或加密算法進行加密。
[0125]假如,待加密文件的內(nèi)存大小為400kb,則待加密文件的內(nèi)存大小512Kb,那么,可直接對整個待加密文件進行加密,例如,可采用RSA加密算法對整個待加密文件進行加密。因為,此時,待加密文件的內(nèi)存大小較小,因而,即使采用較為復(fù)雜的加密算法也不會對加密過程中CPU對內(nèi)存的占用率造成明顯影響。
[0126]又假如,待加密文件的內(nèi)存大小為4096kb,則該待加密文件的內(nèi)存大小大于512Kb,且該待加密文件的內(nèi)存大小能被4096整除,則可進一步將該待加密文件按照每一小塊的內(nèi)存大小為4kb的大小進行分割,具體地,把第一小塊和最后一個小塊按照第一加密方式進行加密,即將第一小塊和最后一個小塊按照AES加密算法進行加密。其余的小塊按照第二加密方式進行加密,即將其余的小塊再等分成8份,并對第一個小塊按照AES加密算法進行加密,其余小塊按照異或加密算法進行加密。因而,此時,可對分塊后得到的N個小塊盡可能地使用異或加密算法,該異或加密算法復(fù)雜度較低,因而,與采用復(fù)雜加密算法相比,可提高加密速度和降低CPU對內(nèi)存資源的占用率。
[0127]又假如,待加密文件的內(nèi)存大小為4095kb,則該待加密文件的內(nèi)存大小大于512Kb,且該待加密文件的內(nèi)存大小不能被4096整除,則可將待加密文件文件按照每塊4Kb的大小進行分割,那么,最后一個小塊的內(nèi)存大小小于4kb,可將第一個小塊和倒數(shù)第二個小塊和最后一個小塊按照第一加密方式進行加密,即將第一個小塊和倒數(shù)第二個小塊按照AES加密算法進行加密,將最后一個塊按照異或加密算法進行加密,其余的小塊按照第二加密方式進行加密,即將其余的小塊等分成8份,可對第一個小塊按照AES加密算法進行加密,其余的小塊按照異或加密算法進行加密。
[0128]可選地,所述分塊單元402具體用于:
[0129]在所述內(nèi)存大小被第二預(yù)設(shè)閾值整除時,將所述待加密文件分為N個小塊,且每一小塊的內(nèi)存大小相等。
[0130]可選地,所述分塊單元402具體用于:
[0131]在所述內(nèi)存大小不被所述第二預(yù)設(shè)閾值整除時,將所述待加密文件分為N個小塊,其中,所述N個小塊中部分小塊的內(nèi)存大小相等。
[0132]作為一種可能的實施方式,如圖4b所示,圖4a中所描述的的分塊單元402可包括:
[0133]第一劃分模塊4021,用于在所述獲取單元401獲取的所述內(nèi)存大小大于第一預(yù)設(shè)閾值且為偶數(shù)時,將所述待加密文件分成內(nèi)存大小相等的第一部分和第二部分。
[0134]本發(fā)明實施例中,在判斷出待加密文件的內(nèi)存大小大于第一預(yù)設(shè)閾值之后,再判斷內(nèi)存大小是否為偶數(shù),可將內(nèi)存大小轉(zhuǎn)化為以kb單位進行表示,例如,lM=1024kb,SP,1024為偶數(shù)。若將內(nèi)存大小轉(zhuǎn)化為以kb為單位時帶小數(shù),則可對該轉(zhuǎn)化后的數(shù)進行取整,再判斷取整后的數(shù)是否為偶數(shù),例如,1.113M= 1139.712kb,那么,對1139.712進行取整,可得至IJ1139,該1139不為偶數(shù)。在內(nèi)存大小為偶數(shù)時,則可將待加密文件分成內(nèi)存大小相等的第一部分和第二部分,即第一部分的內(nèi)存大小與第二部分的內(nèi)存大小相等。
[0135]第二劃分模塊4022,用于將所述第一劃分模塊4021劃分的所述第一部分分為內(nèi)存大小相等的P個小塊,并將所述第二部分分為內(nèi)存大小均不相等的N-P個小塊,其中,所述P為小于所述N的正整數(shù)。
[0136]本發(fā)明實施例中,可將第一部分的內(nèi)存大小相等的P個小塊,其中,P的大小可由用戶選擇的每一小塊的內(nèi)存大小決定。具體地,可根據(jù)第一部分的內(nèi)存大小,尋找該內(nèi)存大小對應(yīng)的約數(shù),根據(jù)該約數(shù)確定P的大小,例如,內(nèi)存大小為1024kb,那么,可以確定它的一個約數(shù)32,則P=1024/32 = 32,則可將第一部分分為內(nèi)存大小為32kb的32等份。具體實現(xiàn)中,N的大小可由用戶設(shè)置,在設(shè)定了該N值之后,P的大小須小于該N,因而,對于第二部分而言,則可將該第二部分分為N-P份,則可將該第二部分分為大小均不相等的N-P個小塊,可采用隨機算法,可第二部分分為大小均不相等的N-P個小塊。其中,上述P為小于N的正整數(shù)。
[0137]可選地,如圖4c所示,圖4a中所描述的第一加密單元403可包括:
[0138]第三劃分模塊4031,用于將所述N個小塊中的M個小塊中的每一小塊分別劃分為K個小塊,得到M*K個小塊,其中,所述K為大于I的整數(shù),其中,所述K為由用戶指定的數(shù)值,或者,所述K為所述每一小塊被按照第二預(yù)設(shè)大小進行平均分塊后得到的小塊數(shù)目。
[0139]本發(fā)明實施例中,可繼續(xù)對M個小塊中的每一小塊作進一步劃分,其中,每一小塊可分別被劃分為K個小塊。該K個小塊的內(nèi)存大小可相等,或者K個小塊的內(nèi)存大小可不相等,或者,該K個小塊的內(nèi)存大小可部分相等。進一步地,在將M個小塊中的每一小塊劃分為K個小塊的過程中,可對M個小塊中的部分小塊按照平均分割方法進行劃分,那么,由該方式得到的每個小塊中的每一小塊的內(nèi)存大小相等。針對M個小塊中除了部分小塊之外的其他小塊,在將這部分中每一小塊劃分為K個小塊的過程中,可設(shè)置小塊的最小內(nèi)存大小或者最大內(nèi)存大小。例如,將某個小塊劃分為K個小塊的過程中,可設(shè)置K個小塊中每一小塊的最小內(nèi)存大小,則K個小塊的內(nèi)存大小均大于該最小內(nèi)存大小,或者,將某個小塊劃分為K個小塊的過程中,可設(shè)置K個小塊中每一小塊的最大內(nèi)存大小,則該K個小塊的內(nèi)存大小均小于該最小內(nèi)存大小。基于上述方式,在對M個小塊中的每一小塊分別劃分為K個小塊,可得到M*K個小塊,其中,K為大于I的整數(shù)。
[0140]第一加密模塊4032,用于將所述M*K個小塊中的部分小塊按照第一加密算法進行加密,并將所述M*K個小塊中除所述部分小塊之外的其他小塊按照第二加密算法進行加密。[0141 ]本發(fā)明實施例中,可對M*K個小塊中的部分小塊按照第一加密算法進行加密,中部分小塊中含有的小塊個數(shù)可由系統(tǒng)默認或者用戶自行設(shè)置,該部分小塊可從M*K個小塊中隨機選取,或者,由用戶指定。
[0142]可選地,上述第二加密單元404可具體用于:
[0143]將所述N個小塊中除所述M個小塊之外的其他小塊按照異或加密算法進行加密。
[0144]本發(fā)明實施例中,可對N個小塊中除了M個小塊之外的其他小塊按照異或加密算法進行加密,從而,與其他加密算法相比,可降低加密過程中的算法復(fù)雜度,不僅縮短了完成加密的時間,更重要的是,降低了CPU對內(nèi)存資源的占用率。
[0145]可選地,所述P為所述第一部分被按照第一預(yù)設(shè)大小進行平均分塊后得到的小塊數(shù)目,或者,所述P為用戶指定的數(shù)值。
[0146]可選地,所述N為所述待加密文件被按照第三預(yù)設(shè)大小進行分塊后得到的小塊數(shù)目,或者,所述N為用戶指定的數(shù)值;
[0147]所述M為用戶指定的數(shù)值,所述M個小塊為所述N個小塊中隨機的所述M個,或者,所述M個小塊為被按照預(yù)先設(shè)置的順序選擇的M個小塊。
[0148]需要說明的是,實施本發(fā)明實施例的過程中,需選擇盡可能多的小塊按照異或加密算法進行加密,并對其他的小塊按照異或加密算法以外的加密算法進行加密??蛇x地,可將待加密文件劃分為N個小塊,其中,采用異或加密算法進行加密的小塊的數(shù)目大于N/2且小于9N/10,如此,不僅可以提升加密速度,降低加密過程中CPU的內(nèi)存資源占用率,而且,可保障加密的安全性。
[0149]通過本發(fā)明實施例所描述的文件加密裝置,可獲取待加密文件的內(nèi)存大小,在該內(nèi)存大小大于第一預(yù)設(shè)閾值時,將待加密文件分為N個小塊,其中,該N為大于I的整數(shù),對該N個小塊中的M個小塊按照第一加密方式進行加密,并對該N個小塊中除該M個小塊之外的其他小塊按照第二加密方式進行加密,該M為小于的正整數(shù)。從而,可對待加密文件的一部分采用第一加密方式加密,另一部分采用第二加密方式進行加密,因此,采用了兩種加密方式對待加密文件進行加密,增大了待加密文件被破解的難度,從而,提高安全性。進一步地,在其中一種加密方式為簡單加密方式,另一加密方式為復(fù)雜加密方式時,可提高待加密文件的加密速度,降低CPU的內(nèi)存空間占用率。
[0150]請參閱圖5,為本發(fā)明實施例提供的一種文件處理設(shè)備的實施例結(jié)構(gòu)示意圖。本實施例中所描述的設(shè)備,包括:至少一個輸入設(shè)備1000 ;至少一個輸出設(shè)備2000;至少一個處理器3000,例如CPU ;和存儲器4000,上述輸入設(shè)備1000、輸出設(shè)備2000、處理器3000和存儲器4000通過總線5000連接。
[0151]其中,上述輸入設(shè)備1000具體可為觸控面板、物理按鍵或者鼠標。
[0152]上述輸出設(shè)備2000具體可為顯示屏。
[0153]上述存儲器4000可以是高速RAM存儲器,也可為非不穩(wěn)定的存儲器(non-volatilememory),例如磁盤存儲器。上述存儲器4000用于存儲一組程序代碼,上述輸入設(shè)備1000、輸出設(shè)備2000和處理器3000用于調(diào)用存儲器4000中存儲的程序代碼,執(zhí)行如下操作:
[0154]上述處理器3000,用于:
[0155]獲取待加密文件的內(nèi)存大??;
[0156]在所述內(nèi)存大小大于第一預(yù)設(shè)閾值時,將所述待加密文件分為N個小塊,其中,所述N為大于I的整數(shù);
[0157]對所述N個小塊中的M個小塊按照第一加密方式進行加密,并對所述N個小塊中除所述M個小塊之外的其他小塊按照第二加密方式進行加密,所述M為小于所述N的正整數(shù)。
[0158]可選地,上述處理器3000將所述待加密文件分為N個小塊,包括:
[0159]在所述內(nèi)存大小被第二預(yù)設(shè)閾值整除時,將所述待加密文件分為N個小塊,且每一小塊的內(nèi)存大小相等;
[0160]或者,
[0161]在所述內(nèi)存大小不被所述第二預(yù)設(shè)閾值整除時,將所述待加密文件分為N個小塊,其中,所述N個小塊中部分小塊的內(nèi)存大小相等。
[0162]可選地,上述處理器3000將所述待加密文件分為N個小塊,包括:
[0163]在所述內(nèi)存大小為偶數(shù)時,將所述待加密文件分成內(nèi)存大小相等的第一部分和第二部分;
[0164]將所述第一部分分為內(nèi)存大小相等的P個小塊,并將所述第二部分分為內(nèi)存大小均不相等的N-P個小塊,其中,所述P為小于所述N的正整數(shù)。
[0165]可選地,所述P為所述第一部分被按照第一預(yù)設(shè)大小進行平均分塊后得到的小塊數(shù)目,或者,所述P為用戶指定的數(shù)值。
[0166]可選地,上述處理器3000對所述N個小塊中的M個小塊按照第一加密方式進行加密,包括:
[0167]將所述N個小塊中的M個小塊中的每一小塊分別劃分為K個小塊,得到M*K個小塊,其中,所述K為大于I的整數(shù),其中,所述K為由用戶指定的數(shù)值,或者,所述K為所述每一小塊被按照第二預(yù)設(shè)大小進行平均分塊后得到的小塊數(shù)目;
[0168]將所述M*K個小塊中的部分小塊按照第一加密算法進行加密,并將所述M*K個小塊中除所述部分小塊之外的其他小塊按照第二加密算法進行加密。
[0169]可選地,上述處理器3000將所述N個小塊中除所述M個小塊之外的其他小塊按照第二加密方式進行加密,包括:
[0170]將所述N個小塊中除所述M個小塊之外的其他小塊按照異或加密算法進行加密。
[0171]可選地,所述N為所述待加密文件被按照第三預(yù)設(shè)大小進行分塊后得到的小塊數(shù)目,或者,所述N為用戶指定的數(shù)值;
[0172]所述M為用戶指定的數(shù)值,所述M個小塊為所述N個小塊中隨機的所述M個,或者,所述M個小塊為被按照預(yù)先設(shè)置的順序選擇的M個小塊。
[0173]具體實現(xiàn)中,本發(fā)明實施例中所描述的輸入設(shè)備1000、輸出設(shè)備2000和處理器3000可執(zhí)行本發(fā)明實施例提供的一種文件加密方法的第一實施例、第二實施例和第三實施例中所描述的實現(xiàn)方式,也可執(zhí)行本發(fā)明實施例提供的一種文件加密裝置的實施例中所描述的的實現(xiàn)方式,在此不再贅述。
[0174]本發(fā)明實施例還提供一種計算機存儲介質(zhì),其中,該計算機存儲介質(zhì)可存儲有程序,該程序執(zhí)行時包括上述方法實施例中記載的任意一種文件加密方法的部分或全部步驟。
[0175]在上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關(guān)描述。
[0176]需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動作順序的限制,因為依據(jù)本發(fā)明,某些步驟可以采用其他順序或者同時進行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。
[0177]在上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關(guān)描述。
[0178]在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的裝置,可通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性或其它的形式。
[0179]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
[0180]另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
[0181]所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可為個人計算機、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、只讀存儲器(R0M,Read-0nly Memory)、隨機存取存儲器(RAM,Random Access Memory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0182]以上所述,以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。
【主權(quán)項】
1.一種文件加密方法,其特征在于,包括: 獲取待加密文件的內(nèi)存大??; 在所述內(nèi)存大小大于第一預(yù)設(shè)閾值時,將所述待加密文件分為N個小塊,其中,所述N為大于I的整數(shù); 對所述N個小塊中的M個小塊按照第一加密方式進行加密,并對所述N個小塊中除所述M個小塊之外的其他小塊按照第二加密方式進行加密,所述M為小于所述N的正整數(shù)。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述待加密文件分為N個小塊,包括: 在所述內(nèi)存大小被第二預(yù)設(shè)閾值整除時,將所述待加密文件分為N個小塊,且每一小塊的內(nèi)存大小相等; 或者, 在所述內(nèi)存大小不被所述第二預(yù)設(shè)閾值整除時,將所述待加密文件分為N個小塊,其中,所述N個小塊中部分小塊的內(nèi)存大小相等。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述待加密文件分為N個小塊,包括: 在所述內(nèi)存大小為偶數(shù)時,將所述待加密文件分成內(nèi)存大小相等的第一部分和第二部分; 將所述第一部分分為內(nèi)存大小相等的P個小塊,并將所述第二部分分為內(nèi)存大小均不相等的N-P個小塊,其中,所述P為小于所述N的正整數(shù)。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述P為所述第一部分被按照第一預(yù)設(shè)大小進行平均分塊后得到的小塊數(shù)目,或者,所述P為用戶指定的數(shù)值。5.根據(jù)權(quán)利要求1至4任一項所述的方法,其特征在于,所述對所述N個小塊中的M個小塊按照第一加密方式進行加密,包括: 將所述N個小塊中的M個小塊中的每一小塊分別劃分為K個小塊,得到M*K個小塊,其中,所述K為大于I的整數(shù),其中,所述K為由用戶指定的數(shù)值,或者,所述K為所述每一小塊被按照第二預(yù)設(shè)大小進行平均分塊后得到的小塊數(shù)目; 將所述M*K個小塊中的部分小塊按照第一加密算法進行加密,并將所述M*K個小塊中除所述部分小塊之外的其他小塊按照第二加密算法進行加密。6.根據(jù)權(quán)利要求1至4任一項所述的方法,其特征在于,所述將所述N個小塊中除所述M個小塊之外的其他小塊按照第二加密方式進行加密,包括: 將所述N個小塊中除所述M個小塊之外的其他小塊按照異或加密算法進行加密。7.根據(jù)權(quán)利要求1至4任一項所述的方法,其特征在于,所述N為所述待加密文件被按照第三預(yù)設(shè)大小進行分塊后得到的小塊數(shù)目,或者,所述N為用戶指定的數(shù)值; 所述M為用戶指定的數(shù)值,所述M個小塊為所述N個小塊中隨機的所述M個,或者,所述M個小塊為被按照預(yù)先設(shè)置的順序選擇的M個小塊。8.一種文件加密裝置,其特征在于,包括: 獲取單元,用于獲取待加密文件的內(nèi)存大??; 分塊單元,用于在所述內(nèi)存大小大于第一預(yù)設(shè)閾值時,將所述待加密文件分為N個小塊,其中,所述N為大于I的整數(shù); 第一加密單元,用于對所述分塊單元分塊的所述N個小塊中的M個小塊按照第一加密方式進行加密; 第二加密單元,用于對所述N個小塊中除所述M個小塊之外的其他小塊按照第二加密方式進行加密,所述M為小于所述N的正整數(shù)。9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述分塊單元具體用于: 在所述內(nèi)存大小被第二預(yù)設(shè)閾值整除時,將所述待加密文件分為N個小塊,且每一小塊的內(nèi)存大小相等; 或者, 在所述內(nèi)存大小不被所述第二預(yù)設(shè)閾值整除時,將所述待加密文件分為N個小塊,其中,所述N個小塊中部分小塊的內(nèi)存大小相等。10.—種文件加密設(shè)備,其特征在于,包括:處理器、存儲器、通信接口和總線; 所述處理器、所述存儲器和所述通信接口通過所述總線連接并完成相互間的通信;所述存儲器存儲可執(zhí)行程序代碼;所述處理器通過讀取所述存儲器中存儲的可執(zhí)行程序代碼來運行與所述可執(zhí)行程序代碼對應(yīng)的程序,以用于執(zhí)行一種數(shù)據(jù)處理方法;其中,所述方法包括: 獲取待加密文件的內(nèi)存大?。?在所述內(nèi)存大小大于第一預(yù)設(shè)閾值時,將所述待加密文件分為N個小塊,其中,所述N為大于I的整數(shù); 對所述N個小塊中的M個小塊按照第一加密方式進行加密,并對所述N個小塊中除所述M個小塊之外的其他小塊按照第二加密方式進行加密,所述M為小于所述N的正整數(shù)。
【文檔編號】G06F21/60GK105893857SQ201610201683
【公開日】2016年8月24日
【申請日】2016年3月31日
【發(fā)明人】胡鎮(zhèn)杰
【申請人】北京金山安全軟件有限公司