本發(fā)明涉及通信工程技術(shù),尤其涉及一種插件升級方法及裝置。
背景技術(shù):
隨著android應用的功能越來越多,安裝包就會越來越大,很多應用程序(application,簡稱app)都使用了插件機制。插件機制具有動態(tài)更新,不需要安裝,減小主程序占用的存儲空間等優(yōu)點。
現(xiàn)有技術(shù)中插件的動態(tài)更新方法為:對服務器中的插件包中的dalvik執(zhí)行程序(dalvikvmexecutes,簡稱dex)文件的程序代碼進行修改,從而增加功能和/或修復bug,得到新的完整插件包,將新的完整插件包上傳服務器作為插件的升級包。終端下載升級包,并采用升級包替換當前插件包,完成插件的升級。
但是,對于占用存儲空間較大的插件,在bug的數(shù)量較少或?qū)δ艿男薷妮^少時,終端需要下載升級包來完成升級過程,而該升級包為完整的插件包,因此會造成更新速度慢及耗費用戶流量的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明提供一種插件升級方法及裝置,以克服現(xiàn)有技術(shù)中升級包較大造成的插件升級速度慢及耗費用戶流量的技術(shù)問題。
第一方面,本發(fā)明提供一種插件升級方法,應用于終端設備,所述終端設備中安裝有第一插件,所述方法包括:
獲取與所述第一插件對應的升級包;所述升級包包括差量文件和驗證信息,所述差量文件包括所述第一插件和第二插件的差異信息,以及所述差異信息在所述第二插件的第一數(shù)據(jù)文件中的位置;其中,所述第二插件為所述第一插件對應的最新版本插件;
根據(jù)所述驗證信息,對所述升級包進行驗證,得到驗證通過的結(jié)果;
根據(jù)所述升級包和所述第一插件進行升級,得到升級后的第一插件。
如上所述的方法,所述根據(jù)所述升級包和所述第一插件進行升級,得到升級后的第一插件,包括:
將所述第一插件的第二數(shù)據(jù)文件對應所述位置處的待更新信息替換為所述差異信息,得到第三數(shù)據(jù)文件;
根據(jù)所述第三數(shù)據(jù)文件,得到所述升級后的第一插件。
如上所述的方法,所述驗證信息包括合法驗證信息和第一匹配驗證信息,所述合法驗證信息包括第一驗證信息和第二驗證信息,所述根據(jù)所述驗證信息,對所述升級包進行驗證,得到驗證通過的結(jié)果,包括:
采用md5加密算法對所述差量文件加密,得到第一摘要信息;
判斷所述第一摘要信息是否和所述第一驗證信息相同,若是,則通過公鑰解密對所述第二驗證信息解密,得到第二摘要信息,若所述第一摘要信息和第二摘要信息相同,則確定所述升級包合法;
采用md5加密算法對所述第二數(shù)據(jù)文件進行加密,得到第三摘要信息;
判斷所述第三摘要信息與所述第一匹配驗證信息是否相同,若是,則得到升級包驗證通過的結(jié)果。
如上所述的方法,所述驗證信息還包括:第二匹配驗證信息,在所述根據(jù)所述第三數(shù)據(jù)文件,得到所述升級后的第一插件之前,還包括:
采用md5加密算法對所述第三數(shù)據(jù)文件進行加密,得到第四摘要信息;
判斷所述第四摘要信息與所述第二匹配驗證信息是否相同,若是,則確定所述第三數(shù)據(jù)文件與所述升級包匹配。
如上所述的方法,所述獲取與所述第一插件對應的升級包,包括:
向服務器發(fā)送查詢請求,所述查詢請求中包括所述第一插件的標識和版本信息,所述查詢請求用于指示所述服務器查詢是否存儲有與所述第一插件對應的升級包;
相應地,獲取與所述第一插件對應的升級包包括:
獲取所述服務器在確定所述服務器中存儲有所述第一插件對應的升級包時發(fā)送的所述升級包。
第二方面,本發(fā)明提供一種插件升級方法,包括:
獲取差量文件,所述差量文件包括第一插件和第二插件的差異信息,以及所述差異信息在所述第二插件的第一數(shù)據(jù)文件中的位置,所述第二插件為所述第一插件對應的最新版本插件;
獲取驗證信息;所述驗證信息用于在插件升級過程中驗證升級包的合法性以及升級包是否與第一插件匹配;
將所述差量文件和所述驗證信息發(fā)送至服務器,以使所述服務器根據(jù)所述差量文件和所述驗證信息,生成所述第一插件的升級包,所述升級包用于所述第一插件的升級。
如上所述的方法,所述驗證信息包括合法驗證信息和第一匹配驗證信息,所述獲取驗證信息包括:
采用md5加密算法對所述差量文件加密,得到第一驗證信息;
通過私鑰加密對所述第一驗證信息加密,得到第二驗證信息;
采用md5加密算法對第一插件的第二數(shù)據(jù)文件進行加密,得到第一匹配驗證信息。
如上所述的方法,所述驗證信息還包括:第二匹配驗證信息,所述獲取驗證信息還包括:
采用md5加密算法對第二插件的第一數(shù)據(jù)文件進行加密,得到所述第二匹配驗證信息。
第三方面,本發(fā)明提供一種插件升級裝置,包括:
升級包獲取模塊,所述升級包獲取模塊用于獲取與所述第一插件對應的升級包;所述升級包包括差量文件和驗證信息,所述差量文件包括所述第一插件和第二插件的差異信息,以及所述差異信息在所述第二插件的第一數(shù)據(jù)文件中的位置;其中,所述第二插件為所述第一插件對應的最新版本插件;
驗證模塊,所述驗證模塊用于根據(jù)所述驗證信息,對所述升級包進行驗證,得到驗證通過的結(jié)果;
升級模塊,所述升級模塊用于根據(jù)所述升級包和所述第一插件進行升級,得到升級后的第一插件。
第四方面,本發(fā)明提供一種插件升級裝置,包括:
第一獲取模塊,所述第一獲取模塊用于獲取差量文件,所述差量文件包括第一插件和第二插件的差異信息,以及所述差異信息在所述第二插件的第一數(shù)據(jù)文件中的位置,所述第二插件為所述第一插件對應的最新版本插件;
第二獲取模塊,所述第二獲取模塊用于獲取驗證信息;所述驗證信息用于在插件升級過程中驗證升級包的合法性以及升級包是否與第一插件匹配;
發(fā)送模塊,所述發(fā)送模塊將所述差量文件和所述驗證信息發(fā)送至服務器,以使所述服務器根據(jù)所述差量文件和所述驗證信息,生成所述第一插件的升級包,所述升級包用于所述第一插件的升級。
本發(fā)明提供一種插件升級方法及裝置,本發(fā)明的插件升級方法包括:獲取與第一插件對應的升級包;升級包包括差量文件和驗證信息,差量文件包括所述第一插件和第二插件的差異信息,以及差異信息在所述第二插件的第一數(shù)據(jù)文件中的位置;其中,第二插件為第一插件對應的最新版本插件;根據(jù)驗證信息,對升級包進行驗證,得到驗證通過的結(jié)果;根據(jù)升級包和第一插件進行升級,得到升級后的第一插件。本發(fā)明的插件升級方法及裝置,插件升級速度快且不耗費用戶流量。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明的應用場景圖;
圖2為本發(fā)明提供的插件升級方法的流程圖一;
圖3為本發(fā)明提供的差量文件示意圖一;
圖4為本發(fā)明提供的差量文件示意圖二;
圖5為本發(fā)明提供的差量文件示意圖三;
圖6為本發(fā)明提供的插件升級方法的流程圖二;
圖7為本發(fā)明提供的插件升級方法的流程圖三;
圖8為本發(fā)明提供的插件升級裝置的實施例一的結(jié)構(gòu)示意圖;
圖9為本發(fā)明提供的插件升級裝置的實施例二的結(jié)構(gòu)示意圖;
圖10為本發(fā)明提供的插件升級裝置的實施例三的結(jié)構(gòu)示意圖。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
圖1為本發(fā)明提供的一種可能的系統(tǒng)架構(gòu)圖。參見圖1,本實施例提供的系統(tǒng)架構(gòu)圖包括服務器11和第一用戶設備12和第二用戶設備13。第一用戶設備12和第二用戶設備13例如均可以為手機、平板、電腦等設備。服務器11用于存儲插件以及該插件對應的升級包。
第二用戶設備13安裝有至少一個應用程序,應用程序中包括至少一個插件,插件例如可以為搜狗輸入程序中的皮膚插件。
第一用戶設備12可以從服務器中獲取插件,根據(jù)該插件生成升級包,該升級包可以對該插件進行升級。第一用戶設備12將生成的升級包發(fā)送至服務器,由服務器進行存儲,供第二用戶設備13中的插件升級時調(diào)用。其中,為了解決插件升級速度慢及耗費用戶流量的問題,第一用戶設備12生成的升級包僅包含差量文件和驗證信息,因此,第二用戶設備從服務器獲取的升級包僅包含差量文件和驗證信息,由于該升級包包括差量文件,所以升級速度快,耗費流量少。
下面對本發(fā)明的插件升級方法及裝置進行詳細的說明。首先,通過圖2所示實施例,對第一用戶設備做升級包的過程進行詳細說明。下述圖2中的執(zhí)行主體例如可以為上述圖1中的第一用戶設備12。
圖2為本發(fā)明提供的插件升級方法的流程圖一,如圖2所示,應用于終端設備,本實施例的方法可以包括:
步驟s101、獲取差量文件,差量文件包括第一插件和第二插件的差異信息,以及差異信息在第二插件的第一數(shù)據(jù)文件中的位置,第二插件為第一插件對應的最新版本插件;
步驟s102、獲取驗證信息,所述驗證信息用于在插件升級過程中驗證升級包的合法性以及升級包是否與第一插件匹配;
步驟s103、將差量文件和驗證信息發(fā)送至服務器,以使服務器根據(jù)差量文件和驗證信息,生成第一插件的升級包,升級包用于第一插件的升級。
具體地,本實施例中的第一插件為在服務器中備份的插件,不是安裝在用戶設備內(nèi)的插件,第二插件為第一插件對應的最新版本插件,也就是說第二插件是為了增加第一插件的功能和/或修復第一插件的bug,對第一插件的第一數(shù)據(jù)文件(也可稱為第一dex文件)的程序代碼進行了修改,得到的插件。得到第二插件后,也將第二插件上傳至服務器,存儲在服務器中。
在生成本實施例中的升級包時,首先從服務器獲取第一插件和第二插件。得到第一插件和第二插件后,對第一插件進行解壓縮,得到第一插件的第二數(shù)據(jù)文件,對第二插件進行解壓縮,得到第二插件的第一數(shù)據(jù)文件。其中,數(shù)據(jù)文件是指插件包中的dex文件,在安卓系統(tǒng)中,為andoriddalvik執(zhí)行程序文件。
采用bsdiff差量工具,對比第一數(shù)據(jù)文件和第二數(shù)據(jù)文件,得到差量文件,差量文件包括第一插件和第二插件的差異信息,以及差異信息在第二插件的第一數(shù)據(jù)文件中的位置;第一數(shù)據(jù)文件和第二數(shù)據(jù)文件之間存在的差異可能有以下幾種情況:(1)第一數(shù)據(jù)文件中包含數(shù)據(jù)a,第二數(shù)據(jù)文件不包含數(shù)據(jù)a,也就是說第二插件中新增加了數(shù)據(jù)a;(2)第一數(shù)據(jù)文件中不包含數(shù)據(jù)b,第二數(shù)據(jù)文件包含數(shù)據(jù)b,也就是說第二插件中刪除了數(shù)據(jù)b;(3)第一數(shù)據(jù)文件中包含數(shù)據(jù)c,第二數(shù)據(jù)文件也包含數(shù)據(jù)c,但是第一數(shù)據(jù)文件中的數(shù)據(jù)c和第二數(shù)據(jù)文件中的數(shù)據(jù)c不相同,也就是說第二插件對數(shù)據(jù)c進行了修改。其中,數(shù)據(jù)a和數(shù)據(jù)c一定為差異數(shù)據(jù),對于數(shù)據(jù)b,由于對數(shù)據(jù)b的操作是刪除,也就是說數(shù)據(jù)b是沒有作用的數(shù)據(jù),因此,可以將數(shù)據(jù)b忽略,在差量文件中不體現(xiàn),也可以將數(shù)據(jù)b被刪除的操作信息記錄在差量文件中。
圖3為本發(fā)明提供的差量文件示意圖一,參見圖3,在差量文件中,位置a處對應新增的數(shù)據(jù)a的信息,位置c處對應修改后的數(shù)據(jù)c的信息,位置b處對應數(shù)據(jù)b被刪除的操作信息,位置a、b、c均為第一數(shù)據(jù)文件中的位置。
圖4為本發(fā)明提供的差量文件示意圖二,參見圖4,在差量文件中,位置a處對應新增的數(shù)據(jù)a的信息,位置c處對應修改后的數(shù)據(jù)c的信息,位置a、b均為第一數(shù)據(jù)文件中為位置。
圖5為本發(fā)明提供的差量文件示意圖三,參見圖5,位置a處對應新增的數(shù)據(jù)a的信息,位置c處對應修改后的數(shù)據(jù)c的信息,位置b處為空數(shù)據(jù),位置a、b、c均為第一數(shù)據(jù)文件中的位置。
在得到了差量文件后,接著獲取驗證信息,驗證信息用于在終端用戶更新插件時,驗證升級包是否被篡改或者升級包與用戶設備中安裝的第一插件是否匹配,具體過程為:驗證信息包括合法驗證信息、第一匹配信息和第二匹配信息,合法驗證信息包括第一驗證信息和第二驗證信息;采用md5加密算法對差量文件加密,得到第一驗證信息;通過私鑰加密對第一驗證信息加密,得到第二驗證信息;采用md5加密算法對第一插件的第二數(shù)據(jù)文件進行加密,得到第一匹配驗證信息;采用md5加密算法對第二插件的第一數(shù)據(jù)文件進行加密,得到第二匹配驗證信息。
驗證信息的獲取,保證了升級包的安全性,以及避免了升級包與待升級的第一插件不對應造成的升級錯誤的現(xiàn)象發(fā)生。
在得到了差量文件和各驗證信息后,將差量文件和驗證信息發(fā)送至服務器,以使服務器根據(jù)差量文件和驗證信息,生成第一插件的升級包,升級包用于第一插件的升級。即服務器將差量文件和各驗證信息壓縮,得到第一插件的升級包,用于對用戶設備中的第一插件進行升級。
第一插件的升級包采用第一插件的版本信息進行標識,以便在用戶設備進行第一插件升級時可以下載正確的升級包。
本實施例中的生成的升級包只包括差量文件和驗證信息,升級包占用的存儲空間小,用戶下載的速度快,使用的流量較小,且升級的過程中,只需要將差量文件和第二數(shù)據(jù)文件比較即可,升級速度快。
本實施例的插件升級方法包括:獲取差量文件,差量文件包括第一插件和第二插件的差異信息,以及差異信息在第二插件的第一數(shù)據(jù)文件中的位置,第二插件為第一插件對應的最新版本插件;獲取驗證信息;將差量文件和驗證信息發(fā)送至服務器,以使服務器根據(jù)差量文件和驗證信息,生成第一插件的升級包,升級包用于第一插件的升級。本實施例的插件升級方法,插件升級速度快且不耗費用戶流量。
在采用上述的方法得到升級包后,供用戶設備對第一插件進行升級時使用。
其次,下面采用具體的實施例,對用戶設備的插件升級方法進行詳細說明。本領(lǐng)域技術(shù)人員可以理解,該升級包為上述生成的升級包;以下實施例的執(zhí)行主體可為圖1中所示的第二用戶設備13.
圖6為本發(fā)明提供的插件升級方法的流程圖二。如圖6所示,本實施例的方法可以包括:
步驟s601、獲取與第一插件對應的升級包;升級包包括差量文件和驗證信息,差量文件包括第一插件和第二插件的差異信息,以及差異信息在第二插件的第一數(shù)據(jù)文件中的位置;其中,第二插件為第一插件對應的最新版本插件;
步驟s602、根據(jù)驗證信息,對升級包進行驗證,得到驗證通過的結(jié)果;
步驟s603、根據(jù)升級包和第一插件進行升級,得到升級后的第一插件。
具體地,本實施例中的第一插件為安裝在用戶設備內(nèi)的第一插件。
在用戶設備側(cè),當?shù)谝徊寮闹鞒绦虮粏雍螅脩粼O備向服務器發(fā)送查詢請求,查詢請求中包括第一插件的標識和版本信息,查詢請求用于指示服務器查詢是否存儲有與第一插件對應的升級包;服務器接收到查詢請求后,根據(jù)第一插件的標識和版本信息進行查詢,若服務器查詢到存儲有與第一插件對應的升級包,則將與第一插件對應的升級包發(fā)送至用戶設備,用戶設備接收服務器發(fā)送的與第一插件對應的升級包,進行后續(xù)的升級過程。服務器在查詢是否存儲有與第一插件對應的升級包時,查詢是否存在標識與第一插件的版本信息相同的升級包。
用戶設備接收的服務器發(fā)送的升級包包括:差量文件和驗證信息,差量文件包括第一插件和第二插件的差異信息,以及差異信息在第二插件的第一數(shù)據(jù)文件中的位置;其中,第二插件為第一插件對應的最新版本插件。
但是在升級包下載的過程中,升級包有可能會被篡改,因此,在獲取到升級包后,需要對升級包進行驗證,驗證主要包括:驗證升級包是否合法以及驗證升級包是否與第一插件匹配;若驗證結(jié)果為通過,則根據(jù)升級包和第一插件進行升級,得到升級后的第一插件。其中,根據(jù)差量文件包括的信息不同,步驟“根據(jù)升級包和第一插件進行升級,得到升級后的第一插件”的具體方法有所差異。若差量文件為圖4或圖5所示的形式,則根據(jù)升級包和第一插件進行升級,得到升級后的第一插件的具體方法,包括:將第一插件的第二數(shù)據(jù)文件對應位置處的待更新信息替換為差異信息,得到第三數(shù)據(jù)文件,根據(jù)第三數(shù)據(jù)文件,得到升級后的第一插件。
更為具體地,若差量文件為圖4中所示的形式,獲取上述第三數(shù)據(jù)文件的過程為:查找到第二數(shù)據(jù)文件中的a位置,在a位置處添加數(shù)據(jù)a信息,查找到第二數(shù)據(jù)文件中的c位置,將c位置處的信息替換為修改后的數(shù)據(jù)c信息,得到第三數(shù)據(jù)文件;查找到第二數(shù)據(jù)文件中的b位置,將b位置處的信息替換為空信息,即將b位置處的信息刪除,若差量文件為圖5中所示的形式,獲取第三數(shù)據(jù)文件的過程為:查找到第二數(shù)據(jù)文件中的a位置,在a位置處添加數(shù)據(jù)a信息,查找到第二數(shù)據(jù)文件中的c位置,將c位置處的信息替換為修改后的數(shù)據(jù)c信息,得到第三數(shù)據(jù)文件。其中,本實施例中的第二數(shù)據(jù)文件是在用戶設備驗證升級包時得到的,具體為:用戶設備獲取第一插件,對第一插件解壓,得到第二數(shù)據(jù)文件。
此外,若差量文件為圖3所示的形式,獲取第三數(shù)據(jù)文件的過程:查找到第二數(shù)據(jù)文件中的a位置,在a位置處添加數(shù)據(jù)a信息,查找到第二數(shù)據(jù)文件中的c位置,將c位置處的信息替換為修改后的數(shù)據(jù)c信息,查找到第二數(shù)據(jù)文件中的b位置,根據(jù)差量文件b位置處對應的刪除操作信息,對第一插件中b位置處的原有信息進行刪除操作,得到第三數(shù)據(jù)文件。
升級包中包括的驗證信息還包括:第二匹配驗證信息,相應地,在根據(jù)第三數(shù)據(jù)文件,得到升級后的第一插件之前,還包括以下步驟:
采用md5加密算法對第三數(shù)據(jù)文件進行加密,得到第四摘要信息;判斷第四摘要信息與第二匹配驗證信息是否相同,若是,則確定第三數(shù)據(jù)文件與升級包匹配。
在確定了第三數(shù)據(jù)文件與升級包匹配后,采用第三數(shù)據(jù)文件替換獲取的升級前的第一插件中的第二數(shù)據(jù)文件,得到升級后的第一插件。
在得到升級后的第一插件后,用戶設備判斷第一插件對應的主程序是否在運行,若是,則等下次第一插件對應的主程序啟動時,采用升級后的第一插件覆蓋升級前的第一插件,若否,則直接將升級后的第一插件覆蓋升級前的第一插件,也就是將用戶設備原有的第一插件刪除。
本實施例中獲取的升級包只包括差量文件和驗證信息,升級包占用的存儲空間小,用戶下載的速度快,使用的流量較小,且升級的過程中,只是將差量文件和第二數(shù)據(jù)文件比較,升級速度快。
本實施例的插件升級方法包括:獲取與第一插件對應的升級包;升級包包括差量文件和驗證信息,差量文件包括所述第一插件和第二插件的差異信息,以及差異信息在所述第二插件的第一數(shù)據(jù)文件中的位置;其中,第二插件為第一插件對應的最新版本插件;根據(jù)驗證信息,對升級包進行驗證,得到驗證通過的結(jié)果;根據(jù)升級包和第一插件進行升級,得到升級后的第一插件。本實施例的插件升級方法,插件升級速度快且不耗費用戶流量。
圖7為本發(fā)明提供的插件升級方法的流程圖三,如圖7所示,本實施例的方法為上一實施例中驗證升級包的過程,本實施例的方法包括:
步驟s701、采用md5加密算法對差量文件加密,得到第一摘要信息;
步驟s702、判斷第一摘要信息是否和第一驗證信息相同,若是,則通過公鑰解密對第二驗證信息解密,得到第二摘要信息,若第一摘要信息和第二摘要信息相同,則確定升級包合法;
步驟s703、采用md5加密算法對第二數(shù)據(jù)文件進行加密,得到第三摘要信息;
步驟s704、判斷第三摘要信息與第一匹配驗證信息是否相同,若是,則得到驗證通過的結(jié)果。
具體地,本實施例中的差量文件為下載的升級包中包括的差量文件,采用md5加密算法對差量文件加密,得到第一摘要信息。由于第一驗證信息為對在生成升級包的過程中(圖1所示的方法實施例)得到的差量文件采用md5加密得到的信息,若升級包沒有被篡改,則第一摘要信息應該與第一驗證信息相同。若第一摘要信息與第一驗證信息相同,則通過公鑰解密對第二驗證信息解密,得到第二摘要信息。由于第二驗證信息是為對在生成升級包的過程中(圖1所示的方法實施例)第一驗證信息私鑰加密后得到的,若升級包沒有被篡改,則第一摘要信息和第二摘要信息相同,從而確定升級包合法。
在確定升級包合法后,則驗證用戶設備獲取的第一插件是否與升級包匹配,具體過程為:采用md5加密算法對第二數(shù)據(jù)文件進行加密,得到第三摘要信息;判斷第三摘要信息與第一匹配驗證信息是否相同,因為第一匹配驗證信息為對在生成升級包的過程中(圖1所示的方法實施例)第一插件(服務器中備份的第一插件)的第二數(shù)據(jù)文件進行md5加密得到的,若升級包沒有被篡改,則第一匹配驗證信息應該與第三摘要信息相同。在確定第一匹配驗證信息與第三摘要信息相同后,說明第一插件與升級包匹配,得到升級包驗證通過的結(jié)果。
本實施例的插件,通過對升級包的驗證,保證了升級包為待升級的第一插件對應的升級包,避免了升級包與待升級的第一插件不對應造成的升級錯誤現(xiàn)象的發(fā)生。
圖8為本發(fā)明提供的插件升級裝置實施例一的結(jié)構(gòu)示意圖,如圖8所示,本實施例的裝置可以包括:升級包獲取模塊81、驗證模塊82和升級模塊83,升級包獲取模塊81用于獲取與第一插件對應的升級包;升級包包括差量文件和驗證信息,差量文件包括第一插件和第二插件的差異信息,以及差異信息在第二插件的第一數(shù)據(jù)文件中的位置;其中,第二插件為第一插件對應的最新版本插件;驗證模塊82用于根據(jù)驗證信息,對升級包進行驗證,得到驗證通過的結(jié)果;升級模塊83用于根據(jù)升級包和第一插件進行升級,得到升級后的第一插件。
其中,驗證信息包括第一驗證信息、第一驗證信息、第一匹配驗證信息和第二匹配信信息;升級模塊具體用于將第一插件的第二數(shù)據(jù)文件對應位置處的待更新信息替換為差異信息,得到第三數(shù)據(jù)文件;采用md5加密算法對第三數(shù)據(jù)文件進行加密,得到第四摘要信息;判斷第四摘要信息與第二匹配驗證信息是否相同,若是,則確定第三數(shù)據(jù)文件與升級包匹配;根據(jù)第三數(shù)據(jù)文件,得到升級后的第一插件。
驗證模塊82具體用于,采用md5加密算法對差量文件加密,得到第一摘要信息;判斷第一摘要信息是否和第一驗證信息相同,若是,則通過公鑰解密對第二驗證信息解密,得到第二摘要信息,若第一摘要信息和第二摘要信息相同,則確定升級包合法;采用md5加密算法對第二數(shù)據(jù)文件進行加密,得到第三摘要信息;判斷第三摘要信息與第一匹配驗證信息是否相同,若是,則得到升級包驗證通過的結(jié)果。
本實施例的裝置,可以用于執(zhí)行上述方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
圖9為本發(fā)明提供的插件升級裝置實施例二的結(jié)構(gòu)示意圖,如圖9所示,本實施例的裝置在圖8所示裝置結(jié)構(gòu)的基礎上,進一步地,還可以包括發(fā)送模塊84,發(fā)送模塊84用于向服務器發(fā)送查詢請求,查詢請求中包括第一插件的標識和版本信息,查詢請求用于指示服務器查詢是否存儲有與第一插件對應的升級包;升級包獲取模塊81具體用于獲取服務器在確定服務器中存儲有第一插件對應的升級包時發(fā)送的升級包。
圖10為本發(fā)明提供的插件升級裝置實施例三的結(jié)構(gòu)示意圖,如圖10所示,本實施例的插件升級裝置包括第一獲取模塊91、第二獲取模塊92和發(fā)送模塊93,第一獲取模塊91用于獲取差量文件,差量文件包括第一插件和第二插件的差異信息,以及差異信息在第二插件的第一數(shù)據(jù)文件中的位置,第二插件為第一插件對應的最新版本插件;第二獲取模塊92用于獲取驗證信息;發(fā)送模塊93用于將差量文件和驗證信息發(fā)送至服務器,以使服務器根據(jù)差量文件和驗證信息,生成第一插件的升級包,升級包用于第一插件的升級。
驗證信息包括第一驗證信息、第一驗證信息、第一匹配驗證信息和第二匹配信信息;第二獲取模塊92具體用于采用md5加密算法對差量文件加密,得到第一驗證信息;通過私鑰加密對第一驗證信息加密,得到第二驗證信息;采用md5加密算法對第一插件的第二數(shù)據(jù)文件進行加密,得到第一匹配驗證信息;采用md5加密算法對第二插件的第一數(shù)據(jù)文件進行加密,得到第二匹配驗證信息。
本實施例的裝置,可以用于執(zhí)行上述方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括:rom、ram、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
最后應說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應當理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。