專利名稱:一種軟件防盜版中注冊碼生成方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)軟件防盜版領(lǐng)域,特別涉及一種在軟件防盜版技術(shù)中軟件注冊碼的生成方法。
背景技術(shù):
目前計(jì)算機(jī)軟件的防盜版技術(shù)主要分硬件方式與軟件方式兩類。硬件方式通過使用從第三方防盜版公司購買的插在計(jì)算機(jī)上的防盜版硬件(俗稱軟件狗),將軟件信息寫入此硬件中,與應(yīng)用軟件一起銷售。這種保護(hù)對于程序而言比較有效,但成本偏高。軟件方式通過在軟件安裝或運(yùn)行過程中需要輸入注冊碼后才能繼續(xù)安裝或運(yùn)行。 這種方式又分兩種一種根據(jù)軟件生成注冊碼,只要注冊碼和軟件匹配即可,但這種方式盜版者在獲得軟件和對應(yīng)的注冊碼后即可無限制的復(fù)制;一種根據(jù)用戶反饋的計(jì)算機(jī)硬件信息,生成對應(yīng)的機(jī)器碼,這種方式有效的防止了軟件被盜版,但如果注冊碼算法設(shè)計(jì)的不好就容易被破解并制作出注冊機(jī)算出任意硬件信息的注冊碼。
發(fā)明內(nèi)容
針對由計(jì)算機(jī)硬件信息生成注冊碼的算法容易被破解并制作出注冊機(jī)的問題,本發(fā)明提供了一種可大大增加破解難度的注冊碼生成算法,使用此算法,破解者在現(xiàn)有的硬件條件下無法直接制作出注冊機(jī)。為實(shí)現(xiàn)上述目的,本發(fā)明采用的注冊碼生成算法步驟如下選定RSA密鑰選定一對IOM位RSA密鑰,將私鑰寫入軟件中,公鑰保留。選定待加密數(shù)據(jù)選定一個(gè)軟件正常運(yùn)行必須的一段數(shù)據(jù),并將此數(shù)據(jù)從軟件中移除。生成用戶硬件標(biāo)識(shí)碼軟件運(yùn)行時(shí)如果未注冊,則得到的用戶計(jì)算機(jī)的CPU序列號(hào)及硬盤序列號(hào)等信息,將這些硬件信息用字符串表示并連接起來,使用MD5算法生成1 位散列值作為硬件標(biāo)識(shí)碼。此硬件標(biāo)識(shí)碼由用戶通過Email、電話等方式傳遞給軟件開發(fā)商。生成注冊碼使用得到的1 位硬件標(biāo)識(shí)碼作為3DES密鑰,對選定待加密信息使用3DES算法進(jìn)行加密,再將加密后的數(shù)據(jù)使用RSA算法用選定的公鑰進(jìn)一步加密。開發(fā)商將最終加密結(jié)果通過Email、電話等方式傳遞給用戶。由注冊碼得到數(shù)據(jù)用戶得到注冊碼后導(dǎo)入到軟件中,軟件先用RSA私鑰進(jìn)行解密,再用本機(jī)硬件標(biāo)識(shí)碼作為3DES密鑰使用3DES算法進(jìn)行解密,即可得到軟件正常運(yùn)行必須的那一段數(shù)據(jù)。通過這種設(shè)計(jì),由于目前還沒有有效的破解RSA算法的方法,破解者無法得到RSA 公鑰,就無法寫出根據(jù)硬件標(biāo)識(shí)碼計(jì)算出注冊碼。只能修改軟件繞過這部分,直接得到待加密數(shù)據(jù),這無疑增加了難度。并且,破解者無法在沒有購買軟件的情況下得到這個(gè)數(shù)據(jù),只有破解者購買了軟件后在對應(yīng)的計(jì)算機(jī)上才可能找到這個(gè)數(shù)據(jù)。
具體實(shí)施例方式
每個(gè)計(jì)算機(jī)的CPU、硬盤等硬件都有唯一的序列號(hào)。當(dāng)用戶購買了軟件以后,把軟件安裝在計(jì)算機(jī)上,安裝時(shí)安裝軟件讀取計(jì)算機(jī)的硬件信息生成一個(gè)唯一的硬件標(biāo)識(shí)并顯示在屏幕上。用戶向開發(fā)商提供這一信息后,開發(fā)商用這個(gè)硬件標(biāo)識(shí)生成一個(gè)注冊碼并反饋給用戶。用戶填入注冊碼后,安裝程序?qū)⒋俗源a記錄在計(jì)算機(jī)上。用戶安裝完畢運(yùn)行軟件后,軟件讀取此注冊碼并嘗試解密從中獲得軟件運(yùn)行所需的必要數(shù)據(jù),如果解密失敗說明這個(gè)注冊碼是非法的,無法從中得到必要的數(shù)據(jù)就無法繼續(xù)運(yùn)行,否則注冊碼合法軟件即可正常運(yùn)行。
權(quán)利要求
1.一種軟件防盜版中注冊碼生成方法,其特征在于該方法包括以下步驟(1)選定RSA密鑰選定一對IOM位RSA密鑰,將私鑰寫入軟件中,公鑰保留備用。(2)選定待加密數(shù)據(jù)選定一個(gè)軟件正常運(yùn)行必須的一段數(shù)據(jù),并將此數(shù)據(jù)從軟件中移除。(3)生成用戶硬件標(biāo)識(shí)碼將應(yīng)用軟件與用戶計(jì)算機(jī)硬件相聯(lián)系,通過加密算法生成硬件標(biāo)識(shí)碼,此硬件標(biāo)識(shí)碼由客戶通過Email、電話等方式傳遞給軟件開發(fā)商。(4)生成注冊碼開發(fā)商使用加密算法對選定的待加密數(shù)據(jù)使用硬件標(biāo)識(shí)碼和RSA公鑰進(jìn)行加密,并將最終加密結(jié)果通過Email、電話等方式傳遞給用戶。(5)由注冊碼得到數(shù)據(jù)用戶得到注冊碼后導(dǎo)入到軟件中,軟件先用RSA私鑰和本機(jī)硬件標(biāo)識(shí)碼進(jìn)行解密,即可得到軟件正常運(yùn)行必須的那一段數(shù)據(jù),軟件即可繼續(xù)運(yùn)行。
2.根據(jù)權(quán)利要求1所述的一種軟件防盜版中注冊碼生成方法,其特征在于步驟(3)中生成用戶硬件標(biāo)識(shí)碼算法為得到的用戶計(jì)算機(jī)的CPU序列號(hào)及硬盤序列號(hào)等信息,將這些硬件信息用字符串表示并連接起來,使用MD5算法生成1 位散列值作為硬件標(biāo)識(shí)碼。
3.根據(jù)權(quán)利要求1所述的一種軟件防盜版中注冊碼生成方法,其特征在于步驟中生成注冊碼的算法為使用得到的1 位硬件標(biāo)識(shí)碼作為3DES密鑰,對選定待加密信息使用3DES算法進(jìn)行加密,再將加密后的數(shù)據(jù)使用RSA算法用選定的公鑰進(jìn)一步加密,最終加密結(jié)果作為注冊碼。
4.根據(jù)權(quán)利要求1所述的一種軟件防盜版中注冊碼生成方法,其特征在于步驟(5)由注冊碼得到數(shù)據(jù)的算法為先用RSA私鑰進(jìn)行解密,再用步驟C3)得到的本機(jī)硬件1 位標(biāo)識(shí)碼作為3DES密鑰使用3DES算法進(jìn)行解密,解密結(jié)果即為軟件正常運(yùn)行必須的那一段數(shù)據(jù)。
全文摘要
本發(fā)明涉及計(jì)算機(jī)軟件防盜版領(lǐng)域中一種軟件注冊碼的生成方法,客戶在安裝軟件時(shí)得到計(jì)算機(jī)的硬件標(biāo)識(shí)并將此標(biāo)識(shí)發(fā)送給開發(fā)商,開發(fā)商使用此標(biāo)識(shí)和RSA公鑰對事先選取的一段軟件正常運(yùn)行所必須的數(shù)據(jù)進(jìn)行加密,將加密結(jié)果作為注冊碼??蛻糨斎脒@個(gè)注冊碼進(jìn)行安裝,軟件運(yùn)行時(shí)用RSA私鑰和本機(jī)硬件標(biāo)識(shí)對注冊碼進(jìn)行解密,如果注冊碼合法即可得到軟件正常運(yùn)行所必須的數(shù)據(jù),否則軟件無法繼續(xù)運(yùn)行。本發(fā)明解決了注冊碼算法容易被破解者破解并寫出相應(yīng)的注冊機(jī)的問題,破解者無法破解出RSA公鑰所以無法寫出注冊機(jī),只能使用其它方法進(jìn)行破解,同時(shí)無法在沒有有效的注冊碼的情況下進(jìn)行破解,大大增加了破解難度。
文檔編號(hào)G06F21/22GK102236761SQ201010157480
公開日2011年11月9日 申請日期2010年4月27日 優(yōu)先權(quán)日2010年4月27日
發(fā)明者張?jiān)铺?申請人:張?jiān)铺?br>