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