專利名稱:用于軟件加密的計算機系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于軟件加密的計算機系統(tǒng)及方法。
背景技術(shù):
信息產(chǎn)業(yè)的不斷創(chuàng)新和廣泛應(yīng)用,特別是計算機網(wǎng)絡(luò)與通信技術(shù)的快速發(fā)展,使人類沖 破空間與時間的限制,信息和經(jīng)濟全球一體化趨勢日益明顯。軟件產(chǎn)業(yè)從20世紀60年代初開 始興起,現(xiàn)在已經(jīng)成為信息產(chǎn)業(yè)的核心。對于軟件產(chǎn)業(yè)來說,盜版一直是一個沉重的話題, 盜版猖獗,使正版用戶減少,軟件開發(fā)者得不到相應(yīng)的經(jīng)濟回報,沒有繼續(xù)開發(fā)下去的基礎(chǔ) 和動力,給軟件開發(fā)者造成經(jīng)濟損失。 一般而言,軟件的保護是對軟件進行加密。當前流行 的一些軟件加密保護技術(shù)有序列號保護、時間限制、Key File保護、加密狗及將軟件與硬
件進行關(guān)聯(lián)等方式。這些流行的軟件加密方式很大程度上防止了軟件的盜版,但是這些加密 方式過多的對加密模塊中的算法進行復(fù)雜的設(shè)計且對加密模塊進行簡單的隱藏,如此一來, 所產(chǎn)生的加密模塊容量大,且在軟件啟動的時候會比較緩慢。
發(fā)明內(nèi)容
鑒于以上內(nèi)容,有必要提供一種用于軟件加密的計算機系統(tǒng),其可以利用計算機的硬件 信息生成密鑰,并將所生成的密鑰轉(zhuǎn)換成一個二維條碼,由于二維條碼容量低、占用空間小 的特點,使軟件在獲得加密的同時,減少了空間容量,且二維條碼本身具有加密功能,也進 一步提高了解密的難度,減少了盜版。
此外,還有必要提供一種用于軟件加密方法,其可以利用計算機的硬件信息生成密鑰, 并將所生成的密鑰轉(zhuǎn)換成一個二維條碼,由于二維條碼容量低、占用空間小的特點,使軟件 在獲得加密的同時,減少了空間容量,且二維條碼本身具有加密功能,也進一步提高了解密 的難度,減少了盜版。
一種用于軟件加密的計算機系統(tǒng),該計算機系統(tǒng)包括讀取模塊,用于在軟件進行安裝 時,獲取主機的硬件信息,并將所述硬件信息換算成二進制碼,該二進制碼稱為第一二進制 碼;生成模塊,用于根據(jù)所述硬件信息及通過加密算法生成一個密鑰,并將該密鑰換算成二 進制碼,該二進制碼稱為第二二進制碼,加密算法在運算時對應(yīng)的二進制碼稱為第三二進制 碼,及根據(jù)所述第一二進制碼、第二二進制碼及第三二進制碼生成一個新的二進制碼,該二 進制碼稱為第四二進制碼;轉(zhuǎn)換模塊,用于將所述第四二進制碼轉(zhuǎn)換成一個二維條碼;保存模塊,用于將二維條碼保存到安裝該軟件的目錄下,實現(xiàn)對該軟件加密。
一種軟件加密方法,該方法包括如下步驟在軟件進行安裝時,獲取主機的硬件信息, 并將所述硬件信息換算成二進制碼,該二進制碼稱為第一二進制碼;根據(jù)所述硬件信息及通
過加密算法生成一個密鑰,并將該密鑰換算成二進制碼,該二進制碼稱為第二二進制碼,加
密算法在運算時對應(yīng)的二進制碼稱為第三二進制碼;根據(jù)所述第一二進制碼、第二二進制碼 及第三二進制碼生成一個新的二進制碼,該二進制碼稱為第四二進制碼;將所述第四二進制 碼轉(zhuǎn)換成一個二維條碼;將所述二維條碼保存到安裝該軟件的目錄下,實現(xiàn)對該軟件加密。
相較于現(xiàn)有技術(shù),所述的軟件加密的計算機系統(tǒng)及方法,其可以利用計算機的硬件信息 生成密鑰,并將所生成的密鑰轉(zhuǎn)換成一個二維條碼,由于二維條碼容量低、占用空間小的特 點,使軟件在獲得加密的同時,減少了空間容量,且二維條碼本身具有加密功能,也進一步 提高了解密的難度,減少了盜版。
圖l是本發(fā)明用于軟件加密的計算機系統(tǒng)的較佳實施例的硬件框架圖。
圖2是本發(fā)明圖1中主機的較佳實施例的功能模塊圖。
圖3是本發(fā)明軟件加密方法的較佳實施例的流程圖。
具體實施例方式
如圖1所示,是本發(fā)明一種用于軟件加密的計算機系統(tǒng)較佳實施例的硬件架構(gòu)圖。該計 算機系統(tǒng)主要包括顯示器l、主機2、鍵盤3及鼠標4。所述主機2連接有顯示器1、鍵盤3及鼠 標4,用作具體操作時的輸入、輸出設(shè)備。
如圖2所示,是本發(fā)明圖l中主機的較佳實施例的功能模塊圖。該主機包括獲取模塊210 、生成模塊211、轉(zhuǎn)換模塊212及保存模塊213。
所述讀取模塊210用于在軟件進行安裝時,獲取主機2的硬件信息,并將所述硬件信息換 算成二進制碼,該二進制碼稱為第一二進制碼。在本較佳實施例中,所述主機2的硬件包括 主機2的MAC (Media Access Control:介質(zhì)訪問控制)地址、主機2的IP地址。具體而言, 由于操作系統(tǒng)中有包含硬件信息的模塊,獲取模塊210通過讀取操作系統(tǒng)中包含硬件信息模 塊中的數(shù)據(jù)就可以得到所述主機2的MAC地址及主機2的IP地址。由于所述MAC地址、IP地址都 是字符串,根據(jù)二進制的運算法則可以將所述MAC地址、IP地址換算成對應(yīng)的二進制碼。
所述生成模塊211用于根據(jù)所述硬件信息及通過加密算法生成一個密鑰,并將該密鑰換 算成二進制碼,該二進制碼稱為第二二進制碼,加密算法在運算時對應(yīng)的二進制碼稱為第三 二進制碼。所述密鑰是一種參數(shù),它是在明文轉(zhuǎn)換為密文或?qū)⒚芪霓D(zhuǎn)換為明文的算法中輸入的數(shù)據(jù),通過加密算法得到,在本較佳實施例中,所述的加密算法是指哈希(Hash)算法, 在其他實施例中,也可以利用其它類型的加密算法(如,數(shù)據(jù)加密標準算法Data Encryption Standard)得到密鑰。產(chǎn)生密鑰的方式是通過Hash算法將所述硬件信息轉(zhuǎn)換成 一個Hash值,該Hash值就是密鑰,通常,為了提高安全性能,提高破解的難度,用戶可以對 所述Hash值按照一定規(guī)則再次進行轉(zhuǎn)換,得到一個新的Hash值,則該新的Hash值就是密鑰。 具體而言,假設(shè)通過Hash算法將所述硬件信息轉(zhuǎn)換成的Hash值為1234,若用戶沒有對該 Hash進行轉(zhuǎn)換,則該Hash值1234即為密鑰,若用戶設(shè)定一個規(guī)則(如把該Hash值轉(zhuǎn)變成 4321)再次進行轉(zhuǎn)換,則轉(zhuǎn)變后的Hash值4321即為密鑰。通常,加密算法在運行時,最終都 會轉(zhuǎn)換成二進制機器語言,通過轉(zhuǎn)換后的二進制機器語言來執(zhí)行該算法。所述的加密算法在 運算時對應(yīng)的二進制碼是指轉(zhuǎn)換后的二進制機器語言。
所述生成模塊211還用于根據(jù)所述第一二進制碼、第二二進制碼及第三二進制碼生成一 個新的二進制碼,該二進制碼稱為第四二進制碼。所述第四二進制碼的生成方式是將第一二 進制碼、第二二進制碼及第三二進制碼進行組合,得到一個二進制碼。組合的方式可以是將 三個二進制碼按照順序連接,具體而言,假設(shè)第一二進制碼為0000,第二二進制碼為llll, 第三二進制碼為1001,則組合后生成的第四二進制碼為000011111001。
所述轉(zhuǎn)換模塊212用于將所述第四二進制碼轉(zhuǎn)換成一個二維條碼。所述二維條碼( 2-dimensional bar code) 是用一種特定的幾何圖形按一定規(guī)律在平面(二維方向上)分 布的黑白相間的圖形記錄數(shù)據(jù)符號信息的;在代碼編制上巧妙地利用構(gòu)成計算機內(nèi)部邏輯基 礎(chǔ)的"0" 、 "1"比特流的概念,使用若干個與二進制相對應(yīng)的幾何形體來表示文字數(shù)值信 息,通過圖象輸入設(shè)備或光電掃描設(shè)備自動識讀以實現(xiàn)信息自動處理,每種碼制有其特定的 字符集,每個字符占有一定的寬度,具有一定的校驗功能等。二維條碼還具有對不同行的信 息自動識別功能、及處理圖形旋轉(zhuǎn)變化等特點。二維條碼能夠在橫向和縱向兩個方位同時表 達信息,因此能在很小的面積內(nèi)表達大量的信息。
所述保存模塊213用于將所述二維條碼保存到安裝該軟件的目錄下,實現(xiàn)對該軟件加密
經(jīng)過加密后的軟件,用戶在運行該軟件的時候,首先讀取主機2上的硬件信息的二進制 碼,之后在該軟件的安裝目錄下找到二維條碼,對該二維條碼進行解密得到上述第四二進制 碼,由于第四二進制碼中包含第一二進制碼,根據(jù)組合第四二進制碼的規(guī)則,從中解密出第 一二進制碼,將解密出來的第一二進制碼與所述讀取的主機2中硬件信息的二進制碼進行比 對,若不一致,則該軟件在運行一段時間后,自動退出,若一致,則該軟件繼續(xù)運行。用戶在對二維條碼的解密過程中,若解密錯誤,S卩從二維條碼中解密出來的第一二進制碼與主 機2上的硬件信息的二進制碼不一致,則會返回錯誤的數(shù)據(jù)值以供該軟件繼續(xù)執(zhí)行一段時間 后再報錯誤信息,之后自動退出,這樣使破解者無法找到軟件破解入口 。
如圖3所示,是本發(fā)明軟件加密方法的較佳實施例的流程圖。首先,步驟SIO,在軟件進 行安裝時,獲取模塊210獲取主機2的硬件信息并將所述硬件信息換算成二進制碼,該二進制 碼稱為第一二進制碼。在本較佳實施例中,所述主機2的硬件包括主機2的MAC (Media Access Control:介質(zhì)訪問控制)地址、主機2的IP地址。具體而言,由于操作系統(tǒng)中有包 含硬件信息的模塊,獲取模塊210通過讀取操作系統(tǒng)中包含硬件信息模塊中的數(shù)據(jù)就可以得 到所述主機2的MAC地址及主機2的IP地址。由于所述MAC地址、IP地址都是字符串,根據(jù)二進 制的運算法則可以將所述MAC地址、IP地址換算成對應(yīng)的二進制碼。
步驟Sll,生成模塊211根據(jù)所述硬件信息及通過加密算法生成一個密鑰,并將該密鑰換 算成二進制碼,該二進制碼稱為第二二進制碼,加密算法在運算時對應(yīng)的二進制碼稱為第三 二進制碼。所述密鑰是一種參數(shù),它是在明文轉(zhuǎn)換為密文或?qū)⒚芪霓D(zhuǎn)換為明文的算法中輸入 的數(shù)據(jù),通過加密算法得到,在本較佳實施例中,所述的加密算法是指哈希(Hash)算法, 在其他實施例中,也可以利用其它類型的加密算法(如,數(shù)據(jù)加密標準算法Data Encryption Standard)得到密鑰。產(chǎn)生密鑰的方式是通過Hash算法將所述硬件信息轉(zhuǎn)換成 一個Hash值,該Hash值就是密鑰,通常,為了提高安全性能,提高破解的難度,用戶可以對 所述Hash值按照一定規(guī)則再次進行轉(zhuǎn)換,得到一個新的Hash值,則該新的Hash值就是密鑰。 具體而言,假設(shè)通過Hash算法將所述硬件信息轉(zhuǎn)換成的Hash值為1234,若用戶沒有對該 Hash進行轉(zhuǎn)換,則該Hash值1234即為密鑰,若用戶設(shè)定一個規(guī)則(如把該Hash值轉(zhuǎn)變成 4321)再次進行轉(zhuǎn)換,則轉(zhuǎn)變后的Hash值4321即為密鑰。通常,加密算法在運行時,最終都 會轉(zhuǎn)換成二進制機器語言,通過轉(zhuǎn)換后的二進制機器語言來執(zhí)行該算法。所述的加密算法在 運算時對應(yīng)的二進制碼是指轉(zhuǎn)換后的二進制機器語言。
步驟S12,生成模塊211根據(jù)所述第一二進制碼、第二二進制碼及第三二進制碼生成一個 新的二進制碼,該二進制碼稱為第四二進制碼。所述第四二進制碼的生成方式是將第一二進 制碼、第二二進制碼及第三二進制碼進行組合,得到一個二進制碼。具體而言,在本較佳實 施例中,假設(shè)第一二進制碼為0101,第二二進制碼為Olll,第三二進制碼為llll,則組合后 生成的第四二進制碼為010101111111。
步驟S13,轉(zhuǎn)換模塊212將所述第四二進制碼轉(zhuǎn)換成一個二維條碼。所述二維條碼( 2-dimensional bar code) 是用一種特定的幾何圖形按一定規(guī)律在平面(二維方向上)分
7布的黑白相間的圖形記錄數(shù)據(jù)符號信息的;在代碼編制上巧妙地利用構(gòu)成計算機內(nèi)部邏輯基 礎(chǔ)的"0" 、 "1"比特流的概念,使用若干個與二進制相對應(yīng)的幾何形體來表示文字數(shù)值信 息,通過圖象輸入設(shè)備或光電掃描設(shè)備自動識讀以實現(xiàn)信息自動處理,每種碼制有其特定的 字符集,每個字符占有一定的寬度,具有一定的校驗功能等。二維條碼還具有對不同行的信 息自動識別功能、及處理圖形旋轉(zhuǎn)變化等特點。二維條碼能夠在橫向和縱向兩個方位同時表 達信息,因此能在很小的面積內(nèi)表達大量的信息。二維條碼的類型包括堆疊式二維條碼、矩 陣式二維條碼,在本較佳實施例中,所述二維條碼是矩陣式二維條碼。
步驟S14,保存模塊213將所述二維條碼保存到安裝該軟件的目錄下,實現(xiàn)對該軟件加密
經(jīng)過加密后的軟件,用戶在運行該軟件的時候,首先讀取主機2上的硬件信息的二進制 碼,之后在該軟件的安裝目錄下找到二維條碼,對該二維條碼進行解密得到上述第四二進制 碼,由于第四二進制碼中包含第一二進制碼,根據(jù)組合第四二進制碼的規(guī)則,從中解密出第 一二進制碼,將解密出來的第一二進制碼與所述讀取的主機2中硬件信息的二進制碼進行比 對,若不一致,則該軟件在運行一段時間后,自動退出,若一致,則該軟件繼續(xù)運行。用戶 在對二維條碼的解密過程中,若解密錯誤,S卩從二維條碼中解密出來的第一二進制碼與主 機2上的硬件信息的二進制碼不一致,則會返回錯誤的數(shù)據(jù)值以供該軟件繼續(xù)執(zhí)行一段時間 后再報錯誤信息,之后自動退出,這樣使破解者無法找到軟件破解入口 。
最后所應(yīng)說明的是,以上實施例僅用以說明本發(fā)明的技術(shù)方案而非限制,盡管參照以上 較佳實施例對本發(fā)明進行了詳細說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解,可以對本發(fā)明的技 術(shù)方案進行修改或等同替換,而不脫離本發(fā)明技術(shù)方案的精神和范圍。
權(quán)利要求
1.一種用于軟件加密的計算機系統(tǒng),其特征在于,該計算機系統(tǒng)包括讀取模塊,用于在軟件進行安裝時,獲取主機的硬件信息,并將所述硬件信息換算成二進制碼,該二進制碼稱為第一二進制碼;生成模塊,用于根據(jù)所述硬件信息及通過加密算法生成一個密鑰,并將該密鑰換算成二進制碼,該二進制碼稱為第二二進制碼,加密算法在運算時對應(yīng)的二進制碼稱為第三二進制碼,及根據(jù)所述第一二進制碼、第二二進制碼及第三二進制碼生成一個新的二進制碼,該二進制碼稱為第四二進制碼;轉(zhuǎn)換模塊,用于將所述第四二進制碼轉(zhuǎn)換成一個二維條碼;及保存模塊,用于將二維條碼保存到安裝該軟件的目錄下,實現(xiàn)對該軟件加密。
2.如權(quán)利要求l所述的計算機系統(tǒng),其特征在于,所述主機的硬件信息是指主機的MAC地址及IP地址。
3.如權(quán)利要求l所述的計算機系統(tǒng),其特征在于,所述加密算法為Hash算法。
4.如權(quán)利要求l所述的計算機系統(tǒng),其特征在于,所述二維條碼是矩陣式二維條碼。
5.一種軟件加密方法,其特征在于,該方法包括如下步驟在軟件進行安裝時,獲取主機的硬件信息,并將所述硬件信息換算成二進制碼,該二進制碼稱為第一二進制碼;根據(jù)所述硬件信息及通過加密算法生成一個密鑰,并將該密鑰換算成二進制碼,該二進制碼稱為第二二進制碼,加密算法在運算時對應(yīng)的二進制碼稱為第三二進制碼;根據(jù)所述第一二進制碼、第二二進制碼及第三二進制碼生成一個新的二進制碼,該二進制碼稱為第四二進制碼;將所述第四二進制碼轉(zhuǎn)換成一個二維條碼;及將所述二維條碼保存到安裝該軟件的目錄下,實現(xiàn)對該軟件加密。
6 如權(quán)利要求5所述的軟件加密方法,其特征在于,所述主機的硬件信息是指主機的MAC地址及IP地址。
7 如權(quán)利要求5所述的軟件加密方法,其特征在于,所述加密算法為Hash算法。
8 如權(quán)利要求5所述的軟件加密方法,其特征在于,所述二維條碼是矩陣式二維條碼。
全文摘要
一種軟件加密的方法,該方法包括如下步驟在軟件進行安裝時,獲取主機的硬件信息,并將所述硬件信息換算成二進制碼,該二進制碼稱為第一二進制碼;根據(jù)所述硬件信息及通過加密算法生成一個密鑰,并將該密鑰換算成二進制碼,該二進制碼稱為第二二進制碼,加密算法在運算時對應(yīng)的二進制碼稱為第三二進制碼;根據(jù)所述第一二進制碼、第二二進制碼及第三二進制碼生成一個新的二進制碼,該二進制碼稱為第四二進制碼;將所述第四二進制碼轉(zhuǎn)換成一個二維條碼;將所述二維條碼保存到安裝該軟件的目錄下,實現(xiàn)對該軟件加密。
文檔編號G06F21/00GK101604362SQ20081030214
公開日2009年12月16日 申請日期2008年6月13日 優(yōu)先權(quán)日2008年6月13日
發(fā)明者常春明 申請人:鴻富錦精密工業(yè)(深圳)有限公司;鴻海精密工業(yè)股份有限公司