本申請涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)存儲(chǔ)方法及裝置。
背景技術(shù):
隨著移動(dòng)互聯(lián)網(wǎng)產(chǎn)業(yè)快速發(fā)展,移動(dòng)設(shè)備已經(jīng)深入到了用戶生活中的方方面面,移動(dòng)應(yīng)用程序的數(shù)量大大增加。
移動(dòng)應(yīng)用程序通常需要使用本地文件來存儲(chǔ)一些配置信息、用戶信息等。這些信息都是對安全性要求較高的數(shù)據(jù),然而在現(xiàn)有技術(shù)中,缺乏對該些數(shù)據(jù)的有效保護(hù)。以安卓系統(tǒng)為例,在安卓系統(tǒng)未root的情況下,由于安卓系統(tǒng)本身的沙箱機(jī)制,其他程序是無法讀取這些文件的,但是在安卓系統(tǒng)root后,惡意程序可以直接讀取這些文件,從而達(dá)到竊取用戶數(shù)據(jù)的目的。
即現(xiàn)有技術(shù)中,應(yīng)用程序的本地文件中的數(shù)據(jù)容易被竊取,安全性較低。
技術(shù)實(shí)現(xiàn)要素:
本申請實(shí)施例提供一種數(shù)據(jù)存儲(chǔ)方法,用以提高現(xiàn)有技術(shù)中應(yīng)用程序的安全性。
本申請實(shí)施例采用下述技術(shù)方案:
一種數(shù)據(jù)存儲(chǔ)方法,包括:
在應(yīng)用程序運(yùn)行時(shí),攔截所述應(yīng)用程序的數(shù)據(jù)操作,所述數(shù)據(jù)操作為針對所述應(yīng)用程序本地文件中數(shù)據(jù)的讀寫操作;
在確定所述數(shù)據(jù)操作所針對的數(shù)據(jù)是需要在存儲(chǔ)介質(zhì)中加密的數(shù)據(jù)時(shí),若所述數(shù)據(jù)操作是向所述存儲(chǔ)介質(zhì)中寫入所述數(shù)據(jù)的操作,則對所述數(shù)據(jù)進(jìn)行加密,將加密后的數(shù)據(jù)寫入到所述存儲(chǔ)介質(zhì)中。
本申請實(shí)施例還提供一種數(shù)據(jù)存儲(chǔ)裝置,用以提高現(xiàn)有技術(shù)中應(yīng)用程序的安全性。
本申請實(shí)施例采用下述技術(shù)方案:
一種數(shù)據(jù)存儲(chǔ)裝置,包括:
攔截單元,用于在應(yīng)用程序運(yùn)行時(shí),攔截所述應(yīng)用程序的數(shù)據(jù)操作,所述數(shù)據(jù)操作為針對所述應(yīng)用程序的本地文件中數(shù)據(jù)的讀寫操作;
操作單元,用于在確定所述數(shù)據(jù)操作所針對的數(shù)據(jù)是需要在存儲(chǔ)介質(zhì)中加密的數(shù)據(jù),且所述數(shù)據(jù)操作是向所述存儲(chǔ)介質(zhì)中寫入所述數(shù)據(jù)的操作時(shí),對所述數(shù)據(jù)進(jìn)行加密,將加密后的數(shù)據(jù)寫入到所述存儲(chǔ)介質(zhì)中。
本申請實(shí)施例采用的上述至少一個(gè)技術(shù)方案能夠達(dá)到以下有益效果:
通過在應(yīng)用程序運(yùn)行時(shí),攔截該應(yīng)用程序的數(shù)據(jù)操作,針對數(shù)據(jù)操作中的需要在存儲(chǔ)介質(zhì)中加密的數(shù)據(jù),如果該數(shù)據(jù)操作是存儲(chǔ)操作時(shí),則對該數(shù)據(jù)進(jìn)行加密,然后將加密后的數(shù)據(jù)寫入到存儲(chǔ)介質(zhì)中,這樣應(yīng)用程序的數(shù)據(jù)便不容易被其它應(yīng)用程序隨意讀取,提高了現(xiàn)有技術(shù)中應(yīng)用程序的安全性。
附圖說明
此處所說明的附圖用來提供對本申請的進(jìn)一步理解,構(gòu)成本申請的一部分,本申請的示意性實(shí)施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當(dāng)限定。在附圖中:
圖1為本申請實(shí)施例提供的一種數(shù)據(jù)存儲(chǔ)方法的實(shí)現(xiàn)流程示意圖;
圖2為本申請實(shí)施例提供的一種數(shù)據(jù)存儲(chǔ)方法的實(shí)現(xiàn)流程示意圖;
圖3為本申請實(shí)施例提供的一種數(shù)據(jù)存儲(chǔ)裝置的具體結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本申請的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本申請具體實(shí)施例及相應(yīng)的附圖對本申請技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實(shí)施例僅是本申請一部分實(shí)施例,而不是全部的實(shí)施例。基于本申請中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本申請保護(hù)的范圍。
以下結(jié)合附圖,詳細(xì)說明本申請各實(shí)施例提供的技術(shù)方案。
實(shí)施例1
為解決現(xiàn)有技術(shù)中應(yīng)用程序的安全性較低的問題,本申請實(shí)施例提供一種數(shù)據(jù)存儲(chǔ)方法。本申請實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法的執(zhí)行主體可以終端設(shè)備,例如手機(jī)、平板電腦等等,或者,此外,該方法的執(zhí)行主體,也可以是實(shí)現(xiàn)該方法的軟件,比如用來保障應(yīng)用程序安全的模塊,即本領(lǐng)域通常所稱的用于對應(yīng)用程序加固的加固殼。
為便于描述,下文以該方法的執(zhí)行主體為加固殼為例,對該方法的實(shí)施方式進(jìn)行介紹??梢岳斫猓摲椒ǖ膱?zhí)行主體為加固殼只是一種示例性的說明,并不應(yīng)理解為對該方法的限定。
該方法的實(shí)現(xiàn)流程示意圖如圖1所示,包括下述步驟:
步驟11:在應(yīng)用程序運(yùn)行時(shí),攔截所述應(yīng)用程序的數(shù)據(jù)操作,所述數(shù)據(jù)操作為針對所述應(yīng)用程序的本地文件中數(shù)據(jù)的讀寫操作;
應(yīng)用程序在終端運(yùn)行時(shí),會(huì)以本地文件的形式將數(shù)據(jù)寫入到終端的本地存儲(chǔ)介質(zhì)中,那么可以將該些信息進(jìn)行加密后再存儲(chǔ)。由于應(yīng)用程序在存儲(chǔ)數(shù)據(jù)時(shí)會(huì)執(zhí)行數(shù)據(jù)存儲(chǔ)操作,那么可以通過對應(yīng)用程序的數(shù)據(jù)操作進(jìn)行攔截,進(jìn)而攔截應(yīng)用程序要存儲(chǔ)的數(shù)據(jù),這樣不必修改應(yīng)用程序便可將該應(yīng)用程序要存儲(chǔ)的數(shù)據(jù)進(jìn)行加密。
這里所說的數(shù)據(jù)操作可以是應(yīng)用程序?qū)?shù)據(jù)的操作,比如應(yīng)用程序?qū)?shù)據(jù)寫入存儲(chǔ)介質(zhì)的數(shù)據(jù)存儲(chǔ)操作、應(yīng)用程序從存儲(chǔ)介質(zhì)中讀取數(shù)據(jù)的數(shù)據(jù)讀取操作等等,數(shù)據(jù)操作即對數(shù)據(jù)的輸入/輸出(input/output,i/o)操作。在實(shí)際應(yīng)用中,可以通過鉤子函數(shù)(hook函數(shù))來攔截應(yīng)用程序?qū)?shù)據(jù)的io操作。
由于后續(xù)要對存儲(chǔ)的數(shù)據(jù)進(jìn)行加密,因此,在攔截應(yīng)用程序的數(shù)據(jù)操作時(shí),可以攔截應(yīng)用程序?qū)?shù)據(jù)的存儲(chǔ)操作,并且,由于后續(xù)讀取加密的數(shù)據(jù)時(shí),需要對加密的數(shù)據(jù)進(jìn)行解密,那么也可以對應(yīng)用程序?qū)?shù)據(jù)的讀取操作進(jìn)攔截。
步驟12:在確定所述數(shù)據(jù)操作所針對的數(shù)據(jù)是需要在存儲(chǔ)介質(zhì)中加密的數(shù)據(jù)時(shí),若所述數(shù)據(jù)操作是向所述存儲(chǔ)介質(zhì)中寫入所述數(shù)據(jù)的操作,則對所述數(shù)據(jù)進(jìn)行加密,將加密后的數(shù)據(jù)寫入到所述存儲(chǔ)介質(zhì)中。
在對數(shù)據(jù)進(jìn)行加密時(shí),為了保證能夠及時(shí)地將應(yīng)用程序所需的文件返回給應(yīng)用程序,可以只針對一些對安全性要求較高的文件進(jìn)行加密存儲(chǔ),例如:通過可擴(kuò)展標(biāo)記語言編寫的文件、數(shù)據(jù)庫類型的文件等??蓴U(kuò)展標(biāo)記語言編寫的文件一般即為后綴名為.xml的文件,數(shù)據(jù)庫類型的文件比如是后綴名為.db的文件。
那么,在執(zhí)行步驟12之前,可以先判斷數(shù)據(jù)操作所針對的數(shù)據(jù)是否是需要在存儲(chǔ)介質(zhì)中加密的數(shù)據(jù)。在實(shí)際應(yīng)用中,具體可以通過判斷所述數(shù)據(jù)的存儲(chǔ)路徑是否符合預(yù)設(shè)的正則表達(dá)式來判斷,正則表達(dá)式是對字符串操作的一種邏輯公式,是用預(yù)先定義好的一些特定字符或這些特定字符的組合,組成一個(gè)“規(guī)則字符串”,這個(gè)“規(guī)則字符串”用來表達(dá)對字符串的一種過濾邏輯。
在判斷數(shù)據(jù)的存儲(chǔ)路徑是否符合預(yù)設(shè)的正則表達(dá)式時(shí),若數(shù)據(jù)的存儲(chǔ)路徑符合預(yù)設(shè)的正則表達(dá)式,則確定該數(shù)據(jù)操作所針對的數(shù)據(jù)是需要在存儲(chǔ)介質(zhì)中加密的數(shù)據(jù),若數(shù)據(jù)的存儲(chǔ)路徑不符合預(yù)設(shè)的正則表達(dá)式,則確定該數(shù)據(jù)操作所針對的數(shù)據(jù)是不需要在存儲(chǔ)介質(zhì)中加密的數(shù)據(jù)。
舉例來說,應(yīng)用程序保存的本地文件都在路徑a:\b\c\下面,現(xiàn)在期望對.xml文件的數(shù)據(jù)進(jìn)行加密,那么,正則表達(dá)式可以寫為a:\b\c\*.xml,即表示對該路徑下的所有.xml格式的文件進(jìn)行加密。在進(jìn)行判斷時(shí),如果數(shù)據(jù)操作所針對的數(shù)據(jù)的存儲(chǔ)路徑符合正則表達(dá)式a:\b\c\*.xml,則確定所述數(shù)據(jù)操作所針對的數(shù)據(jù)是需要在存儲(chǔ)介質(zhì)中加密的數(shù)據(jù)。
在確定攔截到的數(shù)據(jù)操作所針對的數(shù)據(jù)是需要在存儲(chǔ)介質(zhì)中加密的數(shù)據(jù)時(shí),可以獲取該數(shù)據(jù)操作要寫入的數(shù)據(jù),然后再對該數(shù)據(jù)進(jìn)行加密,加密后再寫入到存儲(chǔ)介質(zhì)中。
具體在對數(shù)據(jù)進(jìn)行加密時(shí),針對不同的終端設(shè)備,可以采用不同的加密規(guī)則,這樣,某一設(shè)備上的加密數(shù)據(jù)是無法拿到其它設(shè)備上使用的,防止破解者通過其它設(shè)備上的加固殼來解密在本設(shè)備上加密的數(shù)據(jù)。
在確定加密規(guī)則時(shí),可以根據(jù)應(yīng)用程序當(dāng)前運(yùn)行的終端設(shè)備的唯一標(biāo)識(shí),確定對數(shù)據(jù)進(jìn)行加密的加密規(guī)則。當(dāng)然,對數(shù)據(jù)的加密可以是可逆的,以便后續(xù)可以對加密后的數(shù)據(jù)進(jìn)行解密來獲取該數(shù)據(jù)。加密規(guī)則具體可以包括加密時(shí)所使用的算法,比如rc4加密算法、數(shù)據(jù)加密標(biāo)準(zhǔn)(dataencryptionstandard,des)算法、高級(jí)加密標(biāo)準(zhǔn)(advancedencryptionstandard,aes)算法、異或加密算法等。
終端設(shè)備的唯一標(biāo)識(shí)比如可以是終端設(shè)備的物理網(wǎng)卡(mediaaccesscontrol,mac)地址,也可以是終端設(shè)備的國際移動(dòng)設(shè)備身份碼(internationalmobileequipmentidentity,imei)。
在通過終端設(shè)備的唯一標(biāo)識(shí)來確定加密時(shí)所使用的加密算法時(shí),可以根據(jù)終端設(shè)備的類型,來選擇匹配的加密算法。具體來說,終端設(shè)備的imei中有預(yù)定的幾位數(shù)是用來標(biāo)識(shí)終端設(shè)備的類型的,比如imei中的前6位數(shù)(tac)是“型號(hào)核準(zhǔn)號(hào)碼”,一般代表設(shè)備的機(jī)型,那么可以根據(jù)imei確定終端設(shè)備的類型,然后根據(jù)終端設(shè)備的類型,以及已經(jīng)預(yù)先建立的終端設(shè)備類型和加密算法的對應(yīng)關(guān)系,確定加密算法。
在終端設(shè)備類型和加密算法的對應(yīng)關(guān)系中,處理性能較差的終端設(shè)備,可以對應(yīng)計(jì)算速度較快的加密算法,例如aes算法。而處理性能較強(qiáng)的終端設(shè)備,可以對應(yīng)加密復(fù)雜度較高的加密算法,例如3des算法。
加密規(guī)則還可以包括加密時(shí)所使用的密鑰,在通過終端設(shè)備的唯一標(biāo)識(shí)來確定加密時(shí)所使用的密鑰時(shí),可以將終端設(shè)備的唯一標(biāo)識(shí)作為加密時(shí)所使用的密鑰,這樣不同的設(shè)備即對應(yīng)了不同的加密密鑰。為了進(jìn)一步增加密鑰的復(fù)雜度,防止破解者猜到密鑰,可以通過密鑰算法對唯一標(biāo)識(shí)進(jìn)行計(jì)算,來得到加密密鑰。這里的加密算法比如可以是哈希算法。
在通過上述方式確定加密規(guī)則后,便可以根據(jù)確定的加密規(guī)則,對數(shù)據(jù)進(jìn)行加密,然后將加密后的數(shù)據(jù)寫入到存儲(chǔ)介質(zhì)中。這樣,應(yīng)用程序在通過數(shù)據(jù)存儲(chǔ)操作將數(shù)據(jù)存儲(chǔ)到本地時(shí),數(shù)據(jù)即可被加固殼攔截,加固殼對數(shù)據(jù)進(jìn)行加密,然后再將加密后的數(shù)據(jù)存儲(chǔ)到本地。這樣不僅可以保證數(shù)據(jù)在存儲(chǔ)介質(zhì)中的狀態(tài)是加密狀態(tài),而且應(yīng)用程序本身的代碼不用做任何修改,提高了應(yīng)用程序本地文件中數(shù)據(jù)的安全性。
需要說明的是,本申請實(shí)施例中所描述的數(shù)據(jù)可以是以本地文件的形式存儲(chǔ)在終端設(shè)備中的,因此本申請中所說的數(shù)據(jù)可以指文件,比如對數(shù)據(jù)進(jìn)行加密可以等同于對文件進(jìn)行加密。
在通過上述方式確定加密規(guī)則后,為了保證應(yīng)用程序能夠從存儲(chǔ)介質(zhì)中讀取保存的數(shù)據(jù),在應(yīng)用程序讀取加密的數(shù)據(jù)時(shí),還可以對加密的數(shù)據(jù)進(jìn)行解密,然后再將解密后的數(shù)據(jù)返還給應(yīng)用程序,那么,同樣可以通過攔截應(yīng)用程序的數(shù)據(jù)操作,然后在確定該數(shù)據(jù)操作所針對的數(shù)據(jù)是需要解密的數(shù)據(jù),且該數(shù)據(jù)操作是從存儲(chǔ)介質(zhì)中讀取該數(shù)據(jù)的操作時(shí),解密加密后的數(shù)據(jù),將解密后的數(shù)據(jù)返回給應(yīng)用程序。
在確定數(shù)據(jù)操作所針對的數(shù)據(jù)是否是需要解密的數(shù)據(jù)時(shí),可以通過上述判斷數(shù)據(jù)是否是需要加密存儲(chǔ)的數(shù)據(jù)的方法,若數(shù)據(jù)的存儲(chǔ)路徑符合預(yù)設(shè)的正則表達(dá)式,則確定該數(shù)據(jù)操作所針對的數(shù)據(jù)是需要解密的數(shù)據(jù),若數(shù)據(jù)的存儲(chǔ)路徑不符合預(yù)設(shè)的正則表達(dá)式,則確定該數(shù)據(jù)操作所針對的數(shù)據(jù)是不需要解密的數(shù)據(jù)。
在確定攔截到的數(shù)據(jù)操作所針對的數(shù)據(jù)是需要解密的數(shù)據(jù)時(shí),則從存儲(chǔ)介質(zhì)中讀取該數(shù)據(jù)對應(yīng)的加密后的數(shù)據(jù),然后對加密后的數(shù)據(jù)進(jìn)行解密,將解密后的數(shù)據(jù)返回給所述應(yīng)用程序。
本申請實(shí)施例1提供的方法,通過在應(yīng)用程序運(yùn)行時(shí),攔截該應(yīng)用程序的數(shù)據(jù)操作,針對數(shù)據(jù)操作中的需要在存儲(chǔ)介質(zhì)中加密的數(shù)據(jù),如果該數(shù)據(jù)操作是存儲(chǔ)操作時(shí),則對該數(shù)據(jù)進(jìn)行加密,然后將加密后的數(shù)據(jù)寫入到存儲(chǔ)介質(zhì)中,這樣應(yīng)用程序的數(shù)據(jù)便不容易被其它應(yīng)用程序隨意讀取,提高了現(xiàn)有技術(shù)中應(yīng)用程序的安全性。
實(shí)施例2
基于前述實(shí)施例1詳細(xì)敘述了本申請的發(fā)明構(gòu)思,為了便于更好的理解本申請的技術(shù)特征、手段和效果,下面對本申請的數(shù)據(jù)存儲(chǔ)方法做進(jìn)一步說明,從而形成了本申請的又一個(gè)實(shí)施例。
本申請實(shí)施例2中數(shù)據(jù)存儲(chǔ)過程與實(shí)施例1中所述數(shù)據(jù)存儲(chǔ)過程相似,實(shí)施例2中沒有介紹到的其他一些步驟可以參見實(shí)施例1中的相關(guān)描述,此處不再贅述。
在對該方案的實(shí)現(xiàn)方式進(jìn)行詳細(xì)介紹前,先對該方案的實(shí)施場景進(jìn)行簡單介紹。
該實(shí)施場景中,期望對應(yīng)用程序保存在本地文件中的預(yù)定格式的文件進(jìn)行加密存儲(chǔ)。
基于上述場景,實(shí)施例2中實(shí)現(xiàn)存儲(chǔ)的過程如圖2所示,包括下述步驟:
步驟21:在應(yīng)用程序運(yùn)行時(shí),攔截應(yīng)用程序的數(shù)據(jù)操作;
步驟22:確定該數(shù)據(jù)操作是向終端本地存儲(chǔ)介質(zhì)中存儲(chǔ)數(shù)據(jù)的操作;
步驟23:判斷該數(shù)據(jù)存儲(chǔ)操作所要存儲(chǔ)的數(shù)據(jù)的目標(biāo)路徑是否需符合預(yù)設(shè)的正則表達(dá)式;
例如,應(yīng)用程序保存的本地文件都在路徑a:\b\c\下,現(xiàn)在期望對應(yīng)用程序本地文件中的.xml格式的文件進(jìn)行加密存儲(chǔ),預(yù)先確定了正則表達(dá)式a:\b\c\*.xml來過濾符合該正則表達(dá)式的文件。
步驟24:若符合,則獲取終端設(shè)備的imei碼,若不符合則執(zhí)行步驟28;
步驟25:以所述唯一標(biāo)識(shí)作為密鑰算法的輸入,通過密鑰算法,得到加密密鑰;
步驟26:通過得到的加密密鑰,以及與該終端設(shè)備類型對應(yīng)的加密算法,對待保存的數(shù)據(jù)進(jìn)行加密;
步驟27:將加密后的數(shù)據(jù)存儲(chǔ)到目標(biāo)路徑下。
步驟28:若不符合,則加固殼不對該數(shù)據(jù)進(jìn)行處理,而由應(yīng)用程序?qū)⒃摂?shù)據(jù)進(jìn)行存儲(chǔ)。
本申請實(shí)施例2提供的方法,通過在應(yīng)用程序運(yùn)行時(shí),攔截該應(yīng)用程序的數(shù)據(jù)操作,針對數(shù)據(jù)操作中的需要在存儲(chǔ)介質(zhì)中加密的數(shù)據(jù),如果該數(shù)據(jù)操作是存儲(chǔ)操作時(shí),則對該數(shù)據(jù)進(jìn)行加密,然后將加密后的數(shù)據(jù)寫入到存儲(chǔ)介質(zhì)中,這樣應(yīng)用程序的數(shù)據(jù)便不容易被其它應(yīng)用程序隨意讀取,提高了現(xiàn)有技術(shù)中應(yīng)用程序的安全性。
實(shí)施例3
為解決現(xiàn)有技術(shù)中應(yīng)用程序的安全性較低的問題,基于上述實(shí)施例1和2,本申請實(shí)施例3提供一種數(shù)據(jù)存儲(chǔ)裝置。該數(shù)據(jù)存儲(chǔ)裝置的結(jié)構(gòu)示意圖如圖3所示,主要包括下述功能單元:
攔截單元31,用于在應(yīng)用程序運(yùn)行時(shí),攔截所述應(yīng)用程序的數(shù)據(jù)操作,所述數(shù)據(jù)操作為針對所述應(yīng)用程序的本地文件中數(shù)據(jù)的讀寫操作;
操作單元32,用于在確定所述數(shù)據(jù)操作所針對的數(shù)據(jù)是需要在存儲(chǔ)介質(zhì)中加密的數(shù)據(jù),且所述數(shù)據(jù)操作是向所述存儲(chǔ)介質(zhì)中寫入所述數(shù)據(jù)的操作時(shí),對所述數(shù)據(jù)進(jìn)行加密,將加密后的數(shù)據(jù)寫入到所述存儲(chǔ)介質(zhì)中。
在一種實(shí)施方式中,實(shí)施裝置還包括判斷單元33,用于在攔截單元31攔截所述應(yīng)用程序的數(shù)據(jù)操作后,判斷所述數(shù)據(jù)操作所針對的數(shù)據(jù)是否是需要在存儲(chǔ)介質(zhì)中加密的數(shù)據(jù)。
在一種實(shí)施方式中判斷單元33具體用于:
判斷所述數(shù)據(jù)的存儲(chǔ)路徑是否符合預(yù)設(shè)的正則表達(dá)式;
若所述數(shù)據(jù)的存儲(chǔ)路徑符合預(yù)設(shè)的正則表達(dá)式,則確定所述數(shù)據(jù)操作所針對的數(shù)據(jù)是需要在存儲(chǔ)介質(zhì)中加密的數(shù)據(jù);
若所述數(shù)據(jù)的存儲(chǔ)路徑不符合預(yù)設(shè)的正則表達(dá)式,則確定所述數(shù)據(jù)操作所針對的數(shù)據(jù)是不需要在存儲(chǔ)介質(zhì)中加密的數(shù)據(jù)。
在一種實(shí)施方式中,操作單元32,具體用于根據(jù)所述應(yīng)用程序當(dāng)前運(yùn)行的終端設(shè)備的唯一標(biāo)識(shí),確定對所述數(shù)據(jù)進(jìn)行加密的加密規(guī)則;
根據(jù)確定的所述加密規(guī)則,對所述數(shù)據(jù)進(jìn)行加密。
在一種實(shí)施方式中,所述加密規(guī)則包括加密密鑰;
操作單元32,具體用于根據(jù)所述應(yīng)用程序當(dāng)前運(yùn)行的終端設(shè)備的唯一標(biāo)識(shí),確定對所述數(shù)據(jù)進(jìn)行加密的加密密鑰。
在一種實(shí)施方式中,操作單元32,具體用于:
確定所述終端設(shè)備的唯一標(biāo)識(shí);
以所述唯一標(biāo)識(shí)作為密鑰算法的輸入,通過密鑰算法,得到加密密鑰。
在一種實(shí)施方式中,所述唯一標(biāo)識(shí)包括下述至少一種:
物理網(wǎng)卡地址;
國際移動(dòng)設(shè)備身份碼。
在一種實(shí)施方式中,所述裝置還包括:
讀取單元34,用于在確定所述數(shù)據(jù)操作所針對的數(shù)據(jù)是需要解密的數(shù)據(jù),且所述數(shù)據(jù)操作是從所述存儲(chǔ)介質(zhì)中讀取所述數(shù)據(jù)的操作時(shí),從所述存儲(chǔ)介質(zhì)中讀取加密后的所述數(shù)據(jù);
解密單元35,對加密后的所述數(shù)據(jù)進(jìn)行解密,將解密后的數(shù)據(jù)返回給所述應(yīng)用程序。
在一種實(shí)施方式中,所述文件包括下述至少一種:通過可擴(kuò)展標(biāo)記語言編寫的文件;數(shù)據(jù)庫類型的文件。
本申請實(shí)施例3提供的裝置,通過在應(yīng)用程序運(yùn)行時(shí),攔截該應(yīng)用程序的數(shù)據(jù)操作,針對數(shù)據(jù)操作中的需要在存儲(chǔ)介質(zhì)中加密的數(shù)據(jù),如果該數(shù)據(jù)操作是存儲(chǔ)操作時(shí),則對該數(shù)據(jù)進(jìn)行加密,然后將加密后的數(shù)據(jù)寫入到存儲(chǔ)介質(zhì)中,這樣應(yīng)用程序的數(shù)據(jù)便不容易被其它應(yīng)用程序隨意讀取,提高了現(xiàn)有技術(shù)中應(yīng)用程序的安全性。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、cd-rom、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
在一個(gè)典型的配置中,計(jì)算設(shè)備包括一個(gè)或多個(gè)處理器(cpu)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(ram)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(rom)或閃存(flashram)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。
計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由任何方法或技術(shù)來實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(pram)、靜態(tài)隨機(jī)存取存儲(chǔ)器(sram)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram)、其他類型的隨機(jī)存取存儲(chǔ)器(ram)、只讀存儲(chǔ)器(rom)、電可擦除可編程只讀存儲(chǔ)器(eeprom)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲(chǔ)器(cd-rom)、數(shù)字多功能光盤(dvd)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁磁盤存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪問的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括暫存電腦可讀媒體(transitorymedia),如調(diào)制的數(shù)據(jù)信號(hào)和載波。
還需要說明的是,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設(shè)備中還存在另外的相同要素。
以上所述僅為本申請的實(shí)施例而已,并不用于限制本申請。對于本領(lǐng)域技術(shù)人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請的權(quán)利要求范圍之內(nèi)。