軟件注冊方法和裝置,注冊碼生成方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是涉及一種軟件注冊方法和裝置,注冊碼生成方法和裝置。
【背景技術(shù)】
[0002]傳統(tǒng)軟件注冊方法有多種,包括注冊碼注冊、加密鎖注冊、授權(quán)文件注冊等,其中注冊碼注冊最為便捷,因而使用更為普遍。常用的注冊碼注冊方法中,為了限制注冊碼只能在一臺電腦上使用,通常是將電腦的硬盤序列號或網(wǎng)卡MAC地址或CPU序列號等具有唯一性的序列號作為機(jī)器編碼,將用戶注冊信息與機(jī)器編碼聯(lián)合生成注冊碼。用戶利用上述注冊碼進(jìn)行軟件注冊時,軟件會自動獲取當(dāng)前進(jìn)行注冊的電腦的特征信息,進(jìn)而與注冊碼中的機(jī)器編碼信息進(jìn)行匹配,以判斷當(dāng)前注冊的電腦是否是被授權(quán)的那臺電腦。當(dāng)判斷通過后,將注冊信息在注冊電腦上進(jìn)行對應(yīng)的存儲,從而完成軟件注冊。
[0003]然而,隨著技術(shù)的發(fā)展,電腦上的硬盤序列號、網(wǎng)卡MAC地址、CPU序列號等這些組成機(jī)器編碼要素的字符可以被人為修改,因此,在使用傳統(tǒng)注冊碼注冊方法進(jìn)行軟件注冊時,若用戶人為修改當(dāng)前進(jìn)行注冊的電腦上的硬盤序列號等機(jī)器編碼信息時,就可以實(shí)現(xiàn)用同樣的注冊碼在不同的電腦上進(jìn)行軟件注冊,因而出現(xiàn)注冊碼的重復(fù)使用。此外,在不聯(lián)網(wǎng)的情況下,軟件會通過注冊文件直接存儲使用過的注冊碼,而存放歷史注冊碼的注冊文件容易被覆蓋,用戶可以在軟件過期后,對注冊文件進(jìn)行覆蓋從而重復(fù)使用該注冊碼。
[0004]因此,如何防止注冊碼被重復(fù)使用是需要解決的問題。
【發(fā)明內(nèi)容】
[0005]基于此,有必要針對上述問題,提供一種能夠防止注冊碼被重復(fù)使用的軟件注冊方法和裝置、注冊碼生成方法和裝置。
[0006]—種軟件注冊方法,所述方法包括:
[0007]接收注冊界面運(yùn)行指令,根據(jù)所述注冊界面運(yùn)行指令運(yùn)行注冊界面并獲取軟件注冊終端對應(yīng)的GUID碼,根據(jù)所述GUID碼確定機(jī)器編碼;
[0008]接收注冊指令,根據(jù)所述注冊指令獲取輸入的最終注冊碼;
[0009]將所述機(jī)器編碼作為密鑰對所述最終注冊碼進(jìn)行解密得到原始注冊碼;
[0010]對所述原始注冊碼進(jìn)行解析得到注冊信息,將所述注冊信息進(jìn)行關(guān)聯(lián)存儲。
[0011]在其中一個實(shí)施例中,從根據(jù)所述注冊界面運(yùn)行指令運(yùn)行注冊界面到將所述機(jī)器編碼作為密鑰對所述最終注冊碼進(jìn)行解密的過程中,保持注冊界面一直處于當(dāng)前運(yùn)行界面狀態(tài)。
[0012]在其中一個實(shí)施例中,所述機(jī)器編碼是所述GUID碼本身或?qū)λ鯣UID碼進(jìn)行處理后得到的機(jī)器編碼。
[0013]在其中一個實(shí)施例中,所述注冊信息包括注冊類型標(biāo)識及對應(yīng)的限制值。
[0014]在其中一個實(shí)施例中,在所述接收注冊指令的步驟之前,還包括:
[0015]獲取輸入的注冊信息;
[0016]根據(jù)所述機(jī)器編碼及所述注冊信息生成注冊碼生成請求發(fā)送至服務(wù)器,使所述服務(wù)器根據(jù)所述機(jī)器編碼及所述注冊信息生成所述原始注冊碼,并將所述機(jī)器編碼作為密鑰對所述原始注冊碼進(jìn)行加密生成所述最終注冊碼;
[0017]接收所述服務(wù)器返回的所述最終注冊碼,并將所述最終注冊碼進(jìn)行顯示。
[0018]在其中一個實(shí)施例中,所述將所述注冊信息進(jìn)行關(guān)聯(lián)存儲的步驟,包括:
[0019]將所述注冊信息加密并存儲在注冊表預(yù)設(shè)存儲路徑下;和/或
[0020]將所述注冊信息存儲在軟件根目錄下的對應(yīng)文件中。
[0021]—種軟件注冊裝置,所述裝置包括:
[0022]機(jī)器編碼確定模塊,用于接收注冊界面運(yùn)行指令,根據(jù)所述注冊界面運(yùn)行指令運(yùn)行注冊界面并獲取軟件注冊終端對應(yīng)的GUID碼,根據(jù)所述GUID碼確定機(jī)器編碼;
[0023]獲取模塊,用于接收注冊指令,根據(jù)所述注冊指令獲取輸入的最終注冊碼;
[0024]解密模塊,用于將所述機(jī)器編碼作為密鑰對所述最終注冊碼進(jìn)行解密得到原始注冊碼;
[0025]關(guān)聯(lián)存儲模塊,用于對所述原始注冊碼進(jìn)行解析得到注冊信息,將所述注冊信息進(jìn)行關(guān)聯(lián)存儲。
[0026]在其中一個實(shí)施例中,從根據(jù)所述注冊界面運(yùn)行指令運(yùn)行注冊界面到將所述機(jī)器編碼作為密鑰對所述最終注冊碼進(jìn)行解密的過程中,保持注冊界面一直處于當(dāng)前運(yùn)行界面狀態(tài)。
[0027]在其中一個實(shí)施例中,所述機(jī)器編碼是所述GUID碼本身或?qū)λ鯣UID碼進(jìn)行處理后得到的機(jī)器編碼。
[0028]在其中一個實(shí)施例中,所述注冊信息包括注冊類型標(biāo)識及對應(yīng)的限制值。
[0029]在其中一個實(shí)施例中,所述獲取模塊還用于獲取輸入的注冊信息;
[0030]所述裝置還包括:
[0031]注冊碼生成請求模塊,用于根據(jù)所述機(jī)器編碼及所述注冊信息生成注冊碼生成請求發(fā)送至服務(wù)器,使所述服務(wù)器根據(jù)所述機(jī)器編碼及所述注冊信息生成所述原始注冊碼,并將所述機(jī)器編碼作為密鑰對所述原始注冊碼進(jìn)行加密生成所述最終注冊碼;
[0032]顯示模塊,用于接收所述服務(wù)器返回的所述最終注冊碼,并將所述最終注冊碼進(jìn)行顯示。
[0033]在其中一個實(shí)施例中,所述關(guān)聯(lián)存儲模塊還用于將所述注冊信息加密并存儲在注冊表預(yù)設(shè)存儲路徑下;和/或?qū)⑺鲎孕畔⒋鎯υ谲浖夸浵碌膶?yīng)文件中。
[0034]上述軟件注冊方法和裝置,必須使用與加密密鑰一致的機(jī)器編碼作為解密密鑰才能夠成功解密最終注冊碼,而基于GUID碼會隨界面顯示狀態(tài)的變化被終端進(jìn)行更新的特性,若使注冊界面處于非當(dāng)前運(yùn)行界面狀態(tài)后再恢復(fù)至當(dāng)前運(yùn)行界面狀態(tài),那么軟件注冊終端會更新GUID碼,從而機(jī)器編碼相應(yīng)更新,進(jìn)而導(dǎo)致解密密鑰機(jī)器編碼與加密密鑰機(jī)器編碼不一致,解密失敗。因此,在使用已注冊過的最終注冊碼進(jìn)行重復(fù)注冊時,無法再獲取到與加密密鑰相同的機(jī)器編碼來進(jìn)行解密,且由于目前GUID碼生成過程是無法人為干擾和修改的,因此也不可能將機(jī)器編碼修改成與加密密鑰一致,從而防止使用已注冊過的注冊碼進(jìn)行重復(fù)注冊。
[0035]一種注冊碼生成方法,所述方法包括:
[0036]獲取軟件注冊終端對應(yīng)的機(jī)器編碼,所述機(jī)器編碼根據(jù)所述軟件注冊終端對應(yīng)的⑶ID碼確定;
[0037]獲取注冊信息;
[0038]根據(jù)所述機(jī)器編碼及注冊信息生成原始注冊碼;
[0039]將所述機(jī)器編碼作為密鑰對所述原始注冊碼進(jìn)行加密生成最終注冊碼。
[0040]在其中一個實(shí)施例中,所述注冊信息包括注冊類型標(biāo)識及對應(yīng)的限制值。
[0041 ]在其中一個實(shí)施例中,所述獲取軟件注冊終端對應(yīng)的機(jī)器編碼的步驟,包括:
[0042]接收軟件注冊終端發(fā)送的注冊碼生成請求,獲取所述注冊碼生成請求中攜帶的軟件注冊終端對應(yīng)的機(jī)器編碼;或
[0043]獲取輸入的軟件注冊終端對應(yīng)的機(jī)器編碼。
[0044]一種注冊碼生成裝置,所述裝置包括:
[0045]機(jī)器編碼獲取模塊,用于獲取軟件注冊終端對應(yīng)的機(jī)器編碼,所述機(jī)器編碼根據(jù)所述軟件注冊終端對應(yīng)的GUID碼確定;
[0046]注冊信息獲取模塊,用于獲取注冊信息;
[0047]注冊碼生成模塊,用于根據(jù)所述機(jī)器編碼及注冊信息生成原始注冊碼;將所述機(jī)器編碼作為密鑰對所述原始注冊碼進(jìn)行加密生成最