專利名稱:一種數(shù)字文檔加密方法
技術領域:
本發(fā)明涉及網(wǎng)絡信息安全技術領域,特別是涉及一種數(shù)字文檔加密方法。
背景技術:
在當前的互聯(lián)網(wǎng)信息時代,人們對信息的需求越來越大。而數(shù)字文檔作為一種數(shù)字信息的載體,也成為了現(xiàn)代人們閱讀習慣中不可或缺的一份。而現(xiàn)有的數(shù)字文檔加密方法總是存在很多不足,使得數(shù)字文檔能被隨意復制的問題一直困擾著數(shù)字文檔的提供商和版權所有者。例如,一般的數(shù)字文檔的密鑰是針對某個用戶的,則該用戶在獲得密鑰后就能夠使用該密鑰在不同的客戶端上多次下載數(shù)字文檔。
發(fā)明內(nèi)容
本發(fā)明提供了一種數(shù)字文檔加密方法,該方法能夠為數(shù)字文檔的每一次下載都動態(tài)生成一個密鑰,實現(xiàn)真正的‘一個人,一個機器,一份數(shù)字文檔’。為達到上述目的,本發(fā)明的技術方案是這樣實現(xiàn)的本發(fā)明公開了一種數(shù)字文檔加密方法,該方法包括當有用戶請求下載指定數(shù)字文檔時,根據(jù)用戶固有信息、所使用客戶端的固有信息以及所述指定數(shù)字文檔的固有信息生成密鑰;根據(jù)所述生成密鑰對所述指定數(shù)字文檔進行加密;用戶所使用的客戶端下載所述加密的數(shù)字文檔后,根據(jù)所述密鑰和對應的解密過程進行解密。在上述方法中,所述根據(jù)用戶固有信息、用戶所使用客戶端的固有信息以及所述指定數(shù)字文檔的固有標識生成密鑰包括將由用戶固有信息、用戶所使用客戶端的固有信息以及所述指定數(shù)字文檔的固有信息通過某種算法進行加密得到固定位數(shù)的密鑰。在上述方法中,所述用戶的固有信息包括用戶名。在上述方法中,所述用戶所使用客戶端的固有信息包括客戶端的計算機名稱;在上述方法中,所述指定數(shù)字文檔的固有信息包括所述指定數(shù)字文檔名稱。在上述方法中,所述根據(jù)生成密鑰對所述指定數(shù)字文檔進行加密包括對數(shù)字文檔內(nèi)容進行分段加密,且每段內(nèi)容加密所使用的密鑰為所述生成密鑰的一部分。在上述方法中,所述對數(shù)字文檔內(nèi)容進行分段加密,且每段內(nèi)容加密所使用的密鑰為所述生成密鑰的一部分包括以下步驟A、跳過數(shù)字文檔內(nèi)容的文件頭部分;令i = 1 ;B、從所跳過的內(nèi)容之后按順序讀取Ni字節(jié)的二進制內(nèi)容,從所述生成密鑰獲取一定位數(shù)的內(nèi)容作為本次密鑰,用本次密鑰對讀取的二進制內(nèi)容進行加密;C、跳過Mi位的二進制內(nèi)容;
D、判斷對數(shù)字文檔內(nèi)容的加密是否完成,是則結(jié)束流程,否則令i = i+Ι,返回步驟B。在上述方法中,Ni由與所述指定數(shù)字文檔相關的信息確定。在上述方法中,Mi等于所述指定數(shù)字文檔的標識的位數(shù)。在上述方法中,所述步驟B中的從所述生成密鑰獲取一定位數(shù)的內(nèi)容作為本次密鑰包括如果從所述生成密鑰獲取到零位的內(nèi)容,則不對本次所讀取的二進制內(nèi)容進行加
滋由上述可見,本發(fā)明這種當有用戶請求下載指定數(shù)字文檔時,根據(jù)用戶、所使用的客戶端與所述指定數(shù)字文檔的固有信息生成密鑰;根據(jù)所述生成密鑰對所述指定數(shù)字文檔進行加密;用戶所使用的客戶端下載所述加密的數(shù)字文檔后,根據(jù)所述密鑰和對應的解密過程進行解密的技術方案,由于在用戶請求下載時,根據(jù)用戶、所使用的客戶端與所述指定數(shù)字文檔的固有信息生成密鑰,因此能夠為數(shù)字文檔的每一次下載都動態(tài)生成一個密鑰, 實現(xiàn)真正的‘一個人,一個機器,一份數(shù)字文檔’。
圖1是本發(fā)明實施例中的一種數(shù)字文檔加密方法的流程圖。圖2是本發(fā)明實施例中的對數(shù)字文檔內(nèi)容進行加密的示意圖。
具體實施例方式為了使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面結(jié)合附圖和具體實施例對本發(fā)明進行詳細描述。圖1是本發(fā)明實施例中的一種數(shù)字文檔加密方法的流程圖。如圖1所示,該方法包括以下步驟步驟101,當有用戶請求下載指定數(shù)字文檔時,根據(jù)用戶固有信息、用戶所使用客戶端的固有信息以及所述指定數(shù)字文檔的固有信息生成密鑰。本步驟跟中,具體可以將由用戶固有信息、用戶所使用客戶端的固有信息與所述指定數(shù)字文檔的固有信息組成的字符通過某種加密算法進行加密得到固定位數(shù)的密鑰。在本發(fā)明的實施例中用戶固有信息,如用戶名。用戶所使用的客戶端的固有信息,如客戶端的計算機名。指定數(shù)字文檔的固有信息,如所述指定數(shù)字文檔的名稱。步驟102,根據(jù)所述生成密鑰對所述指定數(shù)字文檔進行加密。步驟103,用戶所使用的客戶端下載所述加密的數(shù)字文檔后,根據(jù)所述密鑰和對應的解密過程進行解密。圖1所述的技術方案,由于在用戶請求下載時,根據(jù)用戶固有信息、用戶所使用客戶端的固有信息以及所述指定數(shù)字文檔的固有信息生成密鑰,能夠為數(shù)字文檔的每一次下載都動態(tài)生成一個密鑰,實現(xiàn)真正的‘一個人,一個機器,一份數(shù)字文檔’。圖1所示方法中的步驟102所述的根據(jù)所述生成密鑰對所述指定數(shù)字文檔進行加密的過程具體可以為對數(shù)字文檔內(nèi)容進行分段加密,且每段內(nèi)容加密所使用的密鑰為所述生成密鑰的一部分。例如,在本發(fā)明的一個實例中,所述對數(shù)字文檔內(nèi)容進行分段加密,且每段內(nèi)容加密所使用的密鑰為所述生成密鑰的一部分具體可以包括以下步驟A、跳過數(shù)字文檔內(nèi)容的文件頭部分;令i = 1 ;B、從所跳過的內(nèi)容之后按順序讀取Ni字節(jié)的二進制內(nèi)容,從所述生成密鑰獲取一定位數(shù)的內(nèi)容作為本次密鑰,用本次密鑰對讀取的二進制內(nèi)容進行加密;C、跳過Mi位的二進制內(nèi)容;D、判斷對數(shù)字文檔內(nèi)容的加密是否完成,是則結(jié)束流程,否則令i = i+Ι,返回步驟B。其中,Ni由與所述指定數(shù)字文檔相關的信息確定諷等于根據(jù)所述指定數(shù)字文檔的固有信息動態(tài)生成的固定位數(shù);所述步驟B中如果從所述生成密鑰獲取到零位的內(nèi)容, 則不對本次所讀取的二進制內(nèi)容進行加密。圖2是本發(fā)明實施例中的對數(shù)字文檔內(nèi)容進行加密的示意圖。如圖2所示,用一定長度的線段表示數(shù)字文檔的內(nèi)容,標示在線段下面的是跳過的內(nèi)容,標示在線段上面的是進行加密的內(nèi)容。在圖2所示的實施例中首先跳過文件頭部分,讀取N1字節(jié)的內(nèi)容,從所生成的 128位的密鑰中獲取一部分,如32位的內(nèi)容作為密鑰對N1字節(jié)的內(nèi)容進行加密;跳過M1位的內(nèi)容,讀取N2字節(jié)的內(nèi)容,從所生成的1 位的密鑰中獲取一部分,如64位的內(nèi)容作為密鑰對隊字節(jié)的內(nèi)容進行加密;跳過M2位的內(nèi)容,讀取N3字節(jié)的內(nèi)容,從所生成的1 位的密鑰中獲取一部分(可以是全部),如1 位的內(nèi)容作為密鑰對N3字節(jié)的內(nèi)容進行加密; 跳過M3位的內(nèi)容,讀取N4字節(jié)的內(nèi)容,從所生成的1 位的密鑰中獲取0位的內(nèi)容,則不對 N4字節(jié)的內(nèi)容進行加密。加密過程結(jié)束。在圖2所示的實施例中,N1J2J3和N4是由與數(shù)字文檔相關的信息確定的,H N3和N4可以相等也可以不相等。解密過程是加密過程的逆過程,這里不再贅述。由上述可見,本發(fā)明這種當有用戶請求下載指定數(shù)字文檔時,根據(jù)用戶固有信息、 用戶所使用客戶端的固有信息以及所述指定數(shù)字文檔的固有信息生成密鑰;根據(jù)所述生成密鑰對所述指定數(shù)字文檔進行加密;用戶所使用的客戶端下載所述加密的數(shù)字文檔后,根據(jù)所述密鑰和對應的解密過程進行解密的技術方案,由于在用戶請求下載時,根據(jù)用戶、用戶所使用的客戶端以及所述指定數(shù)字文檔的固有信息生成密鑰,因此能夠為數(shù)字文檔的每一次下載都動態(tài)生成一個密鑰,實現(xiàn)真正的‘一個人,一個機器,一份數(shù)字文檔’。以上所述僅為本發(fā)明的較佳實例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應包含在本發(fā)明保護的范圍之內(nèi)。
權利要求
1.一種數(shù)字文檔加密方法,其特征在于,該方法包括當有用戶請求下載指定數(shù)字文檔時,根據(jù)用戶固有信息、用戶所使用客戶端的固有信息以及所述指定數(shù)字文檔的固有信息生成密鑰;根據(jù)所述生成密鑰對所述指定數(shù)字文檔進行加密;用戶所使用的客戶端下載所述加密的數(shù)字文檔后,根據(jù)所述密鑰和對應的解密過程進行解密。
2.根據(jù)權利要求1所述的方法,其特征在于,所述根據(jù)用戶固有信息、用戶所使用客戶端的固有信息以及所述指定數(shù)字文檔的固有信息生成密鑰包括將由用戶固有信息、用戶所使用客戶端的固有信息以及所述指定數(shù)字文檔的固有信息組成的字符通過加密算法進行加密得到固定位數(shù)的密鑰。
3.根據(jù)權利要求1或2所述的方法,其特征在于, 所述用戶固有信息包括用戶名。
4.根據(jù)權利要求1或2所述的方法,其特征在于,所述用戶所使用客戶端的固有信息包括客戶端的計算機名稱。
5.根據(jù)權利要求1或2所述的方法,其特征在于,所述指定數(shù)字文檔的固有信息包括所述指定數(shù)字文檔的名稱。
6.根據(jù)權利要求1或2所述的方法,其特征在于,所述根據(jù)生成密鑰對所述指定數(shù)字文檔進行加密包括對數(shù)字文檔內(nèi)容進行分段加密,且每段內(nèi)容加密所使用的密鑰為所述生成密鑰的一部分。
7.根據(jù)權利要求6所述的方法,其特征在于,所述對數(shù)字文檔內(nèi)容進行分段加密,且每段內(nèi)容加密所使用的密鑰為所述生成密鑰的一部分包括以下步驟A、跳過數(shù)字文檔內(nèi)容的文件頭部分;令i= 1 ;B、從所跳過的內(nèi)容之后按順序讀取隊字節(jié)的二進制內(nèi)容,從所述生成密鑰獲取一定位數(shù)的內(nèi)容作為本次密鑰,用本次密鑰對讀取的二進制內(nèi)容進行加密;C、跳過Mi位的二進制內(nèi)容;D、判斷對數(shù)字文檔內(nèi)容的加密是否完成,是則結(jié)束流程,否則令i= i+Ι,返回步驟B。
8.根據(jù)權利要求7所述的方法,其特征在于, Ni由與所述指定數(shù)字文檔相關的信息確定。
9.根據(jù)權利要求7所述的方法,其特征在于, Mi等于所述指定數(shù)字文檔的標識的位數(shù)。
10.根據(jù)權利要求7所述的方法,其特征在于,所述步驟B中的從所述生成密鑰獲取一定位數(shù)的內(nèi)容作為本次密鑰包括如果從所述生成密鑰獲取到零位的內(nèi)容,則不對本次所讀取的二進制內(nèi)容進行加密。
全文摘要
本發(fā)明公開了一種數(shù)字文檔加密方法。該方法包括當有用戶請求下載指定數(shù)字文檔時,根據(jù)用戶固有信息、所使用客戶端的固有信息以及所述指定數(shù)字文檔的固有信息生成密鑰;根據(jù)所述生成密鑰對所述指定數(shù)字文檔進行加密;用戶所使用的客戶端下載所述加密的數(shù)字文檔后,根據(jù)所述密鑰和對應的解密過程進行解密。本發(fā)明的技術方案能夠為數(shù)字文檔的每一次下載都動態(tài)生成一個密鑰,實現(xiàn)真正的“一個人,一個機器,一份數(shù)字文檔” 。
文檔編號H04L29/06GK102355463SQ20111030402
公開日2012年2月15日 申請日期2011年10月10日 優(yōu)先權日2011年10月10日
發(fā)明者黃金旭 申請人:廈門簡帛信息科技有限公司