專利名稱:基于u盤載體的程序簽名和升級(jí)錯(cuò)誤恢復(fù)方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息技術(shù)領(lǐng)域,特別涉及基于U盤載體的程序簽名和升級(jí)錯(cuò)誤恢復(fù)方法。
背景技術(shù):
隨著U盤的廣泛使用,使得很多的應(yīng)用程序開始使用U盤為載體。這種以U盤為 載體的應(yīng)用方式,雖然能夠方便應(yīng)用程序的使用,但由于U盤內(nèi)數(shù)據(jù)的可復(fù)制性,無法保證 產(chǎn)品授權(quán)的唯一性。即使廠家通過授權(quán)文件可以控制產(chǎn)品的授權(quán),能夠保證程序在非授權(quán) 下不可運(yùn)行,但是卻無法限制同一份授權(quán)文件應(yīng)用在多個(gè)程序上,只要獲得了正確的產(chǎn)品 授權(quán)文件,則可以在任何載體上使用產(chǎn)品,因此會(huì)出現(xiàn)同一產(chǎn)品供多人使用的問題。同時(shí), 對(duì)于現(xiàn)有U盤載體的程序產(chǎn)品,在升級(jí)的過程中,通常要求不能中斷,如果意外情況導(dǎo)致程 序升級(jí)中斷,將有可能破壞程序段完整性,導(dǎo)致升級(jí)后的程序不可用的情況。
發(fā)明內(nèi)容
本發(fā)明提供了一種基于U盤載體的程序簽名和升級(jí)錯(cuò)誤恢復(fù)方法,解決了基于U 盤載體的程序產(chǎn)品載體不唯一,以及升級(jí)后程序不可用的問題。一種基于U盤載體的程序簽名方法,包括如下步驟
a.讀取當(dāng)前U盤固有識(shí)別ID和原始固有識(shí)別ID;
b.對(duì)比當(dāng)前U盤固有識(shí)別ID與原始固有識(shí)別ID是否相同,如果相同,則讀取簽名序 列,否則結(jié)束;
c.讀取簽名序列后,判斷簽名序列是否正確,如果正確,則執(zhí)行程序簽名之后的流程, 否則結(jié)束。所述的方法中,將所述的U盤載體分為程序存儲(chǔ)分區(qū)和隱藏存儲(chǔ)分區(qū)。所述的方法中,所述的隱藏存儲(chǔ)分區(qū)對(duì)使用U盤載體的裝置不可見。所述的方法中,在程序繼續(xù)運(yùn)行的空閑時(shí)間,執(zhí)行所述步驟a到C。所述的方法中,在執(zhí)行步驟a前,將原始固有識(shí)別ID與簽名序列存儲(chǔ)在隱藏存儲(chǔ) 分區(qū)中。一種基于U盤載體的程序簽名裝置,包括第一讀取單元、對(duì)比單元、第二讀取單 元、判斷單元和處理單元;
第一讀取單元,用于讀取當(dāng)前U盤固有識(shí)別ID和原始固有識(shí)別ID ; 對(duì)比單元,用于對(duì)比當(dāng)前U盤固有識(shí)別ID與原始固有識(shí)別ID是否相同; 第二讀取單元,用于在對(duì)比單元確定當(dāng)前U盤固有識(shí)別ID與原始固有識(shí)別ID相同時(shí), 則讀取簽名序列;
判斷單元,用于在第二讀取單元讀取簽名序列后,判斷簽名序列是否正確; 處理單元,用于在判斷單元確定簽名序列正確時(shí),進(jìn)行程序簽名之后的處理,否則結(jié)束 處理,并且,在對(duì)比單元確定當(dāng)前U盤固有識(shí)別ID與原始固有識(shí)別ID不相同時(shí),結(jié)束處理。
一種基于U盤載體的升級(jí)錯(cuò)誤恢復(fù)方法,包括如下步驟
d.獲取并存儲(chǔ)升級(jí)文件的MD5值;
e.獲取并存儲(chǔ)升級(jí)文件,計(jì)算升級(jí)文件的MD5值;
f.校驗(yàn)獲取的MD5值和計(jì)算得到的升級(jí)文件的MD5值是否相同,如果相同,則讀取存儲(chǔ) 的升級(jí)文件,對(duì)程序進(jìn)行升級(jí),否則返回步驟d ;
在讀取存儲(chǔ)的升級(jí)文件、對(duì)程序進(jìn)行升級(jí)的過程中,如果讀取存儲(chǔ)的升級(jí)文件發(fā)生錯(cuò) 誤,則重新讀取存儲(chǔ)的升級(jí)文件;
在讀取存儲(chǔ)的升級(jí)文件、對(duì)程序進(jìn)行升級(jí)的過程中,如果確定程序能夠正常運(yùn)行,則升 級(jí)完成,否則,讀取原始程序。所述的方法中,將所述的U盤載體分為程序存儲(chǔ)分區(qū)和隱藏存儲(chǔ)分區(qū)。所述的方法中,所述的隱藏存儲(chǔ)分區(qū)對(duì)使用U盤載體的裝置不可見。所述的方法中,所述的升級(jí)文件的MD5值、升級(jí)文件和原始程序存儲(chǔ)在隱藏存儲(chǔ) 分區(qū)內(nèi)。一種基于U盤載體的升級(jí)錯(cuò)誤恢復(fù)裝置,所述的裝置包括第一讀取及存儲(chǔ)單元、 對(duì)比單元、第二讀取單元、判斷單元和處理單元;
第一讀取及存儲(chǔ)單元,用于讀取及存儲(chǔ)升級(jí)文件的MD5值和升級(jí)文件,并計(jì)算升級(jí)文 件的MD5值;
對(duì)比單元,用于對(duì)比讀取的MD5值和計(jì)算得到的升級(jí)文件的MD5值是否相同; 第二讀取單元,用于在對(duì)比單元確定讀取的MD5值和計(jì)算得到的升級(jí)文件的MD5值相 同時(shí),讀取存儲(chǔ)的升級(jí)文件;
判斷單元,用于在第二讀取單元讀取存儲(chǔ)的升級(jí)文件時(shí),判斷升級(jí)是否發(fā)生錯(cuò)誤,如果 讀取存儲(chǔ)的升級(jí)文件發(fā)生錯(cuò)誤,則第二讀取單元重新讀取存儲(chǔ)的升級(jí)文件;
處理單元,用于在第二讀取單元讀取存儲(chǔ)的升級(jí)文件、對(duì)程序進(jìn)行升級(jí)的過程中,確定 程序是否能夠正常運(yùn)行,如果是,則升級(jí)完成,否則,讀取原始程序。本發(fā)明提供了一種基于U盤載體的程序簽名和升級(jí)錯(cuò)誤恢復(fù)方法,所述程序簽名 方法中,將U盤載體分為了程序存儲(chǔ)分區(qū)和隱藏存儲(chǔ)分區(qū),所述的方法包括讀取當(dāng)前U盤 固有識(shí)別ID和原始固有識(shí)別ID,并進(jìn)行對(duì)比,如果相同則讀取簽名序列,繼續(xù)判斷簽名序 列是否正確,如果正確則程序繼續(xù)執(zhí)行,如果錯(cuò)誤則結(jié)束。所述升級(jí)錯(cuò)誤恢復(fù)方法中,在U 盤載體的隱藏存儲(chǔ)分區(qū)中存儲(chǔ)原始程序,通過升級(jí)文件的MD5值,確定升級(jí)文件是否完整, 如果MD5值相同,則將升級(jí)文件寫入程序存儲(chǔ)分區(qū),當(dāng)升級(jí)后的程序無法正常運(yùn)行時(shí),將隱 藏存儲(chǔ)分區(qū)中的原始程序?qū)懭氲匠绦虼鎯?chǔ)分區(qū)內(nèi)。通過本發(fā)明提供的方法,能夠解決基于 U盤載體的程序產(chǎn)品載體不唯一,以及升級(jí)后程序不可用的問題。
為了更清楚地說明本發(fā)明或現(xiàn)有技術(shù)中的技術(shù)方案, 下面將對(duì)實(shí)施例或現(xiàn)有技術(shù) 描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明中 記載的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以 根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明提供的一種基于U盤載體的程序簽名方法;圖2為本發(fā)明提供的一種基于U盤載體的程序簽名裝置; 圖3為本發(fā)明提供的一種基于U盤載體的升級(jí)錯(cuò)誤恢復(fù)方法;圖4為本發(fā)明提供的一種基于U盤載體的升級(jí)錯(cuò)誤恢復(fù)裝置。
具體實(shí)施例方式為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明實(shí)施例中的技術(shù)方案,并使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖對(duì)本發(fā)明中技術(shù)方案作進(jìn)一步詳 細(xì)的說明。本發(fā)明提供了一種基于U盤載體的程序簽名和升級(jí)錯(cuò)誤恢復(fù)方法,解決了基于U盤載體的程序產(chǎn)品載體不唯一,以及升級(jí)后程序不可用的問題。本發(fā)明首先提供了一種基于U盤載體的程序簽名方法,如圖1所示,包括如下步 驟
5101讀取當(dāng)前U盤固有識(shí)別ID和原始固有識(shí)別ID ;
5102對(duì)比當(dāng)前U盤固有識(shí)別ID與原始固有識(shí)別ID是否相同,如果相同,則執(zhí)行S103, 否則結(jié)束程序運(yùn)行;
5103讀取簽名序列;
5104判斷簽名序列是否正確,如果正確,則執(zhí)行S105,否則,退出程序;
5105執(zhí)行程序簽名之后的流程。所述的方法中,將所述的U盤載體分為了程序存儲(chǔ)分區(qū)和隱藏存儲(chǔ)分區(qū)。所述的方法中,所述的隱藏存儲(chǔ)分區(qū)對(duì)使用U盤載體的裝置不可見。所述的方法中,在程序繼續(xù)運(yùn)行空閑時(shí)間,執(zhí)行所述的步驟a到C,以實(shí)時(shí)監(jiān)測(cè)U盤 的狀態(tài),一旦U盤被移出,則程序終止運(yùn)行。所述的方法中,在執(zhí)行所述步驟a前,將原始固有識(shí)別ID與簽名序列存儲(chǔ)在隱藏 存儲(chǔ)分區(qū)中。本發(fā)明提供了一種基于U盤載體的程序簽名裝置,如圖2所示,所述的裝置包括第 一讀取單元201、對(duì)比單元202、第二讀取單元203、判斷單元204和處理單元205 ;
第一讀取單元201,用于讀取當(dāng)前U盤固有識(shí)別ID和原始固有識(shí)別ID ; 對(duì)比單元202,用于對(duì)比當(dāng)前U盤固有識(shí)別ID與原始固有識(shí)別ID是否相同; 第二讀取單元203,用于在對(duì)比單元202確定當(dāng)前U盤固有識(shí)別ID與原始固有識(shí)別ID 相同時(shí),則讀取簽名序列;
判斷單元204,用于在第二讀取單元203讀取簽名序列后,判斷簽名序列是否正確; 處理單元205,用于在判斷單元204確定簽名序列正確時(shí),進(jìn)行后續(xù)處理,否則結(jié)束處 理,并且,在對(duì)比單元202確定當(dāng)前U盤固有識(shí)別ID與原始固有識(shí)別ID不相同時(shí),結(jié)束處 理。本發(fā)明還提供了一種基于U盤載體的升級(jí)錯(cuò)誤恢復(fù)方法,如圖3所示,包括如下步 驟
5301獲取并存儲(chǔ)升級(jí)文件的MD5值;
5302獲取并存儲(chǔ)升級(jí)文件,計(jì)算升級(jí)文件的MD5值;
5303校驗(yàn)獲取的MD5值和計(jì)算得到的升級(jí)文件的MD5值是否相同,如果相同,則執(zhí)行S304,否則返回S301 ;
5304讀取存儲(chǔ)的升級(jí)文件,對(duì)程序進(jìn)行升級(jí),并判斷讀取存儲(chǔ)的升級(jí)文件是否正確, 程序是否能夠正常運(yùn)行,如果是,則升級(jí)完成,否則執(zhí)行步驟S305 ;
5305讀取原始程序。所述的方法中,將所述的U盤載體分為程序存儲(chǔ)分區(qū)和隱藏存儲(chǔ)分區(qū)。所述的方法中,所述的隱藏存儲(chǔ)分區(qū)對(duì)使用U盤載體的裝置不可見。所述的方法中,所述的升級(jí)文件的MD5值、升級(jí)文件和原始程序存儲(chǔ)在隱藏存儲(chǔ) 分區(qū)內(nèi)。本發(fā)明提供了一種基于U盤載體的升級(jí)錯(cuò)誤恢復(fù)裝置,如圖4所示,所述的裝置 包括第一讀取及存儲(chǔ)單元401、對(duì)比單元402、第二讀取單元403、判斷單元404和處理單元 405 ;
第一讀取及存儲(chǔ)單元401,用于讀取及存儲(chǔ)升級(jí)文件的MD5值和升級(jí)文件,并計(jì)算升級(jí) 文件的MD5值;
對(duì)比單元402,用于對(duì)比讀取的MD5值和計(jì)算得到的升級(jí)文件的MD5值是否相同; 第二讀取單元403,用于在對(duì)比單元402確定讀取的MD5值和計(jì)算得到的升級(jí)文件的 MD5值相同時(shí),讀取存儲(chǔ)的升級(jí)文件;
判斷單元404,用于在第二讀取單元403讀取存儲(chǔ)的升級(jí)文件時(shí),判斷升級(jí)是否發(fā)生錯(cuò) 誤,如果讀取存儲(chǔ)的升級(jí)文件發(fā)生錯(cuò)誤,則第二讀取單元403重新讀取存儲(chǔ)的升級(jí)文件;
處理單元405,用于在第二讀取單元403讀取存儲(chǔ)的升級(jí)文件、對(duì)程序進(jìn)行升級(jí)的過程 中,確定程序是否能夠正常運(yùn)行,如果是,則升級(jí)完成,否則,讀取原始程序。本發(fā)明提供了一種基于U盤載體的程序簽名和升級(jí)錯(cuò)誤恢復(fù)方法,將U盤載體分 為了程序存儲(chǔ)分區(qū)和隱藏存儲(chǔ)分區(qū),程序存儲(chǔ)分區(qū)中的程序讀取當(dāng)前U盤固有識(shí)別ID和隱 藏存儲(chǔ)分區(qū)內(nèi)的原始固有識(shí)別ID,并進(jìn)行對(duì)比,如果相同,則讀取簽名序列;如果判 斷簽名 序列正確則程序繼續(xù)運(yùn)行,如果錯(cuò)誤則程序結(jié)束運(yùn)行。所述升級(jí)錯(cuò)誤恢復(fù)方法中,在U盤載 體的隱藏存儲(chǔ)分區(qū)中存儲(chǔ)原始程序,通過升級(jí)文件的MD5值,確定升級(jí)文件是否完整,如果 MD5值相同,則將升級(jí)文件寫入程序存儲(chǔ)分區(qū),當(dāng)升級(jí)后的程序無法正常運(yùn)行時(shí),將隱藏存 儲(chǔ)分區(qū)中的原始程序?qū)懭氲匠绦虼鎯?chǔ)分區(qū)內(nèi)。通過本發(fā)明提供的方法,能夠解決基于U盤 載體的程序產(chǎn)品載體不唯一,以及升級(jí)后程序不可用的問題。雖然通過實(shí)施例描繪了本發(fā)明,本領(lǐng)域普通技術(shù)人員知道,本發(fā)明有許多變形和 變化而不脫離本發(fā)明的精神,希望所附的權(quán)利要求包括這些變形和變化而不脫離本發(fā)明的 精神。
權(quán)利要求
一種基于U盤載體的程序簽名方法,其特征在于,所述的方法包括如下步驟a.讀取當(dāng)前U盤固有識(shí)別ID和原始固有識(shí)別ID;b.對(duì)比當(dāng)前U盤固有識(shí)別ID與原始固有識(shí)別ID是否相同,如果相同,則讀取簽名序列,否則結(jié)束;c.讀取簽名序列后,判斷簽名序列是否正確,如果正確,則執(zhí)行程序簽名之后的流程,否則結(jié)束。
2.如權(quán)利要求1所述的方法,其特征在于,將所述的U盤載體分為程序存儲(chǔ)分區(qū)和隱藏 存儲(chǔ)分區(qū)。
3.如權(quán)利要求2所述的方法,其特征在于,所述的隱藏存儲(chǔ)分區(qū)對(duì)使用U盤載體的裝置 不可見。
4.如權(quán)利要求1所述的方法,其特征在于,在程序繼續(xù)運(yùn)行的空閑時(shí)間,執(zhí)行所述步驟a到C0
5.如權(quán)利要求2所述的方法,其特征在于,在執(zhí)行步驟a前,將原始固有識(shí)別ID與簽名 序列存儲(chǔ)在隱藏存儲(chǔ)分區(qū)中。
6.一種基于U盤載體的程序簽名裝置,其特征在于,所述的裝置包括第一讀取單元、對(duì) 比單元、第二讀取單元、判斷單元和處理單元;第一讀取單元,用于讀取當(dāng)前U盤固有識(shí)別ID和原始固有識(shí)別ID ;對(duì)比單元,用于對(duì)比當(dāng)前U盤固有識(shí)別ID與原始固有識(shí)別ID是否相同;第二讀取單元,用于在對(duì)比單元確定當(dāng)前U盤固有識(shí)別ID與原始固有識(shí)別ID相同時(shí), 則讀取簽名序列;判斷單元,用于在第二讀取單元讀取簽名序列后,判斷簽名序列是否正確;處理單元,用于在判斷單元確定簽名序列正確時(shí),進(jìn)行程序簽名之后的處理,否則結(jié)束 處理,并且,在對(duì)比單元確定當(dāng)前U盤固有識(shí)別ID與原始固有識(shí)別ID不相同時(shí),結(jié)束處理。
7.一種基于U盤載體的升級(jí)錯(cuò)誤恢復(fù)方法,其特征在于,所述的方法包括如下步驟d.獲取并存儲(chǔ)升級(jí)文件的MD5值;e.獲取并存儲(chǔ)升級(jí)文件,計(jì)算升級(jí)文件的MD5值;f.校驗(yàn)獲取的MD5值和計(jì)算得到的升級(jí)文件的MD5值是否相同,如果相同,則讀取存儲(chǔ) 的升級(jí)文件,對(duì)程序進(jìn)行升級(jí),否則返回步驟d ;在讀取存儲(chǔ)的升級(jí)文件、對(duì)程序進(jìn)行升級(jí)的過程中,如果讀取存儲(chǔ)的升級(jí)文件發(fā)生錯(cuò) 誤,則重新讀取存儲(chǔ)的升級(jí)文件;在讀取存儲(chǔ)的升級(jí)文件、對(duì)程序進(jìn)行升級(jí)的過程中,如果確定程序能夠正常運(yùn)行,則升 級(jí)完成,否則,讀取原始程序。
8.如權(quán)利要求7所述的方法,其特征在于,將所述的U盤載體分為程序存儲(chǔ)分區(qū)和隱藏 存儲(chǔ)分區(qū)。
9.如權(quán)利要求8所述的方法,其特征在于,所述的隱藏存儲(chǔ)分區(qū)對(duì)使用U盤載體的裝置 不可見。
10.如權(quán)利要求8所述的方法,其特征在于,所述的升級(jí)文件的MD5值、升級(jí)文件和原始 程序存儲(chǔ)在隱藏存儲(chǔ)分區(qū)內(nèi)。
11.一種基于U盤載體的升級(jí)錯(cuò)誤恢復(fù)裝置,其特征在于,所述的裝置包括第一讀取及存儲(chǔ)單元、對(duì)比單元、第二讀取單元、判斷單元和處理單元;第一讀取及存儲(chǔ)單元,用于讀取及存儲(chǔ)升級(jí)文件的MD5值和升級(jí)文件,并計(jì)算升級(jí)文件的MD5值;對(duì)比單元,用于對(duì)比讀取的MD5值和計(jì)算得到的升級(jí)文件的MD5值是否相同; 第二讀取單元,用于在對(duì)比單元確定讀取的MD5值和計(jì)算得到的升級(jí)文件的MD5值相 同時(shí),讀取存儲(chǔ)的升級(jí)文件;判斷單元,用于在第二讀取單元讀取存儲(chǔ)的升級(jí)文件時(shí),判斷升級(jí)是否發(fā)生錯(cuò)誤,如果讀取存儲(chǔ)的升級(jí)文件發(fā)生錯(cuò)誤,則第二讀取單元重新讀取存儲(chǔ)的升級(jí)文件;處理單元,用于在第二讀取單元讀取存儲(chǔ)的升級(jí)文件、對(duì)程序進(jìn)行升級(jí)的過程中,確定程序是否能夠正常運(yùn)行,如果是,則升級(jí)完成,否則,讀取原始程序。
全文摘要
本發(fā)明提供了基于U盤載體的程序簽名和升級(jí)錯(cuò)誤恢復(fù)方法,所述程序簽名方法通過程序讀取當(dāng)前U盤固有識(shí)別ID和隱藏存儲(chǔ)分區(qū)內(nèi)的原始固有識(shí)別ID,并進(jìn)行對(duì)比,如果相同則繼續(xù)讀取簽名序列,并判斷簽名序列是否正確,如果正確則執(zhí)行程序簽名之后的流程,如果錯(cuò)誤則程序結(jié)束運(yùn)行。所述升級(jí)錯(cuò)誤恢復(fù)方法,在U盤載體的隱藏存儲(chǔ)分區(qū)中存儲(chǔ)原始程序,如果升級(jí)后的程序無法正常運(yùn)行,則將隱藏存儲(chǔ)分區(qū)中的原始程序?qū)懭氲匠绦虼鎯?chǔ)分區(qū)內(nèi)。
文檔編號(hào)G06F9/445GK101989323SQ20101055487
公開日2011年3月23日 申請(qǐng)日期2010年11月23日 優(yōu)先權(quán)日2010年11月23日
發(fā)明者桑勝田, 黃顯澍 申請(qǐng)人:北京安天電子設(shè)備有限公司