本發(fā)明涉及信息熱更新技術(shù)領(lǐng)域,具體涉及一種加密及熱更新方法、裝置。
背景技術(shù):
目前,網(wǎng)絡(luò)游戲成為人們最受歡迎的娛樂休閑方式。但是,在游戲運(yùn)行過程中,運(yùn)行軟件偶爾會出現(xiàn)漏洞或缺陷,開發(fā)者需要編寫運(yùn)行程序,經(jīng)過編譯后進(jìn)行測試,并且,在ios環(huán)境下無法實現(xiàn)代碼熱更新,即在更換程序過程中,多需要中斷現(xiàn)有服務(wù)器中的服務(wù)程序,導(dǎo)致用戶端終止使用、被迫下線直至應(yīng)用程序重新啟動,歷史數(shù)據(jù)無法同步更新,用戶體驗差,且在重啟過程中,存在不可預(yù)估的不穩(wěn)定性和不安全性。實現(xiàn)游戲服務(wù)的熱更新,即在服務(wù)器不重新啟動的情況下,完成對數(shù)據(jù)和文件的替換,是開發(fā)者和游戲玩家的需求。
如何保證游戲服務(wù)正常運(yùn)行和更新效率,提高游戲服務(wù)的穩(wěn)定性和安全性,是本領(lǐng)域技術(shù)人員亟需解決的問題。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)中的缺陷,本發(fā)明提供了一種加密及熱更新方法、裝置,能夠保證游戲服務(wù)正常運(yùn)行和更新效率,提高游戲服務(wù)的穩(wěn)定性和安全性。
第一方面,本發(fā)明提供一種加密及熱更新方法,該方法包括:
獲取目標(biāo)腳本和待更新節(jié)點;
根據(jù)待更新節(jié)點,加載目標(biāo)腳本。
本發(fā)明提供另一種加密及熱更新方法,該方法包括:
信息獲取步驟:獲取lua腳本和腳本屬性;
腳本加密步驟:對lua腳本進(jìn)行加密,獲取lua加密腳本;
腳本節(jié)點更新步驟:根據(jù)目標(biāo)lua腳本節(jié)點地址,將lua加密腳本更新至目標(biāo)lua腳本節(jié)點,腳本屬性包括目標(biāo)lua腳本節(jié)點地址;
lua虛擬機(jī)銷毀步驟:檢測已更新目標(biāo)lua腳本節(jié)點對應(yīng)的lua虛擬機(jī)的當(dāng)前運(yùn)行狀態(tài):
若lua虛擬機(jī)處于閑置狀態(tài),則銷毀lua虛擬機(jī);
若lua虛擬機(jī)處于運(yùn)行狀態(tài),則定時輪詢該lua虛擬機(jī),直至lua虛擬機(jī)處于閑置狀態(tài),并銷毀lua虛擬機(jī);
腳本解密步驟:將目標(biāo)lua腳本節(jié)點的lua加密腳本進(jìn)行解密,獲取解密后的lua腳本;
lua腳本加載步驟:根據(jù)解密后的lua腳本,創(chuàng)建目標(biāo)lua虛擬機(jī);
加載解密后的lua腳本,并控制目標(biāo)lua虛擬機(jī)對解密后的lua腳本進(jìn)行解釋。
進(jìn)一步地,對lua腳本進(jìn)行加密,獲取lua加密腳本,具體包括:
解析lua腳本,獲取該lua腳本的業(yè)務(wù)邏輯;
按照lua腳本的業(yè)務(wù)邏輯,分解lua腳本,獲取腳本分解信息;
對腳本分解信息進(jìn)行加密,獲取腳本加密信息;
按照業(yè)務(wù)邏輯,合并腳本加密信息,獲取lua加密腳本;
將目標(biāo)lua腳本節(jié)點的lua加密腳本進(jìn)行解密,獲取解密后的lua腳本,具體包括:
按照業(yè)務(wù)邏輯,將目標(biāo)lua腳本節(jié)點的lua加密腳本進(jìn)行分解,獲取腳本加密信息;
對腳本加密信息進(jìn)行解密,獲取腳本分解信息;
按照業(yè)務(wù)邏輯,將腳本分解信息合成解密后的lua腳本。
基于上述任意加密及熱更新方法實施例,進(jìn)一步地,在檢測到lua虛擬機(jī)處于閑置狀態(tài)之后,銷毀lua虛擬機(jī)之前,該方法還包括:保存lua虛擬機(jī)的運(yùn)行數(shù)據(jù);
在加載解密后的lua腳本,并控制目標(biāo)lua虛擬機(jī)對解密后的lua腳本進(jìn)行解釋之后,該方法還包括:加載運(yùn)行數(shù)據(jù)。
基于上述任意加密及熱更新方法實施例,進(jìn)一步地,在獲取lua腳本和腳本屬性之前,該方法還包括:獲取系統(tǒng)資源的分布狀態(tài);
根據(jù)系統(tǒng)資源的分布狀態(tài),設(shè)置lua腳本節(jié)點。
第二方面,本發(fā)明提供一種加密及熱更新裝置,該裝置包括信息獲取模塊、腳本加密模塊、腳本節(jié)點更新模塊、lua虛擬機(jī)銷毀模塊、腳本解密模塊和lua腳本加載模塊,信息獲取模塊用于獲取lua腳本和腳本屬性;腳本加密模塊用于對lua腳本進(jìn)行加密,獲取lua加密腳本;腳本節(jié)點更新模塊用于根據(jù)目標(biāo)lua腳本節(jié)點地址,將lua加密腳本更新至目標(biāo)lua腳本節(jié)點,腳本屬性包括目標(biāo)lua腳本節(jié)點地址;lua虛擬機(jī)銷毀模塊用于檢測已更新目標(biāo)lua腳本節(jié)點對應(yīng)的lua虛擬機(jī)的當(dāng)前運(yùn)行狀態(tài):若lua虛擬機(jī)處于閑置狀態(tài),則銷毀lua虛擬機(jī);若lua虛擬機(jī)處于運(yùn)行狀態(tài),則定時輪詢該lua虛擬機(jī),直至lua虛擬機(jī)處于閑置狀態(tài),并銷毀lua虛擬機(jī);腳本解密模塊用于將目標(biāo)lua腳本節(jié)點的lua加密腳本進(jìn)行解密,獲取解密后的lua腳本;lua腳本加載模塊用于加載解密后的lua腳本,并控制目標(biāo)lua虛擬機(jī)對解密后的lua腳本進(jìn)行解釋。
進(jìn)一步地,腳本加密模塊具體包括業(yè)務(wù)邏輯獲取子模塊、第一腳本分解子模塊、腳本加密子模塊和第一腳本合并子模塊,業(yè)務(wù)邏輯獲取子模塊用于解析lua腳本,獲取該lua腳本的業(yè)務(wù)邏輯;第一腳本分解子模塊用于按照lua腳本的業(yè)務(wù)邏輯,分解lua腳本,獲取腳本分解信息;腳本加密子模塊用于對腳本分解信息進(jìn)行加密,獲取腳本加密信息;第一腳本合并子模塊用于按照業(yè)務(wù)邏輯,合并腳本加密信息,獲取lua加密腳本;
腳本解密模塊具體包括第二腳本分解子模塊、腳本解密子模塊和第二腳本合并子模塊,第二腳本分解子模塊用于按照業(yè)務(wù)邏輯,將目標(biāo)lua腳本節(jié)點的lua加密腳本進(jìn)行分解,獲取腳本加密信息;腳本解密子模塊用于對腳本加密信息進(jìn)行解密,獲取腳本分解信息;第二腳本合并子模塊用于按照業(yè)務(wù)邏輯,將腳本分解信息合成解密后的lua腳本。
基于上述任意加密及熱更新裝置實施例,進(jìn)一步地,該裝置還包括運(yùn)行數(shù)據(jù)保存模塊:用于保存lua虛擬機(jī)的運(yùn)行數(shù)據(jù);并加載運(yùn)行數(shù)據(jù)。
基于上述任意加密及熱更新裝置實施例,進(jìn)一步地,該裝置還包括lua腳本節(jié)點設(shè)置模塊:用于獲取系統(tǒng)資源的分布狀態(tài);根據(jù)系統(tǒng)資源的分布狀態(tài),設(shè)置lua腳本節(jié)點。
由上述技術(shù)方案可知,本實施例提供的加密及熱更新方法、裝置,能夠?qū)ua腳本更新至目標(biāo)lua腳本節(jié)點,根據(jù)lua虛擬機(jī)的運(yùn)行狀況實現(xiàn)熱更新,無需重新啟動服務(wù)器,避免繁雜、持久的更新過程。同時,該方法采用lua解釋型語言腳本,易于實現(xiàn)跨平臺推廣應(yīng)用,執(zhí)行效率高,即使在ios運(yùn)行環(huán)境中,也可以實現(xiàn)代碼熱更新,修復(fù)游戲服務(wù)中的漏洞或缺陷,縮短游戲服務(wù)版本升級的進(jìn)程,提高用戶體驗。
并且,該方法采用lua腳本實現(xiàn)代碼熱更新,lua腳本體積小、啟動速度快,適合嵌入主程序中,且易于被調(diào)用、理解和維護(hù),方便游戲服務(wù)業(yè)務(wù)擴(kuò)展、更新。同時,該方法還能夠?qū)ua腳本進(jìn)行加密,再更新至目標(biāo)lua腳本節(jié)點地址,防止腳本出現(xiàn)錯誤,影響后續(xù)游戲服務(wù)運(yùn)行,有助于增強(qiáng)腳本的安全性和穩(wěn)定性。
因此,本實施例加密及熱更新方法、裝置,能夠保證游戲服務(wù)正常運(yùn)行和更新效率,提高游戲服務(wù)的穩(wěn)定性和安全性。
附圖說明
為了更清楚地說明本發(fā)明具體實施方式或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對具體實施方式或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹。在所有附圖中,類似的元件或部分一般由類似的附圖標(biāo)記標(biāo)識。附圖中,各元件或部分并不一定按照實際的比例繪制。
圖1示出了本發(fā)明實施例所提供的一種加密及熱更新方法的方法流程圖;
圖2示出了本發(fā)明實施例所提供的一種加密及熱更新裝置的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合附圖對本發(fā)明技術(shù)方案的實施例進(jìn)行詳細(xì)的描述。以下實施例僅用于更加清楚地說明本發(fā)明的技術(shù)方案,因此只是作為示例,而不能以此來限制本發(fā)明的保護(hù)范圍。
需要注意的是,除非另有說明,本申請使用的技術(shù)術(shù)語或者科學(xué)術(shù)語應(yīng)當(dāng)為本發(fā)明所屬領(lǐng)域技術(shù)人員所理解的通常意義。
第一方面,本發(fā)明實施例所提供的一種加密及熱更新方法,該方法包括:獲取目標(biāo)腳本和待更新節(jié)點。
根據(jù)待更新節(jié)點,加載目標(biāo)腳本。
本發(fā)明實施例所提供的另一種加密及熱更新方法,結(jié)合圖1,該方法包括:信息獲取步驟s1:獲取lua腳本和腳本屬性,其中,腳本屬性可以是該lua腳本的生成時間、目的lua腳本節(jié)點地址等信息。
腳本加密步驟s2:對lua腳本進(jìn)行加密,獲取lua加密腳本。
腳本節(jié)點更新步驟s3:根據(jù)目標(biāo)lua腳本節(jié)點地址,將lua加密腳本更新至目標(biāo)lua腳本節(jié)點,腳本屬性包括目標(biāo)lua腳本節(jié)點地址。
lua虛擬機(jī)銷毀步驟s4:檢測已更新目標(biāo)lua腳本節(jié)點對應(yīng)的lua虛擬機(jī)的當(dāng)前運(yùn)行狀態(tài):若lua虛擬機(jī)處于閑置狀態(tài),則銷毀lua虛擬機(jī)。若lua虛擬機(jī)處于運(yùn)行狀態(tài),則定時輪詢該lua虛擬機(jī),直至lua虛擬機(jī)處于閑置狀態(tài),并銷毀lua虛擬機(jī)。
腳本解密步驟s5:將目標(biāo)lua腳本節(jié)點的lua加密腳本進(jìn)行解密,獲取解密后的lua腳本。
lua腳本加載步驟s6:根據(jù)解密后的lua腳本,創(chuàng)建目標(biāo)lua虛擬機(jī)。
加載解密后的lua腳本,并控制目標(biāo)lua虛擬機(jī)對解密后的lua腳本進(jìn)行解釋,以實現(xiàn)特定的游戲業(yè)務(wù)流程。
由上述技術(shù)方案可知,本實施例提供的加密及熱更新方法,能夠?qū)ua腳本更新至目標(biāo)lua腳本節(jié)點,根據(jù)lua虛擬機(jī)的運(yùn)行狀況實現(xiàn)熱更新,無需重新啟動服務(wù)器,避免繁雜、持久的更新過程。同時,該方法采用lua解釋型語言腳本,易于實現(xiàn)跨平臺推廣應(yīng)用,執(zhí)行效率高,即使在ios運(yùn)行環(huán)境中,也可以實現(xiàn)代碼熱更新,修復(fù)游戲服務(wù)中的漏洞或缺陷,縮短游戲服務(wù)版本升級的進(jìn)程,提高用戶體驗。
并且,該方法采用lua腳本實現(xiàn)代碼熱更新,lua腳本體積小、啟動速度快,適合嵌入主程序中,且易于被調(diào)用、理解和維護(hù),方便游戲服務(wù)業(yè)務(wù)擴(kuò)展、更新。同時,該方法還能夠?qū)ua腳本進(jìn)行加密,再更新至目標(biāo)lua腳本節(jié)點地址,防止腳本出現(xiàn)錯誤,影響后續(xù)游戲服務(wù)運(yùn)行,有助于增強(qiáng)腳本的安全性和穩(wěn)定性。
因此,本實施例加密及熱更新方法,能夠保證游戲服務(wù)正常運(yùn)行和更新效率,提高游戲服務(wù)的穩(wěn)定性和安全性。
為了進(jìn)一步提高本實施例加密及熱更新方法的安全性和可靠性,具體地,在對lua腳本進(jìn)行加密,獲取lua加密腳本時,該方法的具體實現(xiàn)過程如下:解析lua腳本,獲取該lua腳本的業(yè)務(wù)邏輯。按照lua腳本的業(yè)務(wù)邏輯,分解lua腳本,獲取腳本分解信息,也可以按照代碼單元進(jìn)行分解。對腳本分解信息進(jìn)行加密,獲取腳本加密信息,例如,采用rc4算法進(jìn)行異或加密。按照業(yè)務(wù)邏輯,合并腳本加密信息,獲取lua加密腳本。
在將目標(biāo)lua腳本節(jié)點的lua加密腳本進(jìn)行解密,獲取解密后的lua腳本時,該方法的具體實現(xiàn)過程如下:按照業(yè)務(wù)邏輯,將目標(biāo)lua腳本節(jié)點的lua加密腳本進(jìn)行分解,獲取腳本加密信息。對腳本加密信息進(jìn)行解密,獲取腳本分解信息。按照業(yè)務(wù)邏輯,將腳本分解信息合成解密后的lua腳本。
在此,該方法按照每個腳本的業(yè)務(wù)邏輯對lua腳本進(jìn)行分解,再進(jìn)行加密與合成,成為lua加密腳本,能夠提高lua腳本的安全性,有助于加密及熱更新方法的穩(wěn)定運(yùn)行,降低lua腳本被破壞與惡意更改的可能性。同時,該方法按照每個腳本的業(yè)務(wù)邏輯進(jìn)行分解,有利于保證lua腳本的完整性,避免腳本分解帶來不必要的錯誤,有助于提高lua腳本熱更新過程的穩(wěn)定性、安全性以及效率。
其中,為了提高本實施例加密及熱更新方法的加密效率,具體實現(xiàn)過程如下:獲取用戶設(shè)置的圖碼序列。采用加密算法,處理該圖碼序列和腳本分解信息,構(gòu)成腳本加密信息,同時生成加密因子。在按照業(yè)務(wù)邏輯,將腳本分解信息合成解密后的lua腳本后,再將加密因子更新至lua加密腳本。
在進(jìn)行解密時,根據(jù)lua加密腳本中的加密因子,查詢數(shù)據(jù)庫,獲取與該加密因子對應(yīng)的解密算法,獲取用戶輸入的圖碼序列,采用該解密算法處理lua加密腳本和圖碼序列,即可得到對應(yīng)的腳本分解信息。
在此,進(jìn)行加密時,圖碼序列可以是游戲服務(wù)提供商對游戲服務(wù)業(yè)務(wù)設(shè)置的校驗碼,只有獲取正確校驗碼的玩家,才可以對lua腳本進(jìn)行解密,實現(xiàn)軟件升級等操作,防止游戲服務(wù)業(yè)務(wù)代碼被惡意更改,提高業(yè)務(wù)代碼的保密程度。
同時,本實施例加密及熱更新方法能夠結(jié)合系統(tǒng)資源進(jìn)行節(jié)點劃分,具體過程如下:在獲取lua腳本和腳本屬性之前,該方法還能夠獲取系統(tǒng)資源的分布狀態(tài)。根據(jù)系統(tǒng)資源的分布狀態(tài),設(shè)置lua腳本節(jié)點。例如,系統(tǒng)資源可以是多個注冊到zookeeper集群的服務(wù)器。
在此,結(jié)合已有的系統(tǒng)資源,劃分lua腳本節(jié)點,有助于提高目標(biāo)lua腳本節(jié)點的準(zhǔn)確性,便于各目標(biāo)lua腳本節(jié)點能夠準(zhǔn)確、有效地獲取lua加密腳本,提高節(jié)點資源的更新效率。
為了進(jìn)一步提高本實施例加密及熱更新方法的用戶體驗,具體地,該方法還具備緩存用戶的歷史運(yùn)行數(shù)據(jù)的功能,即在檢測到lua虛擬機(jī)處于閑置狀態(tài)之后,銷毀lua虛擬機(jī)之前,該方法能夠保存lua虛擬機(jī)的運(yùn)行數(shù)據(jù)。在加載解密后的lua腳本,并控制目標(biāo)lua虛擬機(jī)對解密后的lua腳本進(jìn)行解釋之后,該方法還能夠加載運(yùn)行數(shù)據(jù)。在此,本實施例加密及熱更新方法在對游戲服務(wù),如某個游戲的應(yīng)用程序,進(jìn)行熱更新后,能夠同步加載每個用戶的歷史運(yùn)行數(shù)據(jù),例如,每個用戶的當(dāng)前游戲級別、進(jìn)度等,既能夠完成代碼熱更新,又能夠同步更新用戶數(shù)據(jù),有助于提高用戶體驗。
其中,在加載運(yùn)行數(shù)據(jù)時,該方法的具體執(zhí)行過程如下:
初始化數(shù)據(jù)結(jié)構(gòu),并將初始化后的數(shù)據(jù)結(jié)構(gòu)加載至預(yù)建立的全局?jǐn)?shù)據(jù)管理器。根據(jù)初始化后的數(shù)據(jù)結(jié)結(jié)構(gòu)的格式,加載運(yùn)行數(shù)據(jù)。向預(yù)建立的lua腳本管理器下發(fā)加載指令,控制該lua腳本管理器加載解密后的lua腳本。向預(yù)建立的目標(biāo)lua虛擬機(jī)下發(fā)解釋指令,控制該目標(biāo)lua虛擬機(jī)解釋解密后的lua腳本,并控制該目標(biāo)lua虛擬機(jī)更新該lua腳本的名稱。其中,lua腳本管理器可以預(yù)嵌入至主程序中,全局?jǐn)?shù)據(jù)管理器可以創(chuàng)建在目標(biāo)lua虛擬機(jī)中。在此,該方法能夠加載初始化的數(shù)據(jù)結(jié)果,并對應(yīng)加載用戶的歷史運(yùn)行數(shù)據(jù)至全局?jǐn)?shù)據(jù)管理器,有助于提高數(shù)據(jù)的完整性,快速、高效地同步更新每個用戶的歷史運(yùn)行數(shù)據(jù),保障玩家有較好的體驗。同時,采用lua腳本管理器和目標(biāo)lua虛擬機(jī)處理lua腳本,靈活度高,有助于準(zhǔn)確、高效地實現(xiàn)動態(tài)更新,達(dá)到游戲服務(wù)業(yè)務(wù)不間斷運(yùn)行,且不影響其他lua腳本的正常運(yùn)行。
為了提高對系統(tǒng)資源的利用效率,在加載lua腳本之后,該方法還能夠?qū)崟r監(jiān)控每個lua腳本的運(yùn)行狀態(tài),若監(jiān)測到狀態(tài)為故障狀態(tài)的lua腳本,則查詢該lua腳本對應(yīng)的lua虛擬機(jī),并向該lua腳本對應(yīng)的lua虛擬機(jī)發(fā)送維護(hù)指令,控制該lua虛擬機(jī)將lua腳本的名稱置為空,即停止運(yùn)行該lua腳本,并記錄停止運(yùn)行時間。若在預(yù)定時間內(nèi),獲取到解密后的lua腳本,則按照已置空名稱的lua腳本的地址,加載解密后的lua腳本,并覆蓋已置空名稱的lua腳本。若在預(yù)定時間內(nèi),未獲取到解密后的lua腳本,則刪除已置空名稱的lua腳本,并保存已置空名稱的lua腳本的地址,直至獲取解碼后的lua腳本,按照已置空名稱的lua腳本的地址進(jìn)行加載。在此,該方法能夠?qū)崟r監(jiān)控各個lua腳本的運(yùn)行狀態(tài),并及時刪除名稱置空的lua腳本,釋放系統(tǒng)空間,提高系統(tǒng)資源利用率。
第二方面,本發(fā)明實施例所提供的一種加密及熱更新裝置,結(jié)合圖2,該裝置包括信息獲取模塊1、腳本加密模塊2、腳本節(jié)點更新模塊3、lua虛擬機(jī)銷毀模塊4、腳本解密模塊5和lua腳本加載模塊6,信息獲取模塊1用于獲取lua腳本和腳本屬性。腳本加密模塊2用于對lua腳本進(jìn)行加密,獲取lua加密腳本。腳本節(jié)點更新模塊3用于根據(jù)目標(biāo)lua腳本節(jié)點地址,將lua加密腳本更新至目標(biāo)lua腳本節(jié)點,腳本屬性包括目標(biāo)lua腳本節(jié)點地址。lua虛擬機(jī)銷毀模塊4用于檢測已更新目標(biāo)lua腳本節(jié)點對應(yīng)的lua虛擬機(jī)的當(dāng)前運(yùn)行狀態(tài):若lua虛擬機(jī)處于閑置狀態(tài),則銷毀lua虛擬機(jī)。若lua虛擬機(jī)處于運(yùn)行狀態(tài),則定時輪詢該lua虛擬機(jī),直至lua虛擬機(jī)處于閑置狀態(tài),并銷毀lua虛擬機(jī)。腳本解密模塊5用于將目標(biāo)lua腳本節(jié)點的lua加密腳本進(jìn)行解密,獲取解密后的lua腳本。lua腳本加載模塊6用于加載解密后的lua腳本,并控制目標(biāo)lua虛擬機(jī)對解密后的lua腳本進(jìn)行解釋。
由上述技術(shù)方案可知,本實施例提供的加密及熱更新裝置,能夠?qū)ua腳本更新至目標(biāo)lua腳本節(jié)點,根據(jù)lua虛擬機(jī)的運(yùn)行狀況實現(xiàn)熱更新,無需重新啟動服務(wù)器,避免繁雜、持久的更新過程。同時,該裝置采用lua解釋型語言腳本,易于實現(xiàn)跨平臺推廣應(yīng)用,執(zhí)行效率高,即使在ios運(yùn)行環(huán)境中,也可以實現(xiàn)代碼熱更新,修復(fù)游戲服務(wù)中的漏洞或缺陷,縮短游戲服務(wù)版本升級的進(jìn)程,提高用戶體驗。
并且,該裝置采用lua腳本實現(xiàn)代碼熱更新,lua腳本體積小、啟動速度快,適合嵌入主程序中,且易于被調(diào)用、理解和維護(hù),方便游戲服務(wù)業(yè)務(wù)擴(kuò)展、更新。同時,該裝置還能夠?qū)ua腳本進(jìn)行加密,再更新至目標(biāo)lua腳本節(jié)點地址,防止腳本出現(xiàn)錯誤,影響后續(xù)游戲服務(wù)運(yùn)行,有助于增強(qiáng)腳本的安全性和穩(wěn)定性。
因此,本實施例加密及熱更新裝置,能夠保證游戲服務(wù)正常運(yùn)行和更新效率,提高游戲服務(wù)的穩(wěn)定性和安全性。
具體地,腳本加密模塊2具體包括業(yè)務(wù)邏輯獲取子模塊、第一腳本分解子模塊、腳本加密子模塊和第一腳本合并子模塊,業(yè)務(wù)邏輯獲取子模塊用于解析lua腳本,獲取該lua腳本的業(yè)務(wù)邏輯。第一腳本分解子模塊用于按照lua腳本的業(yè)務(wù)邏輯,分解lua腳本,獲取腳本分解信息。腳本加密子模塊用于對腳本分解信息進(jìn)行加密,獲取腳本加密信息。第一腳本合并子模塊用于按照業(yè)務(wù)邏輯,合并腳本加密信息,獲取lua加密腳本。
腳本解密模塊5具體包括第二腳本分解子模塊、腳本解密子模塊和第二腳本合并子模塊,第二腳本分解子模塊用于按照業(yè)務(wù)邏輯,將目標(biāo)lua腳本節(jié)點的lua加密腳本進(jìn)行分解,獲取腳本加密信息。腳本解密子模塊用于對腳本加密信息進(jìn)行解密,獲取腳本分解信息。第二腳本合并子模塊用于按照業(yè)務(wù)邏輯,將腳本分解信息合成解密后的lua腳本。
在此,該腳本加密模塊2按照每個腳本的業(yè)務(wù)邏輯對lua腳本進(jìn)行分解,再進(jìn)行加密與合成,成為lua加密腳本,能夠提高lua腳本的安全性,有助于加密及熱更新裝置的穩(wěn)定運(yùn)行,降低lua腳本被破壞與惡意更改的可能性。同時,該腳本加密模塊2按照每個腳本的業(yè)務(wù)邏輯進(jìn)行分解,有利于保證lua腳本的完整性,避免腳本解密模塊5在腳本合成時帶來不必要的錯誤,有助于提高lua腳本熱更新過程的穩(wěn)定性、安全性以及效率。
具體地,本實施例加密及熱更新裝置還包括lua腳本節(jié)點設(shè)置模塊:用于獲取系統(tǒng)資源的分布狀態(tài);根據(jù)系統(tǒng)資源的分布狀態(tài),設(shè)置lua腳本節(jié)點。在此,lua腳本節(jié)點設(shè)置模塊結(jié)合已有的系統(tǒng)資源,劃分lua腳本節(jié)點,有助于提高目標(biāo)lua腳本節(jié)點的準(zhǔn)確性,便于各目標(biāo)lua腳本節(jié)點能夠準(zhǔn)確、有效地獲取lua加密腳本,提高節(jié)點資源的更新效率。
具體地,本實施例加密及熱更新裝置還包括運(yùn)行數(shù)據(jù)保存模塊:用于保存lua虛擬機(jī)的運(yùn)行數(shù)據(jù);并加載運(yùn)行數(shù)據(jù)。在此,本實施例加密及熱更新裝置在對游戲服務(wù),如某個游戲的應(yīng)用程序,進(jìn)行熱更新后,能夠同步加載每個用戶的歷史運(yùn)行數(shù)據(jù),例如,每個用戶的當(dāng)前游戲級別、進(jìn)度等,既能夠完成代碼熱更新,又能夠同步更新用戶數(shù)據(jù),有助于提高用戶體驗。
最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求和說明書的范圍當(dāng)中。