一種應用程序?qū)懭牒妥x取數(shù)據(jù)的方法及裝置的制造方法
【專利摘要】本發(fā)明實施例提供一種應用程序?qū)懭牒妥x取數(shù)據(jù)的方法及裝置,其中所述寫入方法包括:接收數(shù)據(jù)寫入請求,所述數(shù)據(jù)寫入請求包括密鑰信息;調(diào)用SharePreferences接口,依據(jù)所述密鑰信息創(chuàng)建加密的目標文件;將應用程序需要寫入所述目標文件的數(shù)據(jù)緩存在內(nèi)存中,并在內(nèi)存中對所述數(shù)據(jù)進行加密處理;將加密處理后的數(shù)據(jù)寫入所述目標文件中。本發(fā)明實施例利用SharePreferences接口進行數(shù)據(jù)加密,使得終端即使被root,惡意程序也無法解密查看相關(guān)信息,且無法竄改相關(guān)信息,保證了數(shù)據(jù)的安全性。
【專利說明】
一種應用程序?qū)懭牒妥x取數(shù)據(jù)的方法及裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明實施例涉及數(shù)據(jù)存儲技術(shù)領(lǐng)域,尤其涉及一種應用程序?qū)懭霐?shù)據(jù)的方法、一種應用程序讀取數(shù)據(jù)的方法、一種應用程序?qū)懭霐?shù)據(jù)的裝置以及一種應用程序讀取數(shù)據(jù)的裝置。
【背景技術(shù)】
[0002]在安卓Android操作系統(tǒng)中,如果應用程序中有少量的數(shù)據(jù)要保存,而且這些數(shù)據(jù)的格式很簡單,是一些普通的字符串、基本的數(shù)據(jù)類型,比如:應用程序的各種數(shù)據(jù)(如:是否打開同步,是否打開音響,是否使用振動等)、游戲的玩家積分等,可以用Android提供的SharedPreference s進行數(shù)據(jù)保存。SharedPreference s是Andro id平臺上一個輕量級的存儲類,用來保存應用的一些常用配置。
[0003]目前很多安裝在Android系統(tǒng)中的應用程序都要求終端進行root之后才能進行使用,或是某功能要root之后才能使用,因此很多用戶都把終端進行了root,這樣導致終端中的應用程序在其對應的data分區(qū)下存儲的sharedPreferences文件可以被隨意讀取和修改,而這類文件往往存儲了與用戶密切相關(guān)的一些信息,如賬號和密碼等,安全隱患較大。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例提供一種應用程序?qū)懭牒妥x取數(shù)據(jù)的方法及裝置,用以解決現(xiàn)有技術(shù)中sharedPreferences文件被隨意讀取和修改導致的安全隱患較大的問題。
[0005]本發(fā)明實施例提供一種應用程序?qū)懭霐?shù)據(jù)的方法,包括:
[0006]接收數(shù)據(jù)寫入請求,所述數(shù)據(jù)寫入請求包括密鑰信息;
[0007]調(diào)用SharePreferences接口,依據(jù)所述密鑰信息創(chuàng)建加密的目標文件;
[0008]將應用程序需要寫入所述目標文件的數(shù)據(jù)緩存在內(nèi)存中,并在內(nèi)存中對所述數(shù)據(jù)進行加密處理;
[0009]將加密處理后的數(shù)據(jù)寫入所述目標文件中。
[0010]本發(fā)明實施例還提供一種應用程序讀取數(shù)據(jù)的方法,包括:
[0011 ]接收數(shù)據(jù)讀取請求,所述數(shù)據(jù)讀取請求包括密鑰信息;
[0012]調(diào)用SharePreferences接口,依據(jù)所述密鑰信息將加密的目標文件中的數(shù)據(jù)進行解密處理;
[0013]將解密后的數(shù)據(jù)緩存在內(nèi)存中,以供應用程序讀取。
[0014]本發(fā)明實施例還提供一種應用程序?qū)懭霐?shù)據(jù)的裝置,包括:
[0015]寫入請求接收模塊,用于接收數(shù)據(jù)寫入請求,所述數(shù)據(jù)寫入請求包括密鑰信息;
[0016]文件創(chuàng)建模塊,用于調(diào)用SharePreferences接口,依據(jù)所述密鑰信息創(chuàng)建加密的目標文件;
[0017]加密模塊,用于將應用程序需要寫入所述目標文件的數(shù)據(jù)緩存在內(nèi)存中,并在內(nèi)存中對所述數(shù)據(jù)進行加密處理;
[0018]數(shù)據(jù)寫入模塊,用于將加密處理后的數(shù)據(jù)寫入所述目標文件中。
[0019]本發(fā)明實施例還提供一種應用程序讀取數(shù)據(jù)的裝置,包括:
[0020]讀取請求接收模塊,用于接收數(shù)據(jù)讀取請求,所述數(shù)據(jù)讀取請求包括密鑰信息;
[0021]解密模塊,用于調(diào)用SharePreferences接口,依據(jù)所述密鑰信息將加密的目標文件中的數(shù)據(jù)進行解密處理;
[0022]數(shù)據(jù)讀取模塊,用于將解密后的數(shù)據(jù)緩存在內(nèi)存中,供應用程序讀取。
[0023]本發(fā)明實施例提供的一種應用程序?qū)懭牒妥x取數(shù)據(jù)的方法及裝置,調(diào)用SharePreferences接口,能夠創(chuàng)建加密的目標文件,在應用程序向加密的目標文件寫入數(shù)據(jù)時,首先將需要寫入所述目標文件的數(shù)據(jù)緩存在內(nèi)存中,并在內(nèi)存中對所述數(shù)據(jù)進行加密處理,而后將加密處理后的數(shù)據(jù)寫入所述目標文件中,在向該加密的目標文件讀取數(shù)據(jù)時,先對需要讀取的數(shù)據(jù)進行解密處理,并解密后的數(shù)據(jù)緩存在內(nèi)存中供應用程序讀取。利用SharePreferences接口進行數(shù)據(jù)加密,使得終端即使被root,惡意程序也無法解密查看相關(guān)信息,且無法竄改相關(guān)信息,保證了數(shù)據(jù)的安全性。
[0024]同時,由于SharePreferences涉及的是輕量級的數(shù)據(jù)存儲,存儲的數(shù)據(jù)量少(都是簡單字符串),對寫入和讀取性能不會有影響。
【附圖說明】
[0025]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0026]圖1為本發(fā)明實施例的一種應用程序?qū)懭霐?shù)據(jù)的方法實施例的步驟流程圖;
[0027]圖2為本發(fā)明實施例的一種應用程序讀取數(shù)據(jù)的方法實施例的步驟流程圖;
[0028]圖3為本發(fā)明實施例的一種應用程序?qū)懭霐?shù)據(jù)的裝置實施例的結(jié)構(gòu)框圖;
[0029]圖4為本發(fā)明實施例的一種應用程序讀取數(shù)據(jù)的裝置實施例的結(jié)構(gòu)框圖。
【具體實施方式】
[0030]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0031]參考圖1,示出了本發(fā)明實施例的一種應用程序?qū)懭霐?shù)據(jù)的方法實施例的步驟流程圖,本發(fā)明實施例可以應用于安裝有Android操作系統(tǒng)終端中,例如,手機、PDA(PersonalDigital Assistant,個人數(shù)字助理)等。
[0032]本發(fā)明實施例具體可以包括如下步驟:
[0033]步驟101,接收數(shù)據(jù)寫入請求,所述數(shù)據(jù)寫入請求包括密鑰信息;
[0034]當應用程序需要寫入數(shù)據(jù)時,可以生成數(shù)據(jù)寫入請求,該數(shù)據(jù)寫入請求可以包括密鑰信息。
[0035]該密鑰信息可以為用戶傳入的密鑰信息,如果用戶沒有傳入密鑰信息,則該密鑰信息可以為預設規(guī)則的信息,例如,該預設規(guī)則的信息可以是SharePref erences接口所在的包名,即默認使用SharePreferences接口所在的包名作為密鑰信息。其中,密鑰是一種參數(shù),它是在明文轉(zhuǎn)換為密文或?qū)⒚芪霓D(zhuǎn)換為明文的算法中輸入的參數(shù),密鑰分為對稱密鑰與非對稱密鑰。
[0036]步驟102,調(diào)用SharePreferences接口,依據(jù)所述密鑰信息創(chuàng)建加密的目標文件;
[0037]應用于本發(fā)明實施例,通過調(diào)用SharePreferences接口,可以生成加密的目標文件,該目標文件為xml文件。
[0038]在本發(fā)明實施例的一種優(yōu)選實施例中,步驟101進一步可以為:
[0039]iJf^Context.getSharedPreferences (String name, int mode , String seckey)方法,獲得SharePref erences對象,生成加密的目標文件。
[0040]具體的,SharedPref erences本身是一個接口,程序無法直接創(chuàng)建SharedPerences實例,只能通過上下文對象Context提供的getSharedPreferences方法來獲取SharedPref erences實例。應用于本發(fā)明實施例,對傳統(tǒng)的getSharedPref erences (Stringname , int mode)方法進行了改進,在sharedPreferences接口中增加密鑰接口,改進后的getSharedPreferences方法為getSharedPreferences(String name , int mode , Stringseckey),得到的是加密后的xml目標文件。
[0041]在該getSharedPreferences (String name, int mode, String seckey)中:
[0042]name表示目標文件名稱,不需要加后綴.xml,系統(tǒng)會自動添加上,一般這個目標文件存儲在/data/data/〈package name>/shared_prefsl^。
[0043]mode表示操作模式,即文件讀寫方式,其值可以有三種,分別為:
[0044]Context.M0DE_PRIVATE:指定該SharedPreferences數(shù)據(jù)只能被本應用程序讀、與;
[0045]Context.M0DE_W0RLD_READABLE:指定該SharedPreferences 數(shù)據(jù)能被其他應用程序讀,但不能寫;
[0046]Context.M0DE_W0RLD_WRITEABLE:指定該SharedPref erences 數(shù)據(jù)能被其他應用程序讀寫。
[0047]seckey表示密鑰信息。
[0048]在本發(fā)明實施例中,在操作系統(tǒng)中修改了接口getSharedPreferences(...)的內(nèi)部實現(xiàn),但并不修改接口名。只要知道接口名沒有變化,開發(fā)者就可以和android原生系統(tǒng)一樣調(diào)用接口,所以整過加解密過程對開發(fā)者是不可見的,也不會影響到他們的邏輯和使用,操作起來非常方便。
[0049]步驟103,將應用程序需要寫入所述目標文件的數(shù)據(jù)緩存在內(nèi)存中,并在內(nèi)存中對所述數(shù)據(jù)進行加密處理;
[0050]SharedPreferences接口本身并沒有提供寫入數(shù)據(jù)的能力,而是通過SharedPref erences 的內(nèi)部接口 SharedPreferences.Edi tor 寫入數(shù)據(jù),Edi tor 可以提供如下方法向SharedPref erences寫入數(shù)據(jù):
[0051 ] I)SharedPreferences.Editor clear():清空SharedPreferences里面的數(shù)據(jù)。
[0052] 2)SharedPreferences.Editor putXxx( String key , xxx value):向SharedPref erences存入指定的Key對應的數(shù)據(jù)。
[0053]3) SharedPref erences.Editor remove (String key):刪除 SharedPreferences 里指定key對應的數(shù)據(jù)項。
[0054]4)boolean commitO:當Editor編輯完成后,調(diào)用該方法提交修改。
[0055]當應用程序需要向SharedPreferences寫入數(shù)據(jù)時,該數(shù)據(jù)暫時緩存在終端的內(nèi)存中,而后啟動工作線程,對該寫入的數(shù)據(jù)進行異步加密處理。
[0056]在具體實現(xiàn)中,可以米用AES(The Advanced Encrypt1n Standard,美國國家標準與技術(shù)研究所用于加密電子數(shù)據(jù)的規(guī)范)或DES(Data Encrypt1n Algorithm,數(shù)據(jù)加密算法)等加解密算法異步對內(nèi)存中的數(shù)據(jù)進行加密。
[0057]在本發(fā)明實施例的一種優(yōu)選實施例中,步驟102進一步可以為:
[0058]將應用程序需要寫入所述目標文件的數(shù)據(jù)緩存在內(nèi)存中,經(jīng)過預設時間段后,將內(nèi)存中緩存的數(shù)據(jù)進行加密處理。
[0059]具體而言,當應用程序?qū)懭霐?shù)據(jù)的寫入請求很頻繁時,可以間隔預設時間段(例如,間隔200毫秒)進行數(shù)據(jù)的加密處理與寫入文件,即可以把多個寫入請求在一個時間點內(nèi)進行數(shù)據(jù)加密和寫入文件,有效減少文件打開和寫入次數(shù),從而提高寫入文件的效率和性能。
[0060]步驟104,將加密處理后的數(shù)據(jù)寫入所述目標文件中。
[0061]寫入的數(shù)據(jù)在內(nèi)存中經(jīng)過加密處理以后,可以將該加密處理后的數(shù)據(jù)寫入上述加密的目標文件中,從而完成數(shù)據(jù)寫入的過程。
[0062]在本發(fā)明實施例中,調(diào)用SharePreferences接口,能夠創(chuàng)建加密的目標文件,在應用程序向加密的目標文件寫入數(shù)據(jù)時,首先將需要寫入所述目標文件的數(shù)據(jù)緩存在內(nèi)存中,并在內(nèi)存中對所述數(shù)據(jù)進行加密處理,而后將加密處理后的數(shù)據(jù)寫入所述目標文件中。利用SharePref erences接口進行數(shù)據(jù)加密,使得終端即使被root,惡意程序也無法解密查看相關(guān)信息,且無法竄改相關(guān)信息,保證了數(shù)據(jù)的安全性。
[0063]同時,由于SharePreferences涉及的是輕量級的數(shù)據(jù)存儲,存儲的數(shù)據(jù)量少(都是簡單字符串),對寫入性能不會有影響。
[0064]參考圖2,示出了本發(fā)明實施例的一種應用程序讀取數(shù)據(jù)的方法實施例的步驟流程圖,本發(fā)明實施例可以應用于安裝有Android操作系統(tǒng)終端中,例如,手機、PDA(PersonalDigital Assistant,個人數(shù)字助理)等。
[0065]本發(fā)明實施例具體可以包括如下步驟:
[0066]步驟201,接收數(shù)據(jù)讀取請求,所述數(shù)據(jù)讀取請求包括密鑰信息;
[0067]當應用程序需要讀取數(shù)據(jù)時,可以生成數(shù)據(jù)讀取請求,該數(shù)據(jù)讀取請求可以包括密鑰信息。
[0068]該密鑰信息可以為用戶傳入的密鑰信息,如果用戶沒有傳入密鑰信息,則該密鑰信息可以為預設規(guī)則的信息,例如,該預設規(guī)則的信息可以是SharePref erences接口所在的包名,即默認使用SharePreferences接口所在的包名作為密鑰信息。其中,密鑰是一種參數(shù),它是在明文轉(zhuǎn)換為密文或?qū)⒚芪霓D(zhuǎn)換為明文的算法中輸入的參數(shù),密鑰分為對稱密鑰與非對稱密鑰。
[0069]步驟202,調(diào)用SharePreferences接口,依據(jù)所述密鑰信息將加密的目標文件中的數(shù)據(jù)進行解密處理;
[0070]應用于本發(fā)明實施例,通過調(diào)用SharePreferences接口,可以生成加密的目標文件。
[0071]在本發(fā)明實施例的一種優(yōu)選實施例中,所述加密的目標文件可以采用如下方式生成:
[0072]iJf^Context.getSharedPreferences (String name, int mode , String seckey)方法,獲得SharePref erences對象,生成加密的目標文件。
[0073]具體的,SharedPref erences本身是一個接口,程序無法直接創(chuàng)建SharedPerences實例,只能通過上下文對象Context提供的getSharedPreferences方法來獲取SharedPref erences實例。應用于本發(fā)明實施例,對傳統(tǒng)的getSharedPref erences (Stringname , int mode)方法進行了改進,在sharedPreferences接口中增加密鑰接口,改進后的getSharedPreferences方法為getSharedPreferences(String name , int mode , Stringseckey),得到的是加密后的xml目標文件。
[0074]在該getSharedPreferences (String name, int mode, String seckey)中:
[0075]name表示目標文件名稱,不需要加后綴.xml,系統(tǒng)會自動添加上,一般這個目標文件存儲在/data/data/〈package name>/shared_prefsl^。
[0076]mode表示操作模式,即文件讀寫方式,其值可以有三種,分別為:
[0077]Context.M0DE_PRIVATE:指定該SharedPreferences數(shù)據(jù)只能被本應用程序讀、與;
[0078]Context.M0DE_W0RLD_READABLE:指定該SharedPreferences 數(shù)據(jù)能被其他應用程序讀,但不能寫;
[0079]Context.M0DE_W0RLD_WRITEABLE:指定該SharedPref erences 數(shù)據(jù)能被其他應用程序讀寫。
[0080]seckey表示密鑰信息。
[0081]在具體實現(xiàn)中,當應用程序需要從SharedPreferences讀取數(shù)據(jù)時,首先也需要調(diào)用getSharedPref erences方法實例化出一個SharedPref erences對象。與上述寫入數(shù)據(jù)的過程相同,在本發(fā)明實施例中,開發(fā)者傳入密鑰信息后,調(diào)用的是getSharedPref erences(String name, int mode, String seckey)的方法進行SharedPreferences對象實例化。
[0082]實例化SharedPreferences對象以后,則可以米用對應的解密算法對加密的目標文件中的數(shù)據(jù)進行解密。
[0083]步驟203,將解密后的數(shù)據(jù)緩存在內(nèi)存中,以供應用程序讀取。
[0084]加密的目標文件的數(shù)據(jù)進行解密后,可以將該解密后的數(shù)據(jù)讀取到內(nèi)存中進行緩存,以供應用程序讀取。
[0085]SharedPref erences 提供了獲得數(shù)據(jù)的方法,如get String (String key, StringdefValue)、getInt(String key,int defValue)等。
[0086]在本發(fā)明實施例中,調(diào)用SharePreferences接口,能夠從加密的目標文件中讀取數(shù)據(jù),對數(shù)據(jù)進行解密后緩存在內(nèi)存中,以供應用程序讀取。利用SharePreferences接口對目標文件進行加密,使得終端即使被root,惡意程序也無法解密查看相關(guān)信息,且無法竄改相關(guān)信息,保證了數(shù)據(jù)的安全性。
[0087]同時,由于SharePreferences涉及的是輕量級的數(shù)據(jù)存儲,存儲的數(shù)據(jù)量少(都是簡單字符串),對數(shù)據(jù)讀取性能不會有影響。
[0088]參考圖3,示出了本發(fā)明實施例的一種應用程序?qū)懭霐?shù)據(jù)的裝置實施例的結(jié)構(gòu)框圖,其中,本發(fā)明實施例中可以通過硬件處理器(hardware processor)來實現(xiàn)相關(guān)功能模塊,具體可以包括如下模塊:
[0089]寫入請求接收模塊301,用于接收數(shù)據(jù)寫入請求,所述數(shù)據(jù)寫入請求包括密鑰信息;
[°09°] 文件創(chuàng)建模塊302,用于調(diào)用SharePreferences接口,依據(jù)所述密鑰信息創(chuàng)建加密的目標文件;
[0091]加密模塊303,用于將應用程序需要寫入所述目標文件的數(shù)據(jù)緩存在內(nèi)存中,并在內(nèi)存中對所述數(shù)據(jù)進行加密處理;
[0092]數(shù)據(jù)寫入模塊304,用于將加密處理后的數(shù)據(jù)寫入所述目標文件中。
[0093]在本發(fā)明實施例的一種優(yōu)選實施例中,所述文件創(chuàng)建模塊302可以包括如下子模塊:
[0094]方法調(diào)用子模塊,用于調(diào)用Context.getSharedPref erences (String name , intmode,String seckey)方法,獲得SharePreferences對象,生成加密的目標文件;其中,所述name表示目標文件名稱;所述mode表示操作模式;所述seckey表示密鑰信息。
[0095]在本發(fā)明實施例的一種優(yōu)選實施例中,所述密鑰信息為用戶傳入的密鑰信息,或者,所述密鑰信息為預設規(guī)則的信息。
[0096]在本發(fā)明實施例的一種優(yōu)選實施例中,所述加密模塊303可以包括如下子模塊:
[0097]周期加密子模塊,用于將應用程序需要寫入所述目標文件的數(shù)據(jù)緩存在內(nèi)存中,經(jīng)過預設時間段后,將內(nèi)存中緩存的數(shù)據(jù)進行加密處理。
[0098]對于圖3的裝置實施例而言,由于其與上述方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
[0099]參考圖4,示出了本發(fā)明實施例的一種應用程序讀取數(shù)據(jù)的裝置實施例的結(jié)構(gòu)框圖,其中,本發(fā)明實施例中可以通過硬件處理器(hardware processor)來實現(xiàn)相關(guān)功能模塊,具體可以包括如下模塊:
[0100]讀取請求接收模塊401,用于接收數(shù)據(jù)讀取請求,所述數(shù)據(jù)讀取請求包括密鑰信息;
[0101 ] 解密模塊402,用于調(diào)用SharePref erences接口,依據(jù)所述密鑰信息將加密的目標文件中的數(shù)據(jù)進行解密處理;
[0102]數(shù)據(jù)讀取模塊403,用于將解密后的數(shù)據(jù)緩存在內(nèi)存中,供應用程序讀取。
[0103]在本發(fā)明實施例的一種優(yōu)選實施例中,所述加密的目標文件可以采用如下方式生成:
[0104]iJf^Context.getSharedPref erences (String name, int mode , String seckey)方法,獲得SharePreferences對象,生成加密的目標文件;其中,所述name表示目標文件名稱;所述mode表示操作模式;所述seckey表示密鑰信息。
[0105]在本發(fā)明實施例的一種優(yōu)選實施例中,所述密鑰信息為用戶傳入的密鑰信息,或者,所述密鑰信息為預設規(guī)則的信息。
[0106]對于圖4的裝置實施例而言,由于其與上述方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
[0107]以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實施。
[0108]通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實施方式可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件。基于這樣的理解,上述技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在計算機可讀存儲介質(zhì)中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行各個實施例或者實施例的某些部分所述的方法。
[0109]最后應說明的是:以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應當理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。
【主權(quán)項】
1.一種應用程序?qū)懭霐?shù)據(jù)的方法,其特征在于,包括: 接收數(shù)據(jù)寫入請求,所述數(shù)據(jù)寫入請求包括密鑰信息; 調(diào)用SharePreferences接口,依據(jù)所述密鑰信息創(chuàng)建加密的目標文件; 將應用程序需要寫入所述目標文件的數(shù)據(jù)緩存在內(nèi)存中,并在內(nèi)存中對所述數(shù)據(jù)進行加密處理; 將加密處理后的數(shù)據(jù)寫入所述目標文件中。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述調(diào)用SharePreferences接口,依據(jù)所述密鑰信息創(chuàng)建加密的目標文件的步驟包括: iJlfflContext.getSharedPreferences(String name, int mode,String seckey)方法,獲得SharePreferences對象,生成加密的目標文件;其中,所述name表示目標文件名稱;所述mode表示操作模式;所述seckey表示密鑰信息。3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述密鑰信息為用戶傳入的密鑰信息,或者,所述密鑰信息為預設規(guī)則的信息。4.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述將應用程序需要寫入所述目標文件的數(shù)據(jù)緩存在內(nèi)存中,并在內(nèi)存中對所述數(shù)據(jù)進行加密處理的步驟為: 將應用程序需要寫入所述目標文件的數(shù)據(jù)緩存在內(nèi)存中,經(jīng)過預設時間段后,將內(nèi)存中緩存的數(shù)據(jù)進行加密處理。5.一種應用程序讀取數(shù)據(jù)的方法,其特征在于,包括: 接收數(shù)據(jù)讀取請求,所述數(shù)據(jù)讀取請求包括密鑰信息; 調(diào)用SharePreferences接口,依據(jù)所述密鑰信息將加密的目標文件中的數(shù)據(jù)進行解密處理; 將解密后的數(shù)據(jù)緩存在內(nèi)存中,以供應用程序讀取。6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述加密的目標文件采用如下方式生成: iJlfflContext.getSharedPreferences (String name, int mode, String seckey)方法,獲得SharePreferences對象,生成加密的目標文件;其中,所述name表示目標文件名稱;所述mode表示操作模式;所述seckey表示密鑰信息。7.根據(jù)權(quán)利要求5或6所述的方法,其特征在于,所述密鑰信息為用戶傳入的密鑰信息,或者,所述密鑰信息為預設規(guī)則的信息。8.一種應用程序?qū)懭霐?shù)據(jù)的裝置,其特征在于,包括: 寫入請求接收模塊,用于接收數(shù)據(jù)寫入請求,所述數(shù)據(jù)寫入請求包括密鑰信息; 文件創(chuàng)建模塊,用于調(diào)用SharePreferences接口,依據(jù)所述密鑰信息創(chuàng)建加密的目標文件; 加密模塊,用于將應用程序需要寫入所述目標文件的數(shù)據(jù)緩存在內(nèi)存中,并在內(nèi)存中對所述數(shù)據(jù)進行加密處理; 數(shù)據(jù)寫入模塊,用于將加密處理后的數(shù)據(jù)寫入所述目標文件中。9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述文件創(chuàng)建模塊包括: 方法調(diào)用子模塊,用于調(diào)用Context.getSharedPreferences(String name,int mode,String seckey)方法,獲得SharePreferences對象,生成加密的目標文件;其中,所述name表示目標文件名稱;所述mode表示操作模式;所述seckey表示密鑰信息。10.根據(jù)權(quán)利要求8或9所述的裝置,其特征在于,所述密鑰信息為用戶傳入的密鑰信息,或者,所述密鑰信息為預設規(guī)則的信息。11.根據(jù)權(quán)利要求8或9所述的裝置,其特征在于,所述加密模塊包括: 周期加密子模塊,用于將應用程序需要寫入所述目標文件的數(shù)據(jù)緩存在內(nèi)存中,經(jīng)過預設時間段后,將內(nèi)存中緩存的數(shù)據(jù)進行加密處理。12.一種應用程序讀取數(shù)據(jù)的裝置,其特征在于,包括: 讀取請求接收模塊,用于接收數(shù)據(jù)讀取請求,所述數(shù)據(jù)讀取請求包括密鑰信息; 解密模塊,用于調(diào)用SharePreferences接口,依據(jù)所述密鑰信息將加密的目標文件中的數(shù)據(jù)進行解密處理; 數(shù)據(jù)讀取模塊,用于將解密后的數(shù)據(jù)緩存在內(nèi)存中,供應用程序讀取。13.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述加密的目標文件采用如下方式生成: iJlfflContext.getSharedPreferences (String name, int mode, String seckey)方法,獲得SharePreferences對象,生成加密的目標文件;其中,所述name表示目標文件名稱;所述mode表示操作模式;所述seckey表示密鑰信息。14.根據(jù)權(quán)利要求12或13所述的裝置,其特征在于,所述密鑰信息為用戶傳入的密鑰信息,或者,所述密鑰信息為預設規(guī)則的信息。
【文檔編號】G06F21/62GK105825143SQ201610128369
【公開日】2016年8月3日
【申請日】2016年3月7日
【發(fā)明人】馮紫華
【申請人】樂視移動智能信息技術(shù)(北京)有限公司