本技術(shù)涉及計算機(jī),特別涉及一種程序加密方法、裝置、電子設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、隨著it(information?technology,信息技術(shù))行業(yè)的快速發(fā)展,每個it項目的源代碼成為了各個it公司的企業(yè)機(jī)密和核心。由于運營該項目時公開的是該項目的可執(zhí)行文件,可執(zhí)行文件是通過該項目的源代碼進(jìn)行編譯生成的;而該可執(zhí)行文件可以輕易地通過靜態(tài)反編譯工具進(jìn)行破解,得到該項目的源代碼,進(jìn)而對該it公司造成巨大的損失,所以在it項目運營之前需要對該項目的核心源代碼進(jìn)行加密。
2、相關(guān)技術(shù)中,提供了一種對核心源代碼進(jìn)行加密的方法,具體可以為:開發(fā)人員在編寫源代碼時,如果該開發(fā)人員想對某段核心源代碼進(jìn)行加密時,該開發(fā)人員可以手動地將該核心源代碼中標(biāo)準(zhǔn)的函數(shù)名稱、方法名稱或者類名稱修改為自定義的名稱,實現(xiàn)對核心源代碼的混淆,進(jìn)而實現(xiàn)對核心源代碼的加密。
3、然而,對核心源代碼進(jìn)行混淆之后得到的源代碼難于理解,并且根據(jù)混淆后的源代碼進(jìn)行調(diào)試也比較困難,亟待解決。
技術(shù)實現(xiàn)思路
1、本技術(shù)提供一種程序加密方法、裝置、電子設(shè)備及存儲介質(zhì),以解決現(xiàn)有技術(shù)對源代碼進(jìn)行混淆之后得到的源代碼難于理解,并且混淆后的源代碼難以進(jìn)行調(diào)試的問題,提升源代碼的保密性。
2、為達(dá)到上述目的,本技術(shù)第一方面實施例提出一種程序加密方法,包括以下步驟:
3、獲取當(dāng)前加密需求;
4、基于所述當(dāng)前加密需求,從預(yù)設(shè)的程序源代碼中確定待加密源代碼,并基于所述當(dāng)前加密需求對所述待加密源代碼進(jìn)行加密處理,得到已加密源代碼和所述已加密源代碼對應(yīng)的加密標(biāo)識;
5、將所述已加密源代碼替換所述待加密源代碼,并在替換后利用所述已加密源代碼對應(yīng)的加密標(biāo)識標(biāo)注替換位置。
6、根據(jù)本技術(shù)的一個實施例,所述基于所述當(dāng)前加密需求,從預(yù)設(shè)的程序源代碼中確定待加密源代碼,包括:
7、基于所述當(dāng)前加密需求,確定待加密位置;
8、根據(jù)所述待加密位置確定所述預(yù)設(shè)的程序源代碼中的起始加密位置和終止加密位置;
9、將所述起始加密位置和所述終止加密位置之間的程序源代碼作為所述待加密源代碼。
10、根據(jù)本技術(shù)的一個實施例,所述根據(jù)所述待加密位置確定所述預(yù)設(shè)的程序源代碼中的起始加密位置和終止加密位置,包括:
11、根據(jù)所述待加密位置確定起始加密標(biāo)識和終止加密標(biāo)識;
12、從所述預(yù)設(shè)的程序源代碼中確定與所述起始加密標(biāo)識相同的第一字符位置作為所述起始加密位置,并從所述預(yù)設(shè)的程序源代碼中確定與所述終止加密標(biāo)識相同的最后一個字符位置作為所述終止加密位置。
13、根據(jù)本技術(shù)的一個實施例,所述基于所述當(dāng)前加密需求對所述待加密源代碼進(jìn)行加密處理,得到已加密源代碼和所述已加密源代碼對應(yīng)的加密標(biāo)識,包括:
14、根據(jù)所述當(dāng)前加密需求確定目標(biāo)加密策略;
15、根據(jù)所述目標(biāo)加密策略對所述待加密源代碼進(jìn)行加密處理,得到所述已加密源代碼,并基于預(yù)設(shè)的標(biāo)記策略,對所述已加密源代碼進(jìn)行標(biāo)記得到所述已加密源代碼對應(yīng)的加密標(biāo)識。
16、根據(jù)本技術(shù)的一個實施例,在將所述已加密源代碼替換所述待加密源代碼,并在替換后利用所述已加密源代碼對應(yīng)的加密標(biāo)識標(biāo)注替換位置之后,還包括:
17、判斷是否接收到用戶的解密需求;
18、若接收到所述用戶的解密需求,則獲取所述用戶的身份信息,并根據(jù)所述身份信息判斷所述用戶是否處于預(yù)設(shè)的解密人員庫;
19、若所述用戶是否處于預(yù)設(shè)的解密人員庫,則基于所述已加密源代碼對應(yīng)的加密標(biāo)識確定待解密位置,并根據(jù)所述待解密位置對所述已加密源代碼進(jìn)行解密處理,得到所述待加密源代碼。
20、根據(jù)本技術(shù)的一個實施例,在根據(jù)所述身份信息判斷所述用戶是否處于預(yù)設(shè)的解密人員庫之后,還包括:
21、若所述用戶未處于預(yù)設(shè)的解密人員庫,則發(fā)送解密失敗信息至預(yù)設(shè)移動終端。
22、根據(jù)本技術(shù)實施例提出的程序加密方法,通過基于當(dāng)前加密需求,可以從預(yù)設(shè)的程序源代碼中確定待加密源代碼,并基于當(dāng)前加密需求對待加密源代碼進(jìn)行加密處理,得到已加密源代碼和已加密源代碼對應(yīng)的加密標(biāo)識;將已加密源代碼替換待加密源代碼,并在替換后利用已加密源代碼對應(yīng)的加密標(biāo)識標(biāo)注替換位置。由此,解決了現(xiàn)有技術(shù)對源代碼進(jìn)行混淆之后得到的源代碼難于理解,并且混淆后的源代碼難以進(jìn)行調(diào)試的問題,提升源代碼的保密性。
23、為達(dá)到上述目的,本技術(shù)第二方面實施例提出一種程序加密裝置,包括:
24、獲取模塊,用于獲取當(dāng)前加密需求;
25、處理模塊,用于基于所述當(dāng)前加密需求,從預(yù)設(shè)的程序源代碼中確定待加密源代碼,并基于所述當(dāng)前加密需求對所述待加密源代碼進(jìn)行加密處理,得到已加密源代碼和所述已加密源代碼對應(yīng)的加密標(biāo)識;
26、替換模塊,用于將所述已加密源代碼替換所述待加密源代碼,并在替換后利用所述已加密源代碼對應(yīng)的加密標(biāo)識標(biāo)注替換位置。
27、根據(jù)本技術(shù)的一個實施例,所述處理模塊,包括:
28、第一確定單元,用于基于所述當(dāng)前加密需求,確定待加密位置;
29、第二確定單元,用于根據(jù)所述待加密位置確定所述預(yù)設(shè)的程序源代碼中的起始加密位置和終止加密位置;
30、定義單元,用于將所述起始加密位置和所述終止加密位置之間的程序源代碼作為所述待加密源代碼。
31、根據(jù)本技術(shù)的一個實施例,所述定義單元,包括:
32、第一確定子單元,用于根據(jù)所述待加密位置確定起始加密標(biāo)識和終止加密標(biāo)識;
33、第二確定子單元,用于從所述預(yù)設(shè)的程序源代碼中確定與所述起始加密標(biāo)識相同的第一字符位置作為所述起始加密位置,并從所述預(yù)設(shè)的程序源代碼中確定與所述終止加密標(biāo)識相同的最后一個字符位置作為所述終止加密位置。
34、根據(jù)本技術(shù)的一個實施例,所述處理模塊,具體用于:
35、根據(jù)所述當(dāng)前加密需求確定目標(biāo)加密策略;
36、根據(jù)所述目標(biāo)加密策略對所述待加密源代碼進(jìn)行加密處理,得到所述已加密源代碼,并基于預(yù)設(shè)的標(biāo)記策略,對所述已加密源代碼進(jìn)行標(biāo)記得到所述已加密源代碼對應(yīng)的加密標(biāo)識。
37、根據(jù)本技術(shù)的一個實施例,在將所述已加密源代碼替換所述待加密源代碼,并在替換后利用所述已加密源代碼對應(yīng)的加密標(biāo)識標(biāo)注替換位置之后,所述替換模塊,還包括:
38、第一判斷單元,用于判斷是否接收到用戶的解密需求;
39、第二判斷單元,用于在接收到所述用戶的解密需求時,獲取所述用戶的身份信息,并根據(jù)所述身份信息判斷所述用戶是否處于預(yù)設(shè)的解密人員庫;
40、解密單元,用于在所述用戶處于預(yù)設(shè)的解密人員庫時,基于所述已加密源代碼對應(yīng)的加密標(biāo)識確定待解密位置,并根據(jù)所述待解密位置對所述已加密源代碼進(jìn)行解密處理,得到所述待加密源代碼。
41、根據(jù)本技術(shù)的一個實施例,在根據(jù)所述身份信息判斷所述用戶是否處于預(yù)設(shè)的解密人員庫之后,所述第二判斷單元,還用于:
42、在所述用戶未處于所述預(yù)設(shè)的解密人員庫時,發(fā)送解密失敗信息至預(yù)設(shè)移動終端。
43、根據(jù)本技術(shù)實施例提出的程序加密裝置,通過基于當(dāng)前加密需求,可以從預(yù)設(shè)的程序源代碼中確定待加密源代碼,并基于當(dāng)前加密需求對待加密源代碼進(jìn)行加密處理,得到已加密源代碼和已加密源代碼對應(yīng)的加密標(biāo)識;將已加密源代碼替換待加密源代碼,并在替換后利用已加密源代碼對應(yīng)的加密標(biāo)識標(biāo)注替換位置。由此,解決了現(xiàn)有技術(shù)對源代碼進(jìn)行混淆之后得到的源代碼難于理解,并且混淆后的源代碼難以進(jìn)行調(diào)試的問題,提升源代碼的保密性。
44、為達(dá)到上述目的,本技術(shù)第三方面實施例提出一種電子設(shè)備,包括:存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的計算機(jī)程序,所述處理器執(zhí)行所述程序,以實現(xiàn)如上述實施例所述的程序加密方法。
45、為達(dá)到上述目的,本技術(shù)第四方面實施例提出一種計算機(jī)可讀存儲介質(zhì),其上存儲有計算機(jī)程序,該程序被處理器執(zhí)行,以用于實現(xiàn)如上述實施例所述的程序加密方法。
46、本技術(shù)附加的方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本技術(shù)的實踐了解到。