本發(fā)明涉及信息處理技術領域,尤其涉及一種用于數(shù)據(jù)的加密方法及裝置。
背景技術:
隨著互聯(lián)網(wǎng)技術的發(fā)展,數(shù)據(jù)的安全也越來越重要,目前通常會采用成熟的加密算法來對數(shù)據(jù)進行加密保護。
然而,申請人發(fā)現(xiàn),黑客在破解加密算法時,通常會通過反編譯來查看其采用的是什么加密算法,并且首先會判斷上述加密算法是否為現(xiàn)有成熟的加密算法,而由于現(xiàn)有的數(shù)據(jù)加密方法采用的是現(xiàn)有成熟的加密算法,這樣黑客容易破解該加密算法。
可見,現(xiàn)有技術中,由于用于數(shù)據(jù)加密的加密算法容易被破解,存在安全性較低的技術問題。
技術實現(xiàn)要素:
本發(fā)明提供一種用于數(shù)據(jù)的加密方法及裝置,用以解決現(xiàn)有技術中由于用于數(shù)據(jù)加密的加密算法容易被破解,存在安全性較低的技術問題。
本發(fā)明第一方面提供了一種用于數(shù)據(jù)的加密方法,所述方法包括:
基于預設函數(shù)模板編寫用于加密的邏輯運算函數(shù),所述用于加密的邏輯運算函數(shù)包括至少兩種計算函數(shù),所述預設函數(shù)模板包括至少一種模板類型;
組合所述邏輯運算函數(shù)中的不同計算函數(shù),獲得第一函數(shù);
修改所述模板類型,并基于修改后的模板類型和所述第一函數(shù)生成加密函數(shù);
基于所述加密函數(shù),對所述數(shù)據(jù)進行加密。
可選地,在所述修改所述模板類型,并基于修改后的模板類型和所述第一函數(shù)生成加密函數(shù)之后,所述方法還包括:
基于所述預設函數(shù)模板,將所述加密函數(shù)轉(zhuǎn)換成與所述預設函數(shù)模板相對應的模板函數(shù)類型的第一加密函數(shù)。
可選地,所述模板類型包括至少一種數(shù)據(jù)類型;所述修改所述模板類型,并基于修改后的模板類型和所述第一函數(shù)生成加密函數(shù),包括:
通過修改所述數(shù)據(jù)類型,從而修改所述模板類型,并獲得修改后的模板類型;
根據(jù)所述修改后的模板類型,生成多個包含所述第一函數(shù)的代碼的加密代碼,將所述加密代碼作為所述加密函數(shù)。
可選地,所述計算函數(shù)為加法函數(shù)、減法函數(shù)、異或運算函數(shù)和移位運算函數(shù)中的一種。
基于同樣的發(fā)明構(gòu)思,本發(fā)明第二方面提供了一種用于數(shù)據(jù)的加密裝置,所述裝置包括:
編寫模塊,用于基于預設函數(shù)模板編寫用于加密的邏輯運算函數(shù),所述用于加密的邏輯運算函數(shù)包括至少兩種計算函數(shù),所述預設函數(shù)模板包括至少一種模板類型;
組合模塊,用于組合所述邏輯運算函數(shù)中的不同計算函數(shù),獲得第一函數(shù);
生成模塊,用于修改所述模板類型,并基于修改后的模板類型和所述第一函數(shù)生成加密函數(shù);
加密模塊,用于基于所述加密函數(shù),對所述數(shù)據(jù)進行加密。
可選的,所述裝置還包括處理模塊,用于在所述修改所述模板類型,并基于修改后的模板類型和所述第一函數(shù)生成加密函數(shù)之后,基于所述預設函數(shù)模板,將所述加密函數(shù)轉(zhuǎn)換成與所述預設函數(shù)模板相對應的模板函數(shù)類型的第一加密函數(shù)。
可選的,所述模板類型包括至少一種數(shù)據(jù)類型;所述生成模塊還用于:
通過修改所述數(shù)據(jù)類型,從而修改所述模板類型,并獲得修改后的模板類型;
根據(jù)所述修改后的模板類型,生成多個包含所述第一函數(shù)的代碼的加密代碼,將所述加密代碼作為所述加密函數(shù)。
可選的,所述計算函數(shù)為加法函數(shù)、減法函數(shù)、異或運算函數(shù)和移位運算函數(shù)中的一種。
基于同樣的發(fā)明構(gòu)思,本發(fā)明第三方面提供了一種計算機可讀存儲介質(zhì),其上存儲有計算機程序,該程序被處理器執(zhí)行時實現(xiàn)以下步驟:
基于預設函數(shù)模板編寫用于加密的邏輯運算函數(shù),所述用于加密的邏輯運算函數(shù)包括至少兩種計算函數(shù),所述預設函數(shù)模板包括至少一種模板類型;
組合所述邏輯運算函數(shù)中的不同計算函數(shù),獲得第一函數(shù);
修改所述模板類型,并基于修改后的模板類型和所述第一函數(shù)生成加密函數(shù);
基于所述加密函數(shù),對所述數(shù)據(jù)進行加密。
基于同樣的發(fā)明構(gòu)思,本發(fā)明第四方面提供了一種計算機設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執(zhí)行所述程序時實現(xiàn)以下步驟:
基于預設函數(shù)模板編寫用于加密的邏輯運算函數(shù),所述用于加密的邏輯運算函數(shù)包括至少兩種計算函數(shù),所述預設函數(shù)模板包括至少一種模板類型;
組合所述邏輯運算函數(shù)中的不同計算函數(shù),獲得第一函數(shù);
修改所述模板類型,并基于修改后的模板類型和所述第一函數(shù)生成加密函數(shù);
基于所述加密函數(shù),對所述數(shù)據(jù)進行加密。
本發(fā)明實施例中提供的一個或多個技術方案,至少具有如下技術效果或優(yōu)點:
本發(fā)明實施例提供的數(shù)據(jù)的加密方法,首先基于預設函數(shù)模板編寫用于加密的邏輯運算函數(shù),所述用于加密的邏輯運算函數(shù)包括至少兩種計算函數(shù),所述預設函數(shù)模板包括至少一種模板類型,然后組合所述邏輯運算函數(shù)中的不同計算函數(shù),獲得第一函數(shù),并修改所述模板類型,并基于修改后的模板類型和所述第一函數(shù)生成加密函數(shù),再基于所述加密函數(shù),對所述數(shù)據(jù)進行加密。由于本發(fā)明提供的方法中,一方面,用于加密的邏輯運算函數(shù)是基于預設函數(shù)模板編寫的,并組合了所述邏輯運算函數(shù)中的不同計算函數(shù),獲得第一函數(shù),即邏輯運算函數(shù)是基于預設函數(shù)模板編寫的,因此得到的邏輯運算函數(shù)是一種模板函數(shù),并且第一函數(shù)組合了多種邏輯運算函數(shù),可以提高函數(shù)的復雜度,從而增加破解的難度,另一方面,可以在第一函數(shù)的基礎上修改模板類型,并根據(jù)修改后的模板類型和第一函數(shù)可以生成不同的加密函數(shù),即通過修改模板類型就可以生成多份加密函數(shù)的代碼,這樣在反編譯時,則需要對多份加密函數(shù)代碼進行反編譯,增加了反編譯的代碼量,這樣進一步增加了破解數(shù)據(jù)加密函數(shù)的難度,故而提高了數(shù)據(jù)加密的安全性。解決了現(xiàn)有技術中由于用于數(shù)據(jù)加密的加密算法容易被破解,存在安全性較低的技術問題。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例中一種用于數(shù)據(jù)的加密方法的流程圖;
圖2為本發(fā)明實施例中一種用于數(shù)據(jù)的加密裝置的結(jié)構(gòu)示意圖;
圖3為本發(fā)明實施例中計算機可讀存儲介質(zhì)的結(jié)構(gòu)示意圖;
圖4為本發(fā)明實施例中計算機設備的結(jié)構(gòu)示意圖。
具體實施方式
本申請實施例通過提供一種用于數(shù)據(jù)的加密方法及裝置,用以解決現(xiàn)有技術中由于加密算法容易被破解,存在安全性較低的技術問題。
本申請實施例中的技術方案,總體思路如下:
一種用于數(shù)據(jù)的加密方法,所述方法包括:基于預設函數(shù)模板編寫用于加密的邏輯運算函數(shù),所述用于加密的邏輯運算函數(shù)包括至少兩種計算函數(shù),所述預設函數(shù)模板包括至少一種模板類型,然后組合所述邏輯運算函數(shù)中的不同計算函數(shù),獲得第一函數(shù),并修改所述模板類型,并基于修改后的模板類型和所述第一函數(shù)生成加密函數(shù),再基于所述加密函數(shù),對所述數(shù)據(jù)進行加密。
由于本發(fā)明提供上述方法,一方面,用于加密的邏輯運算函數(shù)是基于預設函數(shù)模板編寫的,并組合了所述邏輯運算函數(shù)中的不同計算函數(shù),獲得第一函數(shù),即邏輯運算函數(shù)是基于預設函數(shù)模板編寫的,因此得到的邏輯運算函數(shù)是一種模板函數(shù),并且第一函數(shù)組合了多種邏輯運算函數(shù),可以提高函數(shù)的復雜度,從而增加破解的難度,第二方面,可以在第一函數(shù)的基礎上修改模板類型,并根據(jù)修改后的模板類型和第一函數(shù)可以生成不同的加密函數(shù),即通過修改模板類型就可以生成多份加密函數(shù)的代碼,這樣在反編譯時,則需要對多份加密函數(shù)代碼進行反編譯,增加了反編譯的代碼量,這樣進一步增加了破解數(shù)據(jù)加密函數(shù)的難度,故而提高了數(shù)據(jù)加密的安全性。解決了現(xiàn)有技術中由于用于數(shù)據(jù)加密的加密算法容易被破解,存在安全性較低的技術問題。
為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
實施例一
本實施例提供了一種用于數(shù)據(jù)的加密方法,請參考圖1,所述方法包括:
步驟s101:基于預設函數(shù)模板編寫用于加密的邏輯運算函數(shù),所述用于加密的邏輯運算函數(shù)包括至少兩種計算函數(shù),所述預設函數(shù)模板包括至少一種模板類型;
步驟s102:組合所述邏輯運算函數(shù)中的不同計算函數(shù),獲得第一函數(shù);
步驟s103:修改所述模板類型,并基于修改后的模板類型和所述第一函數(shù)生成加密函數(shù);
步驟s104:基于所述加密函數(shù),對所述數(shù)據(jù)進行加密。
需要說明的是,預設函數(shù)模板是c++這種編程語言中,一種用來提高代碼的復用性的編程方式,預設函數(shù)模板簡單來說就是一個通用的模板,例如編寫一個比較數(shù)據(jù)大小的函數(shù),函數(shù)作用是比較兩個數(shù)據(jù)中哪個更大,通常的做法是對數(shù)據(jù)類型為float、int、char、double等類型中的每一種類型編寫一個比較函數(shù),然而其函數(shù)內(nèi)容都是相同的,只是用于比較的數(shù)據(jù)的數(shù)據(jù)類型不同。而通過基于預設函數(shù)模板則可以只用編寫一個通用的函數(shù)則可以對所有的數(shù)據(jù)類型都支持。從而提高編程效率,代碼復用性和通用型。而發(fā)明實施例中通過使用預設函數(shù)模板的特性來編寫用于加密的邏輯運算函數(shù),并利用預設函數(shù)模板編程中,編譯器的實現(xiàn)會對每一種類型的模板實例化其最終的代碼,從而通過修改模板類型,則可以得到不同的加密代碼,增加了代碼量,從而提高了破解的難度,保證了數(shù)據(jù)加密的安全性。
下面,結(jié)合圖1,對本申請?zhí)峁┑挠糜跀?shù)據(jù)的加密方法進行詳細描述:
首先,執(zhí)行步驟s101,基于預設函數(shù)模板編寫用于加密的邏輯運算函數(shù),所述用于加密的邏輯運算函數(shù)包括至少兩種計算函數(shù),所述預設函數(shù)模板包括至少一種模板類型。
具體來說,邏輯運算函數(shù)有多種,例如加法函數(shù)、減法函數(shù)、乘法函數(shù)等等,本實施例中的邏輯運算函數(shù)至少包括兩種,所述預設函數(shù)模板包括至少一種模板類型,在具體的實施過程中,可以采用包括多種模板類型的預設函數(shù)模板來編寫邏輯運算函數(shù)。
為了更清楚地說明基于預設函數(shù)模板編寫用于加密的邏輯運算函數(shù),下面以一個具體的預設函數(shù)模板為例予以詳細介紹,首先預設函數(shù)模板的的一般形式如下所示:
template<class數(shù)據(jù)類型參數(shù)標識符1,…,class數(shù)據(jù)類型參數(shù)標識符n>
<返回類型><函數(shù)名>(參數(shù)表)
{
函數(shù)體
}
其中,template是預設函數(shù)模板聲明的關鍵字,后面的尖括號內(nèi)未數(shù)據(jù)類型參數(shù)標識符,可以有一個或多個,不同的數(shù)據(jù)類型參數(shù)標識符表示不同的模板類型,其中class為模板類型的關鍵字。接著后面依次為函數(shù)的返回類型,函數(shù)名和參數(shù)表,大括號內(nèi)未函數(shù)體。預設函數(shù)模板即為一個通用的模板,數(shù)據(jù)類型參數(shù)標識符實際上是一個類型形參,在使用預設函數(shù)模板時,要將上述類型形參實例化為確定的數(shù)據(jù)類型。將類型形參實例化后的參數(shù)稱為模板實參,用模板實參實例化的函數(shù)稱為模板函數(shù)。即通過將預設函數(shù)模板實例化,則可以得到預設函數(shù)模板相對應的模板函數(shù)。下面具體介紹幾種利用模板函數(shù)編寫的邏輯運算函數(shù)的方法。
第一種,利用模板函數(shù)編寫加法運算函數(shù)。
其中,template<classt,classt1,classt2,classt3,classt4,classt5>是一個模板函數(shù)的申明,即通知編譯器該模板函數(shù)的模板類型有6個,模板類型的個數(shù)可以根據(jù)實際需要進行設置。上述函數(shù)中,inline表示調(diào)用函數(shù)時可以直接展開,數(shù)據(jù)類型使用了模板t表示的類型,并采用const對數(shù)據(jù)類型進行修飾,pdata和add為該函數(shù)的形式參數(shù),也采用t表示的類型,并用const進行修飾,該函數(shù)的作用是此函數(shù)是對參數(shù)pdata加上一個add數(shù)值,如果采用該加法函數(shù)對數(shù)據(jù)進行加密,則pdata為原始數(shù)據(jù),并采用在pdata的基礎上加上一個add數(shù)值來對原始數(shù)據(jù)進行加密。
第二種,利用模板函數(shù)編寫減法運算函數(shù)。
該函數(shù)的作用是對參數(shù)pdata減去一個add數(shù)值,subdata為函數(shù)名,其他的與加法運算函數(shù)相同,在此不再贅述。
第三種,利用模板函數(shù)編寫異或運算函數(shù)。
該函數(shù)的作用是對參數(shù)pdata異或一個add數(shù)值,xordata為函數(shù)名,其他的與加法運算函數(shù)相同,在此不再贅述。
第四種,利用模板函數(shù)編寫左移運算函數(shù)。
該函數(shù)的作用是對參數(shù)pdata左移一個add數(shù)值,leftdata為函數(shù)名,其他的與加法運算函數(shù)相同,在此不再贅述。
第五種,利用模板函數(shù)編寫左移運算函數(shù)。
該函數(shù)的作用是對參數(shù)pdata右移一個add數(shù)值,rightdata為函數(shù)名,其他的與加法運算函數(shù)相同,在此不再贅述。
同理,還可以設計其他的邏輯運算函數(shù),例如乘法運算、除法運算等。
然后執(zhí)行步驟s102:組合所述邏輯運算函數(shù)中的不同計算函數(shù),獲得第一函數(shù);
在具體的實施過程中,可以通過組合步驟s101中的邏輯運算函數(shù)來獲得第一函數(shù),組合的方式可以有多種,例如組合加法計算函數(shù)和異或計算函數(shù),組合減法計算函數(shù)、減法計算函數(shù)、左移函數(shù)等等,并且對于組合的多種邏輯運算函數(shù),可以通過調(diào)整各個邏輯運算函數(shù)的調(diào)用順序來得到不同的第一函數(shù),例如,組合加法計算函數(shù)和異或計算函數(shù)的第一函數(shù),首先執(zhí)行加法再執(zhí)行減法為一種,首先執(zhí)行減法再執(zhí)行加法則為另一種第一函數(shù)。通過組合不同的邏輯運算函數(shù)來得到第一函數(shù),可以提高第一函數(shù)的復雜性。
下面以一個具體的示例介紹第一函數(shù)的實現(xiàn)方法,假設需要對客戶端發(fā)送到服務器的用戶行為數(shù)據(jù)進行加密。其原始數(shù)據(jù)是:pdata=“firstpagetesthit1234566....”,該原始數(shù)據(jù)為一個長字符串,一般而言客戶端在與服務器進行通信時,服務器會下發(fā)一個key值用來對原始數(shù)據(jù)進行加密,此key值也是一個長字符串,假設key:pkey=“abcdef1234567899...........”,則第一函數(shù)的實現(xiàn)方法如下:組合的邏輯運算函數(shù)的順序為加法函數(shù)、減法函數(shù)、異或函數(shù)、左移函數(shù)等等,然后可以通過一個循環(huán)來實現(xiàn)第一函數(shù)的功能:
forinti=0;i<pdatalen;i++;
{
adddata<int,char,int,int,int,int>(pdata[i],pkey[i]);
subdata<int,char,int,int,int,int>(pdata[i],pkey[i]);
xordata<int,char,int,int,int,int>(pdata[i],pkey[i]);
leftdata<int,char,int,int,int,int>(pdata[i],pkey[i]);
}
其中,pdatalen是指數(shù)據(jù)的長度,i為循環(huán)參數(shù),初始值為0,pdata[0]為原始數(shù)據(jù)的第一位數(shù),即“f”,pkey[0]為“a”,則首先執(zhí)行“f+a”,具體的實施過程中,可以通過轉(zhuǎn)換成ascii(americanstandardcodeforinformationinterchange,美國信息交換標準代碼)來進行計算。上述代碼此操作是對pdata的數(shù)據(jù)和pkey的數(shù)據(jù)進行相加、相減、異或、左移操作來進行加密。
在上述基礎上,采用普通函數(shù)來調(diào)用邏輯運算函數(shù),從而生成第一函數(shù)。
其中,encodedata1為第一函數(shù)的函數(shù)名,其余參數(shù)說明已經(jīng)在上文中做出相關的解釋與說明,在此不再贅述,對于encodedata1函數(shù)最終編譯器會生成非常龐大的函數(shù)代碼,并且其中調(diào)用的模板函數(shù)都會生成一份不同的邏輯運算函數(shù)。
與上述encodedata1函數(shù)相對應地,可以得出解密函數(shù),即加密算法的逆過程。例如若加密算法對數(shù)據(jù)進行加法,則解密算法則是進行減法,并且順序倒過來便是解密算法。
例如對于函數(shù)encodedata1的解密算法則是:
接下來執(zhí)行步驟s103:修改所述模板類型,并基于修改后的模板類型和所述第一函數(shù)生成加密函數(shù)。
可選的,所述模板類型包括至少一種數(shù)據(jù)類型;所述修改所述模板類型,并基于修改后的模板類型和所述第一函數(shù)生成加密函數(shù),包括:
通過修改所述數(shù)據(jù)類型,從而修改所述模板類型,并獲得修改后的模板類型;
根據(jù)所述修改后的模板類型,生成多個所述第一函數(shù)的代碼的加密代碼,將所述加密代碼作為所述加密函數(shù)。
具體來說,前述得到了組合不同計算函數(shù)的第一函數(shù),由于計算函數(shù)是采用預設函數(shù)模板來編寫的,并且預設函數(shù)模板包含至少一種模板類型,則可以通過修改模板類型的方式來獲得多個加密代碼,該加密代碼中包含了第一函數(shù)的代碼。
在具體的實施過程中,可以對步驟s101中的模板參數(shù)t1、t2、t3、t4、t5進行不同的實例化,來實現(xiàn)對模板類型的修改,對于修改后的模板類型,編譯器都會重新生成一份加法代碼,從而可以編寫一個函數(shù),通過改變模板類型則可以生成任意多種加密代碼。具體實現(xiàn)如下:
假設模板類型t為int類型,要加密的數(shù)據(jù)為1,加數(shù)為2,則調(diào)用加法運算函數(shù)的結(jié)果如下所示:
inta=1;
intb=2;
intc=adddata<int,int,int,int,int,int>(a,b);
此時,編譯器會生成一份類型為int,int,int,int,int,int的加法代碼。
如果將t1的類型修改為char類型,則調(diào)用加法運算函數(shù)的結(jié)果如下所示:
intc=adddata<int,char,int,int,int,int>(a,b);
同樣的,編譯器會生成一份類型為int,char,int,int,int,int的加法代碼。
調(diào)用上述兩種函數(shù)的結(jié)果返回均為3,但是任意修改一種模板類型,編譯器都會生成一份加法代碼,例如:
intc=adddata<int,char,int,int,int,int>(a,b);
intc=adddata<int,char,char,int,int,int>(a,b);
intc=adddata<int,char,float,int,int,int>(a,b);
而在c++語言中,具體的模板類型有int,char,float,double,int*、自定義類型等等,因此模板類型是無窮的,而通過修改任意一種模板類型,則可以得到不同的一份代碼,這樣大大增加了代碼量,從而提高了破解難度。
再執(zhí)行步驟s104:基于所述加密函數(shù),對所述數(shù)據(jù)進行加密。
具體來說,步驟s103中基于修改后的模板類型和所述第一函數(shù)生成了加密函數(shù),則可以通過加密函數(shù)來對數(shù)據(jù)進行加密,由于修改模板類型則可以得到不同的加密函數(shù)的代碼,而模板類型的是無窮多個,每個模板都可以修改,因此得到的加密函數(shù)的代碼是很龐大的,如果要對加密函數(shù)進行破解,則需要反編譯所有的加密函數(shù)的代碼,這樣加了破解數(shù)據(jù)加密函數(shù)的難度,故而提高了數(shù)據(jù)加密的安全性。
可選地,為了進一步提高加密函數(shù)的復雜性,在修改所述模板類型,并基于修改后的模板類型和所述第一函數(shù)生成加密函數(shù),所述方法還包括:
基于所述預設函數(shù)模板,將所述加密函數(shù)轉(zhuǎn)換成與所述預設函數(shù)模板相對應的模板函數(shù)類型的第一加密函數(shù)。
具體來說,由于邏輯運算函數(shù)是基于預設函數(shù)模板進行編寫的,通過普通函數(shù)調(diào)用邏輯運算函數(shù),即可以實現(xiàn)模板函數(shù)的功能,為了進一步提高加密函數(shù)的復雜度,可以將加密函數(shù)轉(zhuǎn)換成相對應的模板函數(shù),該模板函數(shù)是在加密函數(shù)基礎上的進一步復雜化,即第一加密函數(shù)。在具體的實施過程中,模板函數(shù)類型的第一加密函數(shù)中,采用的模板類型與邏輯運算函數(shù)保持一致,具體實現(xiàn)如下:
template<classt,classt1,classt2,classt3,classt4,classt5>
voidencodedata(tconst&pdata,tconst&add)
{
adddata<t,t1,t2,t3,t4,t5>(pdata[i],pkey[i]);
subdata<t,t1,t2,t3,t4,t5>(pdata[i],pkey[i]);
xordata<t,t1,t2,t3,t4,t5>(pdata[i],pkey[i]);
}
此時,如果修改encodedata函數(shù)的模板參數(shù)t1、t2、t3、t4、t5,則可以對模板類型進行修改,編譯器都會為每一種類型生成一份encodedata的代碼,從而提高了代碼量,也增加了代碼的復雜度,故而增加了破解難度,提高了數(shù)據(jù)加密的安全性。
可選的,所述計算函數(shù)為加法函數(shù)、減法函數(shù)、異或運算函數(shù)和移位運算函數(shù)中的一種。
基于同樣的發(fā)明構(gòu)思,本發(fā)明還提供了一種與用于數(shù)據(jù)的加密方法相對應的裝置,具體參見實施例二
實施例二
本發(fā)明實施例提供了一種用于數(shù)據(jù)的加密裝置,請參見圖2,所述裝置包括:
編寫模塊201,用于基于預設函數(shù)模板編寫用于加密的邏輯運算函數(shù),所述用于加密的邏輯運算函數(shù)包括至少兩種計算函數(shù),所述預設函數(shù)模板包括至少一種的模板類型;
組合模塊202,用于組合所述邏輯運算函數(shù)中的不同計算函數(shù),獲得第一函數(shù);
生成模塊203,用于修改所述模板類型,并基于修改后的模板類型和所述第一函數(shù)生成加密函數(shù);
加密模塊204,用于基于所述加密函數(shù),對所述數(shù)據(jù)進行加密。
可選的,所述裝置還包括處理模塊,用于在所述修改所述模板類型,并基于修改后的模板類型和所述第一函數(shù)生成加密函數(shù)之后,基于所述預設函數(shù)模板,將所述加密函數(shù)轉(zhuǎn)換成與所述預設函數(shù)模板相對應的模板函數(shù)類型的第一加密函數(shù)。
可選的,所述模板類型包括至少一種數(shù)據(jù)類型;所述生成模塊還用于:
通過修改所述數(shù)據(jù)類型,從而修改所述模板類型,并獲得修改后的模板類型;
根據(jù)所述修改后的模板類型,生成多個包含所述第一函數(shù)的代碼的加密代碼,將所述加密代碼作為所述加密函數(shù)。
可選的,所述計算函數(shù)為加法函數(shù)、減法函數(shù)、異或運算函數(shù)和移位運算函數(shù)中的一種。
基于同樣的發(fā)明構(gòu)思,本發(fā)明還提供了一種與用于數(shù)據(jù)的加密方法相對應的計算機可讀存儲介質(zhì),具體參見實施例三。
實施例三
本發(fā)明實施例提供了一種計算機可讀存儲介質(zhì)300,其上存儲有計算機程序311,該程序被處理器執(zhí)行時實現(xiàn)以下步驟:
基于預設函數(shù)模板編寫用于加密的邏輯運算函數(shù),所述用于加密的邏輯運算函數(shù)包括至少兩種計算函數(shù),所述預設函數(shù)模板包括至少一種模板類型;
組合所述邏輯運算函數(shù)中的不同計算函數(shù),獲得第一函數(shù);
修改所述模板類型,并基于修改后的模板類型和所述第一函數(shù)生成加密函數(shù);
基于所述加密函數(shù),對所述數(shù)據(jù)進行加密。
基于同樣的發(fā)明構(gòu)思,本發(fā)明還提供了一種與用于數(shù)據(jù)的加密方法相對應的計算機設備,具體參見實施例四。
實施例四
本發(fā)明實施例提供了一種計算機設備,包括存儲器401、處理器402及存儲在存儲器上并可在處理器上運行的計算機程序403,所述處理器執(zhí)行所述程序時實現(xiàn)以下步驟:
基于預設函數(shù)模板編寫用于加密的邏輯運算函數(shù),所述用于加密的邏輯運算函數(shù)包括至少兩種計算函數(shù),所述預設函數(shù)模板包括至少一種模板類型;
組合所述邏輯運算函數(shù)中的不同計算函數(shù),獲得第一函數(shù);
修改所述模板類型,并基于修改后的模板類型和所述第一函數(shù)生成加密函數(shù);
基于所述加密函數(shù),對所述數(shù)據(jù)進行加密。
為了便于說明,僅示出了與本發(fā)明實施例相關的部分,具體技術細節(jié)未揭示的,請參照本發(fā)明實施例方法部分。存儲器401可用于存儲計算機程序403,上述計算機程序包括軟件程序、模塊和數(shù)據(jù),處理器402通過運行執(zhí)行存儲在存儲器401的計算機程序403,從而執(zhí)行計算機設備的各種功能應用以及數(shù)據(jù)處理。
在具體的實施過程中,存儲器401可用于存儲軟件程序以及模塊,處理器402通過運行存儲在存儲器401的軟件程序以及模塊,從而執(zhí)行計算機設備的各種功能應用以及數(shù)據(jù)處理。存儲器401可主要包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、至少一個功能所需的應用程序等;存儲數(shù)據(jù)區(qū)可存儲根據(jù)計算機設備的使用所創(chuàng)建的數(shù)據(jù)等。此外,存儲器401可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他易失性固態(tài)存儲器件。處理器402是計算機設備的控制中心,利用各種接口和線路連接整個計算機設備的各個部分,通過運行或執(zhí)行存儲在存儲器401內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲在存儲器401內(nèi)的數(shù)據(jù),執(zhí)行計算機設備的各種功能和處理數(shù)據(jù),從而對計算機設備進行整體監(jiān)控??蛇x的,處理器402可包括一個或多個處理單元;優(yōu)選的,處理器402可集成應用處理器,其中,應用處理器主要處理操作系統(tǒng)、用戶界面和應用程序等。
本發(fā)明實施例中提供的一個或多個技術方案,至少具有如下技術效果或優(yōu)點:
本發(fā)明實施例提供的數(shù)據(jù)的加密方法,首先基于預設函數(shù)模板編寫用于加密的邏輯運算函數(shù),所述用于加密的邏輯運算函數(shù)包括至少兩種計算函數(shù),所述預設函數(shù)模板包括至少一種模板類型,然后組合所述邏輯運算函數(shù)中的不同計算函數(shù),獲得第一函數(shù),并修改所述模板類型,并基于修改后的模板類型和所述第一函數(shù)生成加密函數(shù),再基于所述加密函數(shù),對所述數(shù)據(jù)進行加密。由于本發(fā)明提供的方法中,一方面,用于加密的邏輯運算函數(shù)是基于預設函數(shù)模板編寫的,并組合了所述邏輯運算函數(shù)中的不同計算函數(shù),獲得第一函數(shù),即邏輯運算函數(shù)是基于預設函數(shù)模板編寫的,因此得到的邏輯運算函數(shù)是一種模板函數(shù),并且第一函數(shù)組合了多種邏輯運算函數(shù),可以提高函數(shù)的復雜度,從而增加破解的難度,另一方面,可以在第一函數(shù)的基礎上修改模板類型,并根據(jù)修改后的模板類型和第一函數(shù)可以生成不同的加密函數(shù),即通過修改模板類型就可以生成多份加密函數(shù)的代碼,這樣在反編譯時,則需要對多份加密函數(shù)代碼進行反編譯,增加了反編譯的代碼量,這樣進一步增加了破解數(shù)據(jù)加密函數(shù)的難度,故而提高了數(shù)據(jù)加密的安全性。解決了現(xiàn)有技術中由于用于數(shù)據(jù)加密的加密算法容易被破解,存在安全性較低的技術問題。
本領域內(nèi)的技術人員應明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學存儲器等)上實施的計算機程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本發(fā)明的優(yōu)選實施例,但本領域內(nèi)的技術人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明范圍的所有變更和修改。
顯然,本領域的技術人員可以對本發(fā)明實施例進行各種改動和變型而不脫離本發(fā)明實施例的精神和范圍。這樣,倘若本發(fā)明實施例的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。