專利名稱:一種文件加解密方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種通用的文件加密和解密方法,特別適合應(yīng)用于移動(dòng)終端。
背景技術(shù):
目前移動(dòng)終端的信息安全問(wèn)題越來(lái)越得到重視,而文件加密是一種保證信息安全的有效途徑。傳統(tǒng)的加密算法一般都比較復(fù)雜,且在移動(dòng)終端上的運(yùn)算速度較慢。同時(shí),目前大多數(shù)移動(dòng)終端的操作系統(tǒng),沒(méi)有提供基于文件的安全訪問(wèn)機(jī)制,無(wú)法保證文件在傳輸、 被訪問(wèn)(尤其是某些惡意的應(yīng)用程序)時(shí)的安全性。
發(fā)明內(nèi)容
本發(fā)明需要解決的技術(shù)問(wèn)題是,如何提供一種文件加解密方法,能在移動(dòng)終端上的快速執(zhí)行且相對(duì)安全。本發(fā)明第一個(gè)技術(shù)問(wèn)題這樣解決,構(gòu)造一種文件加密方法,包括以下步驟 若文件大小高于門(mén)限,將文件整體分割成一個(gè)以上分段,并保存分段信息;
用隨機(jī)算法確定每一分段中待加密數(shù)據(jù)的開(kāi)始和結(jié)束位置,并保存加密位置信息; 根據(jù)密碼生成一個(gè)加密密鑰,然后用它對(duì)待加密數(shù)據(jù)進(jìn)行加密,等長(zhǎng)替換原待加密數(shù)據(jù)后得到一個(gè)加密后的數(shù)據(jù)部分;
將密碼、分段位置信息、加密位置信息、加密數(shù)據(jù)頭識(shí)別標(biāo)記、和加密數(shù)據(jù)頭長(zhǎng)度封裝成加密數(shù)據(jù)頭;
將加密數(shù)據(jù)頭放在所述加密后的數(shù)據(jù)部分前面,合并生成加密后的文件。按照本發(fā)明提供的文件加密方法,還包括若文件大小低于門(mén)限,將文件的數(shù)據(jù)部分分割成一分段。按照本發(fā)明提供的文件加密方法,所述分割是等分分割,所述分段信息是分段總數(shù)。按照本發(fā)明提供的文件加密方法,所述加密長(zhǎng)度是固定長(zhǎng)度,所述加密位置信息是每一分段中待加密數(shù)據(jù)的開(kāi)始位置。按照本發(fā)明提供的文件加密方法,還包括判斷待加密文件的數(shù)據(jù)頭是否是有效的加密數(shù)據(jù)頭(至少包含加密數(shù)據(jù)頭識(shí)別標(biāo)記),是直接退出加密過(guò)程,否則進(jìn)行加密。按照本發(fā)明提供的文件加密方法,包括以下步驟
判斷待加密文件的數(shù)據(jù)頭是否是有效的加密數(shù)據(jù)頭,是跳過(guò)下面所有步驟直接結(jié)束, 否則進(jìn)入下面步驟;
若文件大小高于門(mén)限,將文件的數(shù)據(jù)部分等分割成一個(gè)以上分段,并保存分段數(shù); 用隨機(jī)算法確定每一分段中待加密數(shù)據(jù)的開(kāi)始位置,并保存各分段加密開(kāi)始位置信
息;
根據(jù)密碼生成一個(gè)加密密鑰,然后用它按固定長(zhǎng)度從各分段加密開(kāi)始位置向后選取固定長(zhǎng)度數(shù)據(jù)進(jìn)行加密,但如果從分段加密開(kāi)始位置到該分段結(jié)束不足固定長(zhǎng)度時(shí)則選取分段加密開(kāi)始位置到該分段結(jié)束的數(shù)據(jù)進(jìn)行加密,替換各自對(duì)應(yīng)的原待加密數(shù)據(jù)后得到一個(gè)加密后的數(shù)據(jù)部分;
將密碼、分段總數(shù)、分段加密開(kāi)始位置信息、加密數(shù)據(jù)頭識(shí)別標(biāo)記、加密數(shù)據(jù)頭長(zhǎng)度封裝成加密數(shù)據(jù)頭;
將加密數(shù)據(jù)頭放在所述加密后的數(shù)據(jù)部分前面,合并生成加密后的文件。本發(fā)明另一個(gè)技術(shù)問(wèn)題這樣解決,構(gòu)造一種文件解密方法,包括以下步驟 讀取加密文件、分離還原加密數(shù)據(jù)頭中的密碼、分段位置信息、加密位置信息;
根據(jù)分段位置信息和加密位置信息獲取加密文件中各段加密數(shù)據(jù)的開(kāi)始和結(jié)束位
置;
根據(jù)密碼生成一個(gè)加密密鑰,然后用它對(duì)加密數(shù)據(jù)進(jìn)行解密,等長(zhǎng)替換原加密數(shù)據(jù)后得到一個(gè)解密后的數(shù)據(jù)部分;
根據(jù)所述解密后的數(shù)據(jù)部分直接生成解密文件。按照本發(fā)明提供的文件解密方法,包括分離加密數(shù)據(jù)頭中的分段總數(shù),再根據(jù)等分分割算法計(jì)算個(gè)分段開(kāi)始和結(jié)束位置。按照本發(fā)明提供的文件解密方法,包括分離加密數(shù)據(jù)頭中的各分段加密開(kāi)始位置,再根據(jù)加密開(kāi)始位置到各自分段結(jié)束的長(zhǎng)度大于固定長(zhǎng)度以固定長(zhǎng)度作為加密結(jié)束位置,否則以對(duì)應(yīng)分段結(jié)束作為加密結(jié)束位置。按照本發(fā)明提供的文件解密方法,包括如果帶解密文件的數(shù)據(jù)頭包含有效的加密數(shù)據(jù)頭則進(jìn)入解密過(guò)程,否則直接退出解密過(guò)程。本發(fā)明提供的文件加解密方法,還可以根據(jù)用戶需求對(duì)下列方法或數(shù)據(jù)結(jié)構(gòu)進(jìn)行調(diào)整,讓用戶在平衡算法安全性和速度等因素時(shí)有更多的選擇空間,較現(xiàn)有技術(shù)具有以下優(yōu)勢(shì)
1.文件分段方法;
2.文件加密位置選取算法;
3.文件加密算法,獨(dú)特的偽隨機(jī)數(shù)產(chǎn)生算法;4.獨(dú)特的加密文件頭的數(shù)據(jù)結(jié)構(gòu)。
下面結(jié)合附圖和具體實(shí)施例進(jìn)一步對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。圖1是本發(fā)明加密文件的流程示意圖; 圖2是本發(fā)明解密文件的流程示意圖3是圖2中判斷是否已加密子流程示意圖。
具體實(shí)施例方式首先,說(shuō)明本發(fā)明基礎(chǔ)
(-)整個(gè)算法的設(shè)計(jì)根據(jù)文件的大小,將文件分割為若干段,然后從分割的若干段中選取若干數(shù)量的信息進(jìn)行加密操作,并保存需要的相關(guān)信息到一個(gè)自己設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu); 這種方式簡(jiǎn)單高效,具有很好的安全性,非常適合要求高效的系統(tǒng)、設(shè)備,使得用戶體驗(yàn)更佳;
5㈡加密算法的設(shè)計(jì)首先是利用自己設(shè)計(jì)的偽隨機(jī)數(shù)生成算法,生成一個(gè)用于輔助生成密鑰的偽隨機(jī)數(shù)組,然后再利用自己設(shè)計(jì)的算法將輔助數(shù)組和用戶密碼生成一個(gè)不重復(fù)的偽隨機(jī)序列,之后就是將生成的密鑰與信息的內(nèi)容進(jìn)行加密操作。第二,下面分三大部分對(duì)本發(fā)明具體實(shí)施例的實(shí)現(xiàn)進(jìn)行詳細(xì)說(shuō)明 第一部分加密
㈠加密的流程和主要操作
加密的流程,具體如附圖1所示,涉及的操作主要包括
101)讀取待加密文件的開(kāi)頭部分,看是否包含一個(gè)有效的加密數(shù)據(jù)頭。如果包含,則說(shuō)明這個(gè)文件已經(jīng)被加密了,不能再進(jìn)行加密操作了(具體識(shí)別方法請(qǐng)參看第三部分);
102)根據(jù)待解密文件的大小將其分割成不同段數(shù),并保存分段位置信息;
103)用隨機(jī)算法確定每一段中要加密的數(shù)據(jù)的開(kāi)始和結(jié)束位置。保存為加密位置信
息;
104)根據(jù)密碼生成一個(gè)加密密鑰,然后用它對(duì)要加密的數(shù)據(jù)進(jìn)行加密,這里采用的是等長(zhǎng)的加密方法,加密長(zhǎng)度默認(rèn)為0.2A ,如果從加密開(kāi)始位置到本段結(jié)束的長(zhǎng)度不足 0.2Mb,則有多長(zhǎng)就加密多長(zhǎng),得到一個(gè)加密后的中間文件;
105)將密碼、加密位置信息、加密數(shù)據(jù)頭識(shí)別信息(頭部0x00000000 ;尾部 QxFFFFFFFF )、加密數(shù)據(jù)頭長(zhǎng)度等封裝成一個(gè)特定數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)包一一加密數(shù)據(jù)頭;
106)將加密數(shù)據(jù)頭放在加密后的中間文件前面,組合成加密后的文件。㈡分段方法
分段直接采用等分分段的方式,假定文件大小力工根據(jù)所屬的范圍不同,分割的段數(shù)也可能不同,則分段如下
①if^ 1Mb------ 加密文件所有信息(1段)
②Uib<X<=1 OMb ------ 文件分割為5段
由于是等分分段,因此每段文件大小 XjN (取整),考慮到余數(shù),最后一段一般要稍微大些、等于余數(shù)和Z/i (取整)的和。注I為文件大小,F(xiàn)為文件分割的段數(shù)。㈢加密位置的選取
利用系統(tǒng)的隨機(jī)數(shù)發(fā)生器,以當(dāng)前系統(tǒng)時(shí)間作為種子,輸出為每個(gè)文件分割的
總段數(shù))個(gè)/foai類型的偽隨機(jī)數(shù),保存到數(shù)組中。隨機(jī)數(shù)的取值范圍為(^到丨,表示加
密開(kāi)始位置在該段信息中的百分比位置,根據(jù)該段大小,計(jì)算出加密信息的開(kāi)始位置。這里采用的是等長(zhǎng)的加密方法,加密長(zhǎng)度默認(rèn)為0.2描,如果從加密開(kāi)始位置到本段結(jié)束的長(zhǎng)度不足0.2M ,整段信息不足CI.2MJ的則加密整段。注(即第一段)開(kāi)始加密的位置始終為文件的第一字節(jié),即文件的開(kāi)始位
置,因?yàn)榇蠖鄶?shù)格式的文件的文件頭信息表都存放在文件的開(kāi)始位置,破壞了該文件頭信息表也就意味著破壞了文件的整體結(jié)構(gòu)信息,使該文件無(wú)法被解析。
㈣加密算法
加密算法主要思路
加密算法主要包括密鑰擴(kuò)展、子密鑰初始化、子密鑰偽隨機(jī)化和生成密文四個(gè)步驟 ①密鑰擴(kuò)展
讀取密碼對(duì)應(yīng)的數(shù)據(jù),按照先后順序,將每3個(gè)字節(jié)分為一組,不足字節(jié)的用0補(bǔ)充; 然后將每組數(shù)據(jù)(3字節(jié),;4位)按順序平均分為4段,每段位,然后再在這位的頭部加一位1,尾部加一位1,這樣就將3字節(jié)擴(kuò)展為了 4字節(jié);最后,將擴(kuò)展后的密鑰存放到一個(gè)數(shù)組J^s^w^^j,其中w為擴(kuò)展后的密鑰長(zhǎng)度。②初始化算法
主要用來(lái)生成一個(gè)數(shù)組對(duì),該數(shù)組中的元素將直接用來(lái)將明文數(shù)據(jù)轉(zhuǎn)換為密文數(shù)
據(jù)。為了確保加密同一個(gè)文件的不同段數(shù)對(duì)應(yīng)的內(nèi)容都不同。這里使用了一種偽隨機(jī)算法,其原理如下
設(shè)D為素?cái)?shù),-是兩個(gè)素?cái)?shù)(只0之積,j從2到F-1之間取值{2,3,-,^-1}。 如果下面的條件成互
({£) χ — 1) χ (ρ — 1))) 二 1 S與(P-1)χ(Q-1)的最大公約數(shù)為1
那么按照公式C = (AdVoN)計(jì)算出的(的取值范圍也在2到之間
Ce{2s3,.^V-l},并且不同的2對(duì)應(yīng)不同的Ci ,即實(shí)現(xiàn)了一個(gè)從j到C的一一映射關(guān)系。下面是該論題的數(shù)學(xué)論證
①條件隨機(jī)地選擇兩個(gè)素?cái)?shù)P和?;n = pxq ;1); 隨機(jī)地選取一個(gè)正整數(shù)0 , Ια < φ)且“#( )) = 1 ;且;
②結(jié)論若σ=取值范圍Ce{2丄..,《-1} M--M = C4Vm , Jf 亦取 Me {0,1,2,3,--, -1};并且σ 與 Jf——對(duì)應(yīng)
證明
首先證明M = CiVoM ,已知C = Μ£ %
即 M = Cd = (Mef = MerjoAn
因?yàn)镮=^x辦/。辦),這說(shuō)明+ l,其中t為某整數(shù)。所以, Msxd = Mity4ismVm 。因此要證明MexdoAn = M ,只需證明
M(^ln>i)ym = M。在I = (Mj)的情況下,根據(jù)數(shù)論(歐拉定理),由模運(yùn)算性質(zhì),可得,
= Μ ------------------等式結(jié)論成立
在1本(Μ,Κ)的情況下,分兩種情況 第一種情況i € {1,2,3... -1} 因?yàn)椤?= ,且P和€為素?cái)?shù), Me{1,2,3..., -1} ,Rl^(Mlfi)。這說(shuō)明J/必含P或€之一為其因子,而且不能同時(shí)包含兩者,否則將有JWr, 與ie {1,2,3...3-1}矛盾。不妨設(shè)Ai = β X 。又因g為素?cái)?shù),且Jf不包含g ,故有I = (Afj), 于是有,M^Voq = 1 ,歐拉定理。 進(jìn)一步有,!^辦-作滄巧一 =1
因力 w 是素?cái)?shù),所以=
所以有
MtxmoAq = 1
于是,Ifis^w χ分+1 ,其中 為某整數(shù)。兩邊同乘 ,
=bxqxM + M
因?yàn)镴f = axp ,故
Mtx^1 = bxqxax ρ + M = axbxn + Ai
取模"得,
M脅loAm = M ------------------等式結(jié)論成立
第二種情況M 5 O , 1 # (M, ) 當(dāng)Ji = O時(shí),直接驗(yàn)證。接著證明:C與Ai——對(duì)應(yīng)
因?yàn)镴f是取模所得值,故范圍在-1};所以C與I是一一對(duì)應(yīng)的,若C與ikf不——對(duì)應(yīng),假設(shè)對(duì)應(yīng)Jfl、M2兩個(gè)整數(shù)值,且不妨設(shè) 0<Μ <Μ2 <η ,
MCdVm^Ml ’ CiVm ^ Μ2 ; 由模運(yùn)算性質(zhì),得
MWon = Μ2,Ifij 匕知 O £ Ail < M2 <η ,得知假設(shè)不成立,故C與M 一一對(duì)應(yīng); 假設(shè)若]f對(duì)應(yīng)Cl , C2 ,同理可證結(jié)論成立。由此可知命題成立。生成數(shù)組對(duì)…的具體偽代碼描述如下其中用于輔助打亂對(duì)《],使密碼
參與到加密過(guò)程;對(duì)《1的生成過(guò)程并沒(méi)有使用上面的偽隨機(jī)算法,使用該算法生成的數(shù)組
是,它用于存儲(chǔ)生成的偽隨機(jī)數(shù),輔助生成偽隨機(jī)密鑰,在后面的偽隨機(jī)子密碼生成過(guò)程中將會(huì)用到它。其中D= 5,況=259,5 =43,尸=7,β = 37, = 256,具體語(yǔ)句段如下 For i 一 0 1 …n-1 ; A 一 2
//初始化s [η]和tmp [η],生成偽隨機(jī)數(shù)random [η] S[i] — i
tmp[i] 一 password[i%m] random[i] 一 pow (A, D) % N %n A++
If i == 0 continue For r 一 0..· n-1 ; j 一 0 If random [r] != 258 randomFinal[j++] = random[r] - 2; "利用tmp [η]打亂S [η] For i 一 0." n-1; j 一 0
j 一 (j+s[i] + tmp[i]) % η
swap(s[i], s[j]) //交換 s[i]和 s[j]的值
以上過(guò)程讓j從2 IiJ 258之間取值,生成一個(gè)257個(gè)元素的數(shù)組 (取值也
在2到258之間),而我們需要的偽隨機(jī)數(shù)組長(zhǎng)度為256,因此需要剔除取值為258的元素, 同時(shí)將剩余元素的值都減去2,這樣就得到一個(gè)長(zhǎng)度為256,元素取值范圍為0到255之間
的數(shù)組randomFinal [ ]。③偽隨機(jī)子密碼生成及加密算法其中待加密的數(shù)據(jù)明文為byte[] SrcData,加密后的數(shù)據(jù)密文為同樣大小的byte[] DestData0以下是具體語(yǔ)句段
i — 0 j — 0
1while condition //condition 為文件未結(jié)束
2If 0 == (i % 2)
3i -(i + 1)% η; //當(dāng)i為偶數(shù)時(shí)
4else
5i — randomFinal [i] % η // 當(dāng) i 為奇數(shù)時(shí)
6j — (j + s[i]) % η
7swap (s[i], s[j])Il生成對(duì)應(yīng)的子密鑰 8 sub_key — s[(s[i] + s[j])%n]
DestData — SrcData 十 sub_key // 異或操作力口密
注意這個(gè)過(guò)程不是直接使用中的元素,而是使用②中最后生成的對(duì)《]數(shù)組作為
一個(gè)輸入,另一個(gè)輸入是文件中源源不斷的數(shù)據(jù),因?yàn)槿绻苯邮褂脤?duì)數(shù)組,就會(huì)公用
一個(gè)相同的密鑰加密,為了保證使用偽隨機(jī)且不重復(fù)的密鑰,所以都臨時(shí)生成sub_key (算法中1-8行即生成sub_key的算法),每生成一位sub_key就對(duì)一個(gè)byte的待加密數(shù)據(jù)進(jìn)行加密操作。㈤生成加密文件
新建一個(gè)臨時(shí)文件,然后將封裝好的加密數(shù)據(jù)頭存入文件開(kāi)始位置,緊接著開(kāi)始填充密文數(shù)據(jù),填充完數(shù)據(jù)后,刪除原有文件,重命名臨時(shí)文件為原有文件名。第二部分解密 ㈠解密的流程和主要操作
解密的流程如附圖2所示,涉及的主要操作包括
201)讀取待解密文件的開(kāi)頭部分,看是否包含一個(gè)有效的加密數(shù)據(jù)頭。如果未包含,則說(shuō)明這個(gè)文件沒(méi)有被加密,無(wú)需進(jìn)行解密操作。否則解析待解密文件的加密數(shù)據(jù)頭,分離出其中的密碼、加密位置、加密數(shù)據(jù)頭長(zhǎng)度等信息;
202)根據(jù)密碼生成一個(gè)解密密鑰,該密鑰與加密密鑰完全一樣,生成方式也完全相
同;
203)去掉待解密文件的加密數(shù)據(jù)頭,并根據(jù)加密位置信息和解密密鑰對(duì)文件中的密文進(jìn)行解密運(yùn)算,最后生成被解密的文件。㈡解密算法
由于最終的加密操作是異或操作,故解密過(guò)程也需要加密過(guò)程使用的密鑰。即加密和解密生成最終密鑰的過(guò)程相同,區(qū)別在于加密最后是對(duì)明文和密鑰進(jìn)行異或操作,而解密是對(duì)密文和密鑰進(jìn)行異或的逆操作。第三部分加密數(shù)據(jù)頭的數(shù)據(jù)結(jié)構(gòu)和識(shí)別方法
加密數(shù)據(jù)頭是一個(gè)自定義的結(jié)構(gòu)體數(shù)據(jù)結(jié)構(gòu),這個(gè)數(shù)據(jù)結(jié)構(gòu)保存了用戶解密時(shí)所需要的信息,可以檢測(cè)文件是否加密了,校驗(yàn)用戶解密時(shí)輸入的密碼是否正等,同時(shí)還提供了解密時(shí)需要用到的信息,具體信息如下表所示
權(quán)利要求
1.一種文件加密方法,其特征在于,包括以下步驟若文件大小高于門(mén)限,將文件整體分割成一個(gè)以上分段,并保存分段信息; 用隨機(jī)算法確定每一分段中待加密數(shù)據(jù)的開(kāi)始和結(jié)束位置,并保存加密位置信息; 根據(jù)密碼生成一個(gè)加密密鑰,然后用它對(duì)待加密數(shù)據(jù)進(jìn)行加密,等長(zhǎng)替換原待加密數(shù)據(jù)后得到一個(gè)加密后的數(shù)據(jù)部分;將密碼、分段信息、每段的加密位置信息、加密數(shù)據(jù)頭識(shí)別標(biāo)記、和加密數(shù)據(jù)頭長(zhǎng)度封裝成加密數(shù)據(jù)頭;將加密數(shù)據(jù)頭放在所述加密后的數(shù)據(jù)部分前面,合并生成加密后的文件。
2.根據(jù)權(quán)利要求1所述加密方法,其特征在于,還包括若文件大小低于門(mén)限,將文件的數(shù)據(jù)部分分割成一分段。
3.根據(jù)權(quán)利要求1所述加密方法,其特征在于,所述分割是等分分割,所述分段信息是分段總數(shù)。
4.根據(jù)權(quán)利要求1所述加密方法,其特征在于,所述加密長(zhǎng)度是固定長(zhǎng)度,所述加密位置信息是每一分段中待加密數(shù)據(jù)的開(kāi)始位置。
5.根據(jù)權(quán)利要求1所述加密方法,其特征在于,還包括判斷待加密文件的數(shù)據(jù)頭是否是有效的加密數(shù)據(jù)頭,是直接退出加密過(guò)程,否則進(jìn)行加密。
6.根據(jù)權(quán)利要求1所述加密方法,其特征在于,包括以下步驟判斷待加密文件的數(shù)據(jù)頭是否是有效的加密數(shù)據(jù)頭,是跳過(guò)下面所有步驟直接結(jié)束, 否則進(jìn)入下面步驟;若文件大小高于門(mén)限,將文件整體等分割成一個(gè)以上分段,并保存分段總數(shù); 用隨機(jī)算法確定每一分段中待加密數(shù)據(jù)的開(kāi)始位置,并保存各分段加密開(kāi)始位置信息;根據(jù)密碼生成一個(gè)加密密鑰,然后用它按固定長(zhǎng)度從各分段加密開(kāi)始位置向后選取固定長(zhǎng)度數(shù)據(jù)進(jìn)行加密,但從分段加密開(kāi)始位置到該分段結(jié)束不足固定長(zhǎng)度時(shí)則選取從分段加密開(kāi)始位置到該分段結(jié)束的數(shù)據(jù)進(jìn)行加密,替換各自對(duì)應(yīng)的原待加密數(shù)據(jù)后得到一個(gè)加密后的數(shù)據(jù)部分;將密碼、分段總數(shù)、各分段加密開(kāi)始位置信息、加密數(shù)據(jù)頭識(shí)別標(biāo)記、加密數(shù)據(jù)頭長(zhǎng)度封裝成加密數(shù)據(jù)頭;將加密數(shù)據(jù)頭放在所述加密后的數(shù)據(jù)部分前面,合并生成加密后的文件。
7.一種文件解密方法,其特征在于,包括以下步驟讀取加密文件、分離還原加密數(shù)據(jù)頭中的密碼、分段總數(shù)、加密位置信息; 根據(jù)分段位置信息和加密位置信息獲取加密文件中各段加密數(shù)據(jù)的開(kāi)始和結(jié)束位置;根據(jù)密碼生成一個(gè)加密密鑰,然后用它對(duì)加密數(shù)據(jù)進(jìn)行解密,等長(zhǎng)替換原加密數(shù)據(jù)后得到一個(gè)解密后的數(shù)據(jù)部分;根據(jù)所述解密后的數(shù)據(jù)部分直接生成解密文件。
8.根據(jù)權(quán)利要求7所述解密方法,其特征在于,包括分離加密數(shù)據(jù)頭中的分段數(shù),再根據(jù)等分分割算法計(jì)算個(gè)分段開(kāi)始和結(jié)束位置。
9.根據(jù)權(quán)利要求7所述解密方法,其特征在于,包括分離加密數(shù)據(jù)頭中的各分段加密開(kāi)始位置,再根據(jù)加密開(kāi)始位置到各自分段結(jié)束的長(zhǎng)度大于固定長(zhǎng)度以固定長(zhǎng)度作為加密結(jié)束位置,否則以對(duì)應(yīng)分段結(jié)束作為加密結(jié)束位置。
10.根據(jù)權(quán)利要求7所述解密方法,其特征在于,包括根據(jù)待解密文件的數(shù)據(jù)頭包括加密數(shù)據(jù)頭識(shí)別標(biāo)記選擇進(jìn)行解密,否則直接退出解密過(guò)程。
全文摘要
本發(fā)明涉及一種文件加解密方法,其中加密方法包括將文件整體分割成一個(gè)以上分段,并保存分段信息;用隨機(jī)算法確定每一分段中待加密數(shù)據(jù)的開(kāi)始和結(jié)束位置,并保存加密位置信息;根據(jù)密碼生成一個(gè)加密密鑰,然后用它對(duì)待加密數(shù)據(jù)進(jìn)行加密,等長(zhǎng)替換原待加密數(shù)據(jù)后得到一個(gè)加密后的數(shù)據(jù)部分;將密碼、分段總數(shù)、每段的加密位置信息、加密數(shù)據(jù)頭識(shí)別標(biāo)記、和加密數(shù)據(jù)頭長(zhǎng)度封裝成加密數(shù)據(jù)頭;將加密數(shù)據(jù)頭放在所述加密后的數(shù)據(jù)部分前面,合并生成加密后的文件。解密方法是加密方法的逆過(guò)程。這種文件加解密方法,能在移動(dòng)終端上快速執(zhí)行且相對(duì)安全。
文檔編號(hào)G06F21/24GK102402670SQ201110255729
公開(kāi)日2012年4月4日 申請(qǐng)日期2011年9月1日 優(yōu)先權(quán)日2011年8月3日
發(fā)明者曾元清 申請(qǐng)人:廣東歐珀移動(dòng)通信有限公司