一種對核心源代碼進(jìn)行加密的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計算機(jī)領(lǐng)域,特別涉及一種對核心源代碼進(jìn)行加密的方法及裝置。
【背景技術(shù)】
[0002] 隨著IT(InformationTechnology,信息技術(shù))行業(yè)的快速發(fā)展,每個IT項目的 源代碼成為了各個IT公司的企業(yè)機(jī)密和核心。由于運(yùn)營該項目時公開的是該項目的可執(zhí) 行文件,可執(zhí)行文件是通過該項目的源代碼進(jìn)行編譯生成的;而該可執(zhí)行文件可以輕易地 通過靜態(tài)反編譯工具進(jìn)行破解,得到該項目的源代碼,進(jìn)而對該IT公司造成巨大的損失, 所以在IT項目運(yùn)營之前需要對該項目的核心源代碼進(jìn)行加密。
[0003] 目前,提供了一種對核心源代碼進(jìn)行加密的方法,具體可以為:開發(fā)人員在編寫源 代碼時,如果該開發(fā)人員想對某段核心源代碼進(jìn)行加密時,該開發(fā)人員可以手動地將該核 心源代碼中標(biāo)準(zhǔn)的函數(shù)名稱、方法名稱或者類名稱修改為自定義的名稱,實(shí)現(xiàn)對核心源代 碼的混淆,進(jìn)而實(shí)現(xiàn)對核心源代碼的加密。
[0004] 在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:
[0005] 由于通過上述技術(shù)對核心源代碼進(jìn)行混淆之后得到的源代碼難于理解,并且根據(jù) 混淆后的源代碼進(jìn)行調(diào)試也比較困難;同時,混淆后的源代碼并不能完全阻止反編譯,只是 增加了反編譯的難度和工作量,核心源代碼的保密性較低。
【發(fā)明內(nèi)容】
[0006] 為了解決現(xiàn)有技術(shù)的問題,本發(fā)明實(shí)施例提供了一種對核心源代碼進(jìn)行加密的方 法及裝置。所述技術(shù)方案如下:
[0007] -方面,提供了一種對核心源代碼進(jìn)行加密的方法,所述方法包括:
[0008] 從源代碼文件中獲取第一預(yù)設(shè)字符串;
[0009] 從所述源代碼文件中獲取所述第一預(yù)設(shè)字符串對應(yīng)的核心源代碼;
[0010] 對所述核心源代碼進(jìn)行加密,得到所述核心源代碼的密文;
[0011] 將所述核心源代碼替換為所述核心源代碼的密文,以及將所述第一預(yù)設(shè)字符串替 換為第二預(yù)設(shè)字符串。
[0012] 另一方面,提供了 一種對核心源代碼進(jìn)行加密的裝置,所述裝置包括:
[0013] 第一獲取模塊,用于從源代碼文件中獲取第一預(yù)設(shè)字符串;
[0014] 第二獲取模塊,用于從所述源代碼文件中獲取所述第一預(yù)設(shè)字符串對應(yīng)的核心源 代碼;
[0015] 加密模塊,用于對所述核心源代碼進(jìn)行加密,得到所述核心源代碼的密文;
[0016] 第一替換模塊,用于將所述核心源代碼替換為所述核心源代碼的密文,以及將所 述第一預(yù)設(shè)字符串替換為第二預(yù)設(shè)字符串。
[0017] 在本發(fā)明實(shí)施例中,當(dāng)開發(fā)人員編寫源代碼時,只是在需要加密的核心源代碼之 前添加第一預(yù)設(shè)字符串,并沒有對需要加密的核心源代碼進(jìn)行混淆,所以避免了混淆后的 源代碼難于理解的問題,并且也避免了混淆后的源代碼難于調(diào)試的問題。當(dāng)開發(fā)人員編寫 完源代碼時,從源代碼文件中獲取第一預(yù)設(shè)字符串,獲取第一預(yù)設(shè)字符串對應(yīng)的核心源代 碼,對獲取的核心源代碼進(jìn)行加密,得到核心源代碼的密文。由于該源代碼文件中存在核心 源代碼的密文,增加了反編譯的難度和工作量,并且就算反編譯成功,反編譯得到的也是核 心源代碼的密文。由于無法知道對核心源代碼進(jìn)行解密的密鑰,所以也無法獲取到核心源 代碼,增加了核心源代碼的保密性。
【附圖說明】
[0018] 為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使 用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于 本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他 的附圖。
[0019] 圖1是本發(fā)明實(shí)施例一提供的一種對核心源代碼進(jìn)行加密的方法流程圖;
[0020] 圖2是本發(fā)明實(shí)施例二提供的一種對核心源代碼進(jìn)行加密的方法流程圖;
[0021] 圖3是本發(fā)明實(shí)施例三提供的一種對核心源代碼進(jìn)行加密的裝置結(jié)構(gòu)示意圖;
[0022] 圖4是本發(fā)明實(shí)施例三提供的另一種對核心源代碼進(jìn)行加密的裝置結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0023] 為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明實(shí)施方 式作進(jìn)一步地詳細(xì)描述。
[0024] 實(shí)施例一
[0025] 本發(fā)明實(shí)施例提供了一種對核心源代碼進(jìn)行加密的方法,參見圖1,該方法包括:
[0026] 步驟101 :從源代碼文件中獲取第一預(yù)設(shè)字符串;
[0027] 步驟102 :從該源代碼文件中獲取第一預(yù)設(shè)字符串對應(yīng)的核心源代碼;
[0028] 步驟103 :對獲取的核心源代碼進(jìn)行加密,得到核心源代碼的密文;
[0029] 步驟104 :將該核心源代碼替換為該核心源代碼的密文,以及將第一預(yù)設(shè)字符串 替換為第二預(yù)設(shè)字符串。
[0030] 其中,從該源代碼文件中獲取第一預(yù)設(shè)字符串對應(yīng)的核心源代碼,包括:
[0031] 從該源代碼文件中獲取在第一預(yù)設(shè)字符串之后且與第一預(yù)設(shè)字符串相鄰的起始 分隔符;
[0032] 獲取該起始分隔符對應(yīng)的結(jié)束分隔符;
[0033] 獲取該起始分隔符與結(jié)束分隔符之間的核心源代碼,將獲取的核心源代碼確定為 第一預(yù)設(shè)字符串對應(yīng)的核心源代碼。
[0034] 進(jìn)一步地,獲取該起始分隔符對應(yīng)的結(jié)束分隔符,包括:
[0035] 獲取在該起始分隔符之后且與結(jié)束分隔符相同的第一個字符串;
[0036] 在該起始分隔符與第一個字符串之間,獲取與該起始分隔符相同的字符串的個數(shù) N;
[0037] 獲取第一個字符串之后且與結(jié)束分隔符相同的第N個字符串;
[0038] 將獲取的第N個字符串確定為該起始分隔符對應(yīng)的結(jié)束分隔符。
[0039] 進(jìn)一步地,將該核心源代碼替換為該核心源代碼的密文,以及將第一預(yù)設(shè)字符串 替換為第二預(yù)設(shè)字符串之后,還包括:
[0040] 從加密后的源代碼文件中獲取第二預(yù)設(shè)字符串;
[0041] 從加密后的源代碼文件中獲取第二預(yù)設(shè)字符串對應(yīng)的核心源代碼的密文;
[0042] 對獲取的核心源代碼的密文進(jìn)行解密,得到核心源代碼;
[0043] 將該核心源代碼的密文替換為該核心源代碼,以及將第二預(yù)設(shè)字符串替換為第一 預(yù)設(shè)字符串。
[0044] 其中,從加密后的源代碼文件中獲取第二預(yù)設(shè)字符串對應(yīng)的核心源代碼的密文, 包括:
[0045] 從加密后的源代碼文件中獲取在第二預(yù)設(shè)字符串之后且與第二預(yù)設(shè)字符串相鄰 的起始分隔符;
[0046] 獲取該起始分隔符對應(yīng)的結(jié)束分隔符;
[0047] 獲取該起始分隔符與該結(jié)束分隔符之間的核心源代碼的密文,將獲取的核心源代 碼的密文確定為第二預(yù)設(shè)字符串對應(yīng)的核心源代碼的密文。
[0048] 在本發(fā)明實(shí)施例中,當(dāng)開發(fā)人員編寫源代碼時,只是在需要加密的核心源代碼之 前添加第一預(yù)設(shè)字符串,并沒有對需要加密的核心源代碼進(jìn)行混淆,所以避免了混淆后的 源代碼難于理解的問題,并且也避免了混淆后的源代碼難于調(diào)試的問題。當(dāng)開發(fā)人員編寫