本發(fā)明涉及計算機
技術(shù)領(lǐng)域:
:,尤其涉及一種注冊碼生成方法及裝置、軟件注冊方法及裝置。
背景技術(shù):
::軟件開發(fā)商為了推廣軟件,常常提供軟件給潛在客戶試用,同時軟件開發(fā)商為了保護自身的利益,會對對試用版本軟件功能進行一定限制。通常的做法有三種,一是軟件開發(fā)商提供裁減掉部分功能的試用版本軟件給客戶進行體驗,客戶正式購買后才提供正式版本全功能軟件;二是軟件開發(fā)商提供全功能但有使用期限的試用版軟件給客戶試用,試用到期后需購買并安裝正式版本才能使;三是軟件開發(fā)商提供全功能軟件給客戶試用,但是軟件默認有一個使用期限,期限過后必須向軟件開發(fā)商索取license(授權(quán)許可)文件或者輸入注冊碼后軟件才能正常使用。這三種方式中,裁減功能的軟件會令用戶試用體驗不好,可能丟失潛在客戶。又或者裁減功能的試用版軟件即可滿足客戶要求,導(dǎo)致客戶沒有進一步購買動力,相當于提供了免費軟件。全功能但有使用期限的試用軟件,由于試用軟件的程序文件與正式軟件的程序文件不同,在購買后還需重新安裝或升級軟件,無法實現(xiàn)由試用到正式使用平滑過渡。采用license文件授權(quán)的方式固然可以通過多組信息單元控制軟件使用,但是license文件一般文件體積較大,內(nèi)容也不利于人類閱讀與記憶,很難通過電話、短信進行傳遞,也不適于批量使用,更不可能在像在類似atm機一樣應(yīng)用的目標機上手工輸入license文件內(nèi)容。通常使用注冊碼的軟件雖然方便輸入,但由于注冊碼包含信息單元少,功能單一,只能通過識別注冊碼有效或者無效狀態(tài)來決定軟件是否可以繼續(xù)使用。使用license文件或者注冊碼方式的有使用期限的試用版軟件的試用時長固定,沒法靈活控制,也可能存在客戶試用到期后,通過重裝系統(tǒng)后繼續(xù)試用使用情況。因此,需要一種既方便輸入、又能靈活控制軟件使用權(quán)限的方法,能滿足用戶需求和有效保護軟件產(chǎn)權(quán)。技術(shù)實現(xiàn)要素:本發(fā)明實施例的目的是提供一種注冊碼生成方法及裝置、軟件注冊方法及裝置,能有效克服現(xiàn)有注冊碼包含信息少、功能單一的缺陷,且避免了使用license文件授權(quán)過程過于繁瑣且參數(shù)固定的問題,既能方便輸入,又能靈活控制。為實現(xiàn)上述目的,本發(fā)明實施例提供了一種注冊碼生成方法,包括步驟:基于機器碼和軟件產(chǎn)品密碼通過第一加密算法生成第一中間密文;根據(jù)預(yù)設(shè)的若干軟件使用權(quán)限,生成授權(quán)信息密文;根據(jù)所述第一中間密文和授權(quán)信息密文進行加密運算后,生成注冊碼密文;根據(jù)所述注冊碼密文,輸出注冊碼的字符串序列。與現(xiàn)有技術(shù)相比,本發(fā)明公開的注冊碼生成方法先通過對基于機器碼和軟件產(chǎn)品密碼通過第一加密算法生成第一中間密文,再根據(jù)預(yù)設(shè)的若干軟件使用權(quán)限,生成授權(quán)信息密文,然后將所述第一中間密文和授權(quán)信息密文生成注冊碼密文,從而輸出注冊碼的字符串序列,使得所述注冊碼包括機器碼、軟件產(chǎn)品密碼和若干軟件權(quán)限三種信息,能有效克服現(xiàn)有注冊碼包含信息少、功能單一的缺陷,且避免了使用license文件授權(quán)過程過于繁瑣且參數(shù)固定的問題,可靈活控制又能保護軟件的產(chǎn)權(quán)。作為上述方案的改進,所述機器碼通過對軟件產(chǎn)品密碼和以下一種或幾種信息進行hash運算后生成:計算機硬盤編號、計算機cpu編號、計算機網(wǎng)卡mac地址、第一次計算機器碼的系統(tǒng)時間、軟件配置文件內(nèi)容。通過對軟件產(chǎn)品密碼和計算機硬件信息生成機器碼,可以防止軟件的非法拷貝。且使用軟件配置文件內(nèi)容作為機器碼計算輸入可以限制用戶不能修改關(guān)鍵配置,有利于保護軟件的產(chǎn)權(quán)。作為上述方案的改進,所述將所述第一中間密文和授權(quán)信息密文進行加密運算后,生成注冊碼密文具體包括步驟:將所述第一中間密文拆分為第一部分和第二部分后,將所述第一中間密文的第二部分與所述授權(quán)信息密文通過第二加密算法生成臨時密文;將所述第一中間密文的第一部分和所述臨時密文進行組合后生成第二中間密文,并通過所述第一加密算法生成第三中間密文;將所述第三中間密文拆分為第一部分和第二部分后,將所述第三中間密文的第一部分和所述臨時密文進行組合生成注冊碼密文。通過多次的組合和加密運算,既保證注冊碼包括軟件產(chǎn)品密碼、機器碼和若干軟件使用權(quán)限三者的信息,又保證了注冊碼的不可重復(fù)性。作為上述方案的改進,所述第一中間密文和機器碼密文的長度為16個字節(jié);且所述第一中間密文或第三中間密文的第一部分和第二部分的長度滿足以下關(guān)系:x+y=16,x>0&y>0其中,所述x為第一中間密文的第一部分或第三中間密文的第一部分所占的字節(jié)數(shù),y為第一中間密文的第二部分或第三中間密文的第二部分所占的字節(jié)數(shù)。所述第一部分所占的字節(jié)數(shù)小于第二部分所占的字節(jié)數(shù),可以保證所述注冊密文有足夠的存儲空間以包括所需的軟件使用權(quán)限。作為上述方案的改進,所述第二加密算法為異或加密算法、循環(huán)移位加密算法或代換加密算法。且通過設(shè)置不同的長度組成,可以使該方法適用于不同的軟件使用授權(quán)設(shè)置。作為上述方案的改進,所述第一加密算法為hash加密算法。hash加密算法能保證信息的完整性和緊湊型。作為上述方案的改進,所述授權(quán)信息密文包括模塊組成的信息單元、限制次數(shù)的信息單元、軟件使用的限制天數(shù)的信息單元、限制日期的信息單元、客戶端最大連接數(shù)的信息單元、最大同時使用用戶數(shù)量的信息單元、最大吞吐量的信息單元或支持cpu最大個數(shù)的信息單元。通過設(shè)置多種的軟件使用權(quán)限,可使得所述授權(quán)信息密文包括多種軟件使用權(quán)限信息,使得軟件使用更加靈活,滿足用戶多樣化的需求。本發(fā)明實施例還對應(yīng)提供了一種軟件注冊方法,包括步驟:基于機器碼和軟件產(chǎn)品密碼通過第一加密算法成第一中間密文,將所述第一中間密文拆分為第一部分和第二部分;接收用戶輸入的注冊碼并轉(zhuǎn)換成注冊碼密文,將所述注冊碼密文拆分為第一部分和第二部分;將所述第一中間密文的第一部分和所述注冊碼密文的第二部分進行組合生成第二中間密文,并通過第一加密算法生成第三中間密文,將所述第三中間密文拆分為第一部分和第二部分;當所述第三中間密文的第一部分與所述注冊碼密文的第一部分相等時,則確定注冊碼有效,并將所述注冊碼密文保存至注冊表;當所述注冊碼有效時,將注冊碼密文的第二部分和第一中間密文的第二部分通過第二加密算法獲得授權(quán)信息密文,解析所述授權(quán)信息密文獲得軟件產(chǎn)品的授權(quán)信息。本發(fā)明實施例公開的一種軟件注冊方法,首先將機器碼和軟件產(chǎn)品密碼進行加密運算后與所述注冊碼密文進行拆分、重新組合和加密運算后得到第三中間密文,若所述第三中間密文的第一部分和所述注冊碼密文的第一部分相同,確定注冊碼有效;若注冊碼有效,將所述第三中間密文的第二部分和所述注冊碼密文的第二部分進行加密運算后生成授權(quán)信息密文,解析所述授權(quán)信息密文即可獲得授權(quán)信息。通過對所述注冊碼密文的第一部分進行驗證軟件的使用權(quán),可防止軟件的非法拷貝、重裝系統(tǒng)后重新安裝等非法使用軟件的使用,有效保護了軟件的產(chǎn)權(quán);通過軟件使用權(quán)的驗證后,通過解析所述授權(quán)信息密文獲得授權(quán)信息,可靈活配置軟件功能模塊組成、使用次數(shù)、使用天數(shù)、使用期限等軟件使用權(quán)限,可滿足用戶多樣化的需求,能有效克服現(xiàn)有注冊碼包含信息少、功能單一的缺陷,且避免了使用license文件授權(quán)過程過于繁瑣且參數(shù)固定的問題,既能方便輸入,又能靈活控制。本發(fā)明實施例還對應(yīng)提供了一種注冊碼生成裝置,包括:第一中間密文生成模塊,用于基于機器碼和軟件產(chǎn)品密碼通過第一加密算法生成第一中間密文;授權(quán)信息生成模塊,用于預(yù)設(shè)的若干軟件使用權(quán)限,生成授權(quán)信息密文;注冊碼生成模塊,用于根據(jù)所述第一中間密文和授權(quán)信息密文進行加密運算后,生成注冊碼密文。注冊碼輸出模塊,用于根據(jù)注冊碼密文,輸出注冊碼的字符串序列。本發(fā)明實施例公開的一種注冊碼生成裝置,通過第一中間密文生成模塊整合機器碼和軟件產(chǎn)品密碼生成第一中間密文,再根據(jù)預(yù)設(shè)的若干軟件使用權(quán)限通過授權(quán)信息生成模塊生成授權(quán)信息密文,將所述第一中間密文和注冊碼生成模塊進行組合和加密運算后生成注冊碼密文,使得所述注冊碼包括機器碼、軟件產(chǎn)品密碼和若干軟件權(quán)限三種信息,避免軟件被非法拷貝安裝,能有效克服現(xiàn)有注冊碼包含信息少、功能單一的缺陷,且避免了使用license文件授權(quán)過程過于繁瑣且參數(shù)固定的問題,可靈活控制又能保護軟件的產(chǎn)權(quán)。本發(fā)明實施例還對應(yīng)提供了一種軟件注冊裝置,包括:第一中間密文拆分模塊,用于基于機器碼和軟件產(chǎn)品密碼通過第一加密算法成第一中間密文,將所述第一中間密文拆分為第一部分和第二部分;注冊碼密文拆分模塊,用于接收用戶輸入的注冊碼并轉(zhuǎn)換成注冊碼密文,將所述注冊碼密文拆分為第一部分和第二部分;第三中間密文拆分模塊,用于將所述第一中間密文的第一部分和所述注冊碼密文的第二部分進行組合生成第二中間密文,并通過第一加密算法生成第三中間密文,將所述第三中間密文拆分為第一部分和第二部分;注冊碼驗證模塊,用于當所述第三中間密文的第一部分與所述注冊碼密文的第一部分相等時,則確定注冊碼有效,并將所述注冊碼密文保存至注冊表;授權(quán)信息解析模塊,用于當所述注冊碼有效時,將注冊碼密文的第二部分和第一中間密文的第二部分通過第二加密算法獲得授權(quán)信息密文,解析所述授權(quán)信息密文獲得軟件產(chǎn)品的授權(quán)信息。本發(fā)明實施例公開的一種軟件注冊裝置,首先將機器碼和軟件產(chǎn)品密碼進行加密運算后與所述注冊碼密文進行拆分、重新組合和加密運算后得到第三中間密文,若所述第三中間密文的第一部分和所述注冊碼密文的第一部分相同,確定注冊碼有效;若注冊碼有效,通過授權(quán)信息解析模塊將所述第三中間密文的第二部分和所述注冊碼密文的第二部分進行加密運算后生成授權(quán)信息密文,解析所述授權(quán)信息密文即可獲得授權(quán)信息。通過對所述注冊碼密文的第一部分進行驗證軟件的使用權(quán),可防止軟件的非法拷貝、重裝系統(tǒng)后重新安裝等非法使用軟件的使用,有效保護了軟件的產(chǎn)權(quán);通過軟件使用權(quán)的驗證后,通過解析所述授權(quán)信息密文獲得授權(quán)信息,可靈活配置軟件功能模塊組成、使用次數(shù)、使用天數(shù)、使用期限等軟件使用權(quán)限,可滿足用戶多樣化的需求,能有效克服現(xiàn)有注冊碼包含信息少、功能單一的缺陷,且避免了使用license文件授權(quán)過程過于繁瑣且參數(shù)固定的問題,既能方便輸入,又能靈活控制。附圖說明圖1是本發(fā)明實施例1中一種注冊碼生成方法的流程示意圖。圖2是本發(fā)明實施例2中一種注冊碼生成方法的流程示意圖。圖3是本發(fā)明實施例2中注冊碼生成的過程示意圖。圖4是本發(fā)明實施例3中一種軟件注冊方法的流程示意圖。圖5是本發(fā)明實施例4中一種注冊碼生成裝置的結(jié)構(gòu)示意圖。圖6是本發(fā)明實施例5中一種軟件注冊裝置的結(jié)構(gòu)示意圖。具體實施方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。參見圖1,是本發(fā)明實施例1提供的一種注冊碼生成方法的流程示意圖。如圖1所示的注冊碼生成方法包括步驟:s11、基于機器碼和軟件產(chǎn)品密碼通過第一加密算法生成第一中間密文;s12、根據(jù)預(yù)設(shè)的若干軟件使用權(quán)限,生成授權(quán)信息密文;s13、將所述第一中間密文和授權(quán)信息密文進行加密運算后,生成注冊碼密文;s14、根據(jù)所述注冊碼密文,輸出注冊碼的字符串序列。具體實施時,所述軟件產(chǎn)品密碼為軟件開發(fā)商對不同版本的軟件設(shè)置的產(chǎn)品密碼,為開發(fā)商私有,不對外開放。先對機器碼和軟件產(chǎn)品密碼進行加密運算可得到第一中間密文,所述第一中間密文包括機器碼和軟件產(chǎn)品密碼兩者的信息;接著,根據(jù)預(yù)設(shè)的若干軟件使用權(quán)限,生成授權(quán)信息密文,所述若干軟件使用權(quán)限可在軟件開發(fā)設(shè)計階段由軟件開發(fā)商針對不同的客戶群體進行設(shè)置,也可在軟件銷售使用階段和正式使用階段由用戶設(shè)置;然后,將將所述第一中間密文和授權(quán)信息密文進行加密運算后,生成注冊碼密文,再根據(jù)注冊碼密文輸出注冊碼的字符串序列。通過以上過程,可在注冊碼密文中整合軟件產(chǎn)品密碼、機器碼和軟件使用權(quán)限三者的信息,其中,所述機器碼和軟件產(chǎn)品密碼用于軟件使用時對軟件使用權(quán)的驗證,而配置不同的軟件使用權(quán)限可靈活控制軟件的功能模塊組成、使用天數(shù)、使用次數(shù)等,滿足用戶多樣化的需求,因此本方案能有效克服現(xiàn)有注冊碼包含信息少、功能單一的缺陷,且避免了使用license文件授權(quán)過程過于繁瑣且參數(shù)固定的問題,既能方便輸入,又能靈活控制。優(yōu)選地,所述機器碼通過對軟件產(chǎn)品密碼和以下一種或幾種信息進行hash運算后生成:計算機硬盤編號、計算機cpu編號、計算機網(wǎng)卡mac地址、第一次計算機器碼的系統(tǒng)時間、軟件配置文件內(nèi)容。其中,硬盤編號、cpu編號、網(wǎng)卡mac地址,可以通過操作系統(tǒng)api函數(shù)直接讀取,這三組數(shù)據(jù)的使用可以使得每一臺物理機機器碼將會不同,也就限制了同一注冊碼在多臺機器上同時使用可能。比如某一計算機硬盤編號為hds722525vlat80,mac地址為50-7b-9d-c1-a6-96,這些數(shù)據(jù)一般都具唯一性,因此不同計算機對應(yīng)的機器碼也不同,因此同一注冊碼只能識別唯一一臺機器,不能拷貝到其他機器上使用。另一方面,使用第一次計算機器碼的系統(tǒng)時間來生成機器碼,可以防止系統(tǒng)重裝后重新安裝軟件的漏洞。因為,第一次計算機器碼的系統(tǒng)時間,在特定操作系統(tǒng)安裝實例上,執(zhí)行第一次計算機器碼操作后將當前系統(tǒng)時間以毫秒為粒度的數(shù)值寫入注冊表,當再下一次再需要計算機器碼時,將讀取并使用注冊表記錄的時間值,這就保證了每次計算機器碼結(jié)果一致,但是重裝系統(tǒng)后由于很難保證第一次獲取機器碼的時間毫秒值相同,所以機器碼一定是變化的,機器碼的變化會使當前注冊碼失效。再者,軟件配置內(nèi)容作為機器碼計算輸入可以限制用戶用戶不能自已修改關(guān)鍵配置,如有些軟件在會在窗口標題上顯示使用的客戶公司名稱,如果使用客戶公司名稱的內(nèi)容作為計算機器碼的參數(shù),在用戶自行軟件修改顯示公司名稱后機器碼會變化,機器碼的變化會使當前注冊碼失效。因此,通過軟件配置內(nèi)容生成機器碼,再通過機器碼生成注冊碼,可以防止軟件的非法拷貝和盜版使用。以上6項內(nèi)容,軟件產(chǎn)品密碼為計算機器碼的輸入項,其他項在計算機器碼時不必要全部使用,可以根據(jù)軟件功能限制策略中任選其中一項或幾項的組合使用。對于不同的軟件配置不同的軟件密碼,有利于對多軟件產(chǎn)品注冊碼使用同一的后臺軟件進行管理,也可以實現(xiàn)不同軟件產(chǎn)品的注冊碼不能通用。因此,機器碼用于在有限范圍唯一識別一個軟件安裝環(huán)境,可在用戶使用的計算機上自動生成,用戶可在軟件界面上直接查看機器碼。優(yōu)選地,為方便輸入的考慮,機器碼為全數(shù)字而且長度限制在10個字符,所述10個字符可為0-9的一串數(shù)字表示。所述機器碼在大范圍內(nèi)可能會重復(fù),但在有限范圍內(nèi)極少量的重復(fù)不會對銷售和使用產(chǎn)生影響。參見圖2,是本發(fā)明實施例2提供的一種注冊碼生成方法的流程示意圖。如圖2所示的注冊碼生成方法在實施例1的基礎(chǔ)上,所述步驟s13具體包括步驟:s131、將所述第一中間密文拆分為第一部分和第二部分后,將所述第一中間密文的第二部分與所述授權(quán)信息密文通過第二加密算法生成臨時密文;s132、將所述第一中間密文的第一部分和所述臨時密文進行組合后生成第二中間密文,并通過所述第一加密算法生成第三中間密文;s133、將所述第三中間密文拆分為第一部分和第二部分后,將所述第三中間密文的第一部分和所述臨時密文進行組合生成注冊碼密文。結(jié)合圖3,下面將對本發(fā)明實施例的工作過程進行具體描述。具體實施時,先接收用戶提供的機器碼s,將所述機器碼s和軟件產(chǎn)品密碼k作為輸入,通過第一加密算法生成第一中間密文m1,將第一中間密文拆分為第一部分m1-1和第二部分m1-2;根據(jù)預(yù)設(shè)的若干軟件使用權(quán)限,生成授權(quán)信息密文p;將所述第一中間密文的第二部分m1-2和所述授權(quán)信息密文p通過第二加密算法生成臨時密文r1;接著,將所述第一中間密文的第一部分m1-1和所述臨時密文r1進行組合后生成第二中間密文m2,并通過第一加密算法生成第三中間密文m3;然后,將所述第三中間密文m3拆分成第一部分m3-1和第二部分m3-2,將所述第三中間密文的第一部分m3-1和臨時密文r1進行組合后生成注冊碼密文m4;最后,根據(jù)所述注冊碼密文m4輸出注冊碼的字符串序列r。在上述過程中,可通過所述第一加密算法進行多個輪次的加密運算,有利于注冊碼的不可重復(fù)性,增加了注冊碼的破解難度,保護了軟件的產(chǎn)權(quán)。通過上述過程,使得所述注冊碼包括機器碼、軟件產(chǎn)品密碼和若干軟件權(quán)限三種信息,其中機器碼能防止軟件被非法拷貝安裝、重裝系統(tǒng)重新安裝、約定試用條件到期后重新安裝等非法使用軟件的情況,而不同的軟件產(chǎn)品密碼,使得軟件開發(fā)商可以使用同樣的軟件注冊保護方法對多種軟件產(chǎn)品進行保護,再者,設(shè)置不同的軟件的權(quán)限可以滿足不同用戶多樣化的需求,控制靈活,因此本方案能有效克服現(xiàn)有注冊碼包含信息少、功能單一的缺陷,且避免了使用license文件授權(quán)過程過于繁瑣且參數(shù)固定的問題,方便用戶輸入,且在試用軟件階段切換到正式使用階段只需更換注冊碼,無需重新安裝。優(yōu)選地,所述授權(quán)信息密文包括模塊組成的信息單元、限制次數(shù)的信息單元、軟件使用的限制天數(shù)的信息單元、限制日期的信息單元、客戶端最大連接數(shù)的信息單元、最大同時使用用戶數(shù)量的信息單元、最大吞吐量的信息單元或支持cpu最大個數(shù)的信息單元。所述授權(quán)信息密文包含多種軟件使用權(quán)限的信息,其中所述授權(quán)信息密文可包括模塊標識、兩個計數(shù)器初值以及時間限制。其中,一個計數(shù)器用于次數(shù)計數(shù),另一個計數(shù)器用于天數(shù)計數(shù)。所述次數(shù)計數(shù)可以為客戶端最大連接數(shù)計數(shù)、最大同時使用用戶數(shù)量計數(shù)、最大吞吐量計數(shù)或支持cpu最大個數(shù)計數(shù),可根據(jù)用戶的不同的需求進行設(shè)置。對應(yīng)的,軟件開啟時,或軟件運行時的一定周期內(nèi),會對軟件進行檢查授權(quán),檢查項有是否注冊、使用天數(shù)、使用期限是否已達到、指定模塊是否可用等。優(yōu)選地,可將所述第一中間密文和機器碼密文的長度設(shè)置為16個字節(jié);且所述第一中間密文或第三中間密文的第一部分和第二部分的長度滿足以下關(guān)系:x+y=16,x>0&y>0其中,所述x為第一中間密文的第一部分或第三中間密文的第一部分所占的字節(jié)數(shù),y為第一中間密文的第二部分或第三中間密文的第二部分所占的字節(jié)數(shù)。字節(jié)數(shù),y為第一中間密文的第二部分或第三中間密文的第二部分所占的字節(jié)數(shù)。在實際應(yīng)用中,所述第一部分所占的字節(jié)數(shù)x小于第二部分所占的字節(jié)數(shù)y,可以保證所述注冊密文有足夠的存儲空間以包括所需的軟件使用權(quán)限(通常y≥8)。由上述過程可知,注冊碼密文占16個字節(jié),也就是128位,采用十六進制,通過ascii(americanstandardcodeforinformationinterchange,美國信息交換標準代碼)碼表,可將128位轉(zhuǎn)化成32個字符,根據(jù)注冊碼組成的習慣,也為了更方便輸入和傳遞,所述述注冊碼由0-9、a-f的字符組成。進一步地,所述第一算法為hash算法。hash算法將任意長度的二進制值映射為較短的固定長度的二進制值,這個小的二進制值稱為hash值。hash值是一段數(shù)據(jù)唯一且極其緊湊的數(shù)值表示形式。如果輸入數(shù)據(jù)中有變化,則hash值也會發(fā)生變化。其中,比較常用的hash算法為md5和sha。優(yōu)選地,所述第二加密算法為異或加密算法、循環(huán)移位加密算法或代換加密算法,可通過以下式子對這幾種算法進行舉例說明:如明文t,密鑰k;異或加密算法為e=txork;循環(huán)移位算法為e=t循環(huán)左移k(或循環(huán)右移);代換加密算法為e=table[k+tmodl],l為代換表table的大小。其中,循環(huán)移位在高級語言中實現(xiàn)不方便,代換加密需要構(gòu)建代換的變換表,所以第二加密算法可優(yōu)選為異或加密算法。根據(jù)以上所述的注冊碼生成方法,本發(fā)明實施例3還對應(yīng)提供了一種軟件注冊方法(即授權(quán)方法,基本是上述注冊碼生成方法的逆運算),如圖4所示,包括步驟:s31、基于機器碼和軟件產(chǎn)品密碼通過第一加密算法成第一中間密文,將所述第一中間密文拆分為第一部分和第二部分;s32、接收用戶輸入的注冊碼并轉(zhuǎn)換成注冊碼密文,將所述注冊碼密文拆分為第一部分和第二部分;s33、將所述第一中間密文的第一部分和所述注冊碼密文的第二部分進行組合后生成第二中間密文,并通過第一加密算法生成第三中間密文,將所述第三中間密文拆分為第一部分和第二部分;s34、當所述第三中間密文的第一部分與所述注冊碼密文的第一部分相等時,則確定注冊碼有效,并將所述注冊碼密文保存至注冊表;s35、當所述注冊碼有效時,將注冊碼密文的第二部分和第一中間密文的第二部分通過第二加密算法獲得授權(quán)信息密文,解析所述授權(quán)信息密文獲得軟件產(chǎn)品的授權(quán)信息。具體實施時,先將機器碼s和軟件產(chǎn)品密碼k通過第一加密算法成第一中間密文m1,將所述第一中間密文m1拆分為第一部分m1-1和第二部分m1-2;再將用戶輸入的注冊碼r并轉(zhuǎn)換成注冊碼密文m4,將所述注冊碼密文拆分為第一部分m4-1和第二部分m4-2;將所述第一中間密文的第一部分m1-1和所述注冊碼密文的第二部分m4-2進行組合生成第二中間密文m2,并通過第一加密算法生成第三中間密文m3,將所述第三中間密文拆分為第一部分m3-1和第二部分m3-2;當所述第三中間密文的第一部分m3-1與所述注冊碼密文的第一部分m4-1相等時,則確定注冊碼有效,并將所述注冊碼r保存至注冊表;當所述注冊碼有效時,將注冊碼密文的第二部分m4-2和第一中間密文的第二部分m1-2通過第二加密算法獲得授權(quán)信息密文p,解析所述授權(quán)信息密文p獲得軟件產(chǎn)品的授權(quán)信息。通過注冊碼生成過程和對應(yīng)的軟件注冊過程可知,所述第一加密算法為不可逆算法,可優(yōu)選為hash加密算法,所述第二加密算法為可逆算法,可優(yōu)選為異或加密算法。通過對所述注冊碼密文的第一部分進行驗證軟件的使用權(quán),可防止軟件的非法拷貝、重裝系統(tǒng)后重新安裝等非法使用軟件的使用,有效保護了軟件的產(chǎn)權(quán);通過軟件使用權(quán)的驗證后,通過解析所述授權(quán)信息密文獲得授權(quán)信息,可靈活配置軟件功能模塊組成、使用次數(shù)、使用天數(shù)、使用期限等軟件使用權(quán)限,可滿足用戶多樣化的需求,能有效克服現(xiàn)有注冊碼包含信息少、功能單一的缺陷,且避免了使用license文件授權(quán)過程過于繁瑣且參數(shù)固定的問題,既能方便輸入,又能靈活控制。本發(fā)明實施例4還是對應(yīng)提供了一種注冊碼生成裝置,如圖5所示,所述注冊碼生成裝置100包括:第一中間密文生成模塊101,用于基于機器碼和軟件產(chǎn)品密碼通過第一加密算法生成第一中間密文;授權(quán)信息生成模塊102,用于預(yù)設(shè)的若干軟件使用權(quán)限,生成授權(quán)信息密文;注冊碼生成模塊103,用于根據(jù)所述第一中間密文和授權(quán)信息密文進行加密運算后,生成注冊碼密文。注冊碼輸出模塊104,用于根據(jù)注冊碼密文,輸出注冊碼的字符串序列。本發(fā)明實施例公開的注冊碼生成裝置100通過第一中間密文生成模塊101整合機器碼和軟件產(chǎn)品密碼生成第一中間密文,再根據(jù)預(yù)設(shè)的若干軟件使用權(quán)限通過授權(quán)信息生成模塊102生成授權(quán)信息密文,通過注冊碼生成模塊103將所述第一中間密文和注冊碼生成模塊進行組合和加密運算后生成注冊碼密文,使得所述注冊碼包括機器碼、軟件產(chǎn)品密碼和若干軟件權(quán)限三種信息,避免軟件被非法拷貝安裝,能有效克服現(xiàn)有注冊碼包含信息少、功能單一的缺陷,且避免了使用license文件授權(quán)過程過于繁瑣且參數(shù)固定的問題,可靈活控制又能保護軟件的產(chǎn)權(quán)。本發(fā)明實施例5還是對應(yīng)提供了一種軟件注冊裝置200,如圖6所示,包括:第一中間密文拆分模塊201,用于基于機器碼和軟件產(chǎn)品密碼通過第一加密算法成第一中間密文,將所述第一中間密文拆分為第一部分和第二部分;注冊碼密文拆分模塊202,用于接收用戶輸入的注冊碼并轉(zhuǎn)換成注冊碼密文,將所述注冊碼密文拆分為第一部分和第二部分;第三中間密文拆分模塊203,用于將所述第一中間密文的第一部分和所述注冊碼密文的第二部分進行組合生成第二中間密文,并通過第一加密算法生成第三中間密文,將所述第三中間密文拆分為第一部分和第二部分;注冊碼驗證模塊204,用于當所述第三中間密文的第一部分與所述注冊碼密文的第一部分相等時,則確定注冊碼有效,并將所述注冊碼密文保存至注冊表;授權(quán)信息解析模塊205,用于當所述注冊碼有效時,將注冊碼密文的第二部分和第一中間密文的第二部分通過第二加密算法獲得授權(quán)信息密文,解析所述授權(quán)信息密文獲得軟件產(chǎn)品的授權(quán)信息。本發(fā)明實施例的軟件注冊裝置200的工作過程可參考上述實施例3對軟件注冊方法的具體描述,在此不再贅述。綜上,本發(fā)明公開了一種注冊碼生成方法、軟件注冊方法及注冊碼生成裝置,通過對基于機器碼和軟件產(chǎn)品密碼通過第一加密算法生成第一中間密文,再根據(jù)預(yù)設(shè)的若干軟件使用權(quán)限,生成授權(quán)信息密文,然后將所述第一中間密文和授權(quán)信息密文生成注冊碼密文,從而輸出注冊碼的字符串序列,使得所述注冊碼包括機器碼、軟件產(chǎn)品密碼和若干軟件權(quán)限三種信息,其中,其中機器碼能防止軟件被非法拷貝安裝、重裝系統(tǒng)重新安裝、約定試用條件到期后重新安裝等非法使用軟件的情況,而不同的軟件產(chǎn)品密碼,使得軟件開發(fā)商可以使用同樣的軟件注冊保護方法對多種軟件產(chǎn)品進行保護,再者配置不同的軟件使用權(quán)限可靈活控制軟件的功能模塊組成、使用天數(shù)、使用次數(shù)等,滿足用戶多樣化的需求,因此本方案能能有效克服現(xiàn)有注冊碼包含信息少、功能單一的缺陷,且避免了使用license文件授權(quán)過程過于繁瑣且參數(shù)固定的問題,既能方便輸入,又能靈活控制。以上所述是本發(fā)明的優(yōu)選實施方式,應(yīng)當指出,對于本
技術(shù)領(lǐng)域:
:的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也視為本發(fā)明的保護范圍。當前第1頁12當前第1頁12