專利名稱:固定許可證和浮動許可證融合校驗授權方法
技術領域:
本發(fā)明涉及應用的許可證(license)授權技術,更具體地,本發(fā)明涉及一種固定許可證和浮動許可證融合校驗授權方法。
背景技術:
石油地震處理應用處于高性能科學計算的應用前沿領域,其技術含量高、開發(fā)難度大。國外專業(yè)的地球物理公司所提供的地震處理應用在向客戶提供相應應用、服務和咨詢后,通常會采用許可證的方式收取相應的擴展費用,這種方式能夠較好地維護應用提供商的利益?;谠S可證的管理和校驗授權方法總體上可以分為兩類一種是固定許可證,常應用于單機系統(tǒng);另一種是浮動許可證,應用于基于網絡的系統(tǒng)。在固定許可證校驗授權方式中,每臺機器下存儲相應機器的固定許可證,在浮動許可證校驗授權方式中,將許可證文件存放在服務器的目錄下。而將固定許可證與浮動許可證相融合進行應用授權的方式在現(xiàn)今的所有地震處理應用許可證管理系統(tǒng)中均沒有采用。
發(fā)明內容
本發(fā)明的目的在于提供一種固定許可證和浮動許可證融合校驗授權方法,該方法能夠實現(xiàn)固定許可證和浮動許可證校驗授權的融合。本發(fā)明提供了一種固定許可證和浮動許可證融合校驗授權方法,可包括客戶機連接服務器并啟動應用;服務器根據當前應用的配置文件來確定應用的許可證校驗授權類型;當是固定許可證校驗授權時,服務器確定客戶機和應用是否記錄在服務器存儲的許可證文件中以及客戶機的系統(tǒng)時間是否晚于授權的時間期限,如果記錄在許可證文件中且不晚于授權的時間期限,則應用正常運行;當是浮動許可證校驗授權時,服務器確定客戶機和應用是否記錄在服務器存儲的許可證文件中、客戶機的系統(tǒng)時間是否晚于授權的時間期限以及當前連接的客戶機的數量是否小于最大并發(fā)數,如果記錄在許可證文件中、不晚于授權的時間期限且小于最大并發(fā)數,則應用正常運行。在服務器確定當前應用的許可證校驗授權類型之前,服務器可讀取客戶機的系統(tǒng)時間和應用初次運行的時間,并可確定系統(tǒng)時間是否早于初次運行時間。在服務器確定客戶機和應用是否記錄在服務器存儲的許可證文件中之前,服務器可驗證許可證文件的有效性。確定客戶機和應用是否記錄在服務器存儲的許可證文件中的步驟可進一步包括 確定客戶機的機器指紋信息和應用的名稱是否記錄在許可證文件中,并確定客戶機的系統(tǒng)時間是否晚于許可證文件中記錄的授權的時間期限。機器指紋信息可包括CPU序列號、硬盤驅動器序列號和MAC (介質訪問控制)地址。許可證文件可以是加密文件。
可通過以下步驟對許可證文件進行加密對MAC地址進行MD5 (消息摘要算法第五版)加密,并將加密所得的字符串進行反轉得到第一串,對MAC地址和CPU序列號進行MD5 加密,并將加密所得的字符串進行反轉得到第二串,并對MAC地址和硬盤驅動器序列號進行MD5加密,并將加密所得的字符串進行反轉得到第三串;以第一串加第二串加第三串的格式寫入種子文件,并將種子文件記錄在許可證文件中;對許可證文件的相關內容分別進行MD5和SHA (安全散列算法)加密應用,以得到第四串和第五串,對第四串和第五串分別進行MD5和SHA加密,以得到第六串和第七串;以第四串加第五串以及第六串加第七串的格式寫入許可證文件的最后兩行中,其中,所述相關內容包括授權客戶機的機器指紋信息、許可證校驗授權類型、授權的用戶單位及名稱、授權應用的名稱、授權的時間期限以及授權客戶機的最大并發(fā)數。服務器可通過檢測客戶機每隔預定時間發(fā)送的在線信號來確定當前連接的客戶機的數量。所述應用可以是石油地震處理應用。有益效果本實施例中使用固定許可證和浮動許可證融合校驗授權方法,用于校驗許可證文件中記錄的取得合法授權的客戶機信息是否與擬申請應用運行的客戶機信息相匹配,并整合客戶機固定校驗和客戶機并發(fā)校驗。因此,本發(fā)明可以為應用的許可證校驗授權和用戶使用提供更高的靈活性,用戶既可以采用固定許可證校驗授權又可采用浮動許可證校驗授權,并且只需更改配置文件的許可證類型就可以實現(xiàn)自動識別切換。此外,本發(fā)明還可使應用版本統(tǒng)一,實現(xiàn)對石油地震處理應用的許可證的有效管理,并實現(xiàn)對地震處理應用的知識產權保護,使商業(yè)收益得到最大化。將在接下來的描述中部分闡述本發(fā)明另外的方面和/或優(yōu)點,還有一部分通過描述將是清楚的,或者可以經過本發(fā)明的實施而得知。
通過下面結合附圖進行的詳細描述,本發(fā)明的上述和其它目的和特點將會變得更加清楚,其中圖1是示出根據本發(fā)明示例性實施例的固定許可證和浮動許可證融合校驗授權方法的流程圖;圖2是示出根據本發(fā)明示例性實施例的將授權客戶機的機器指紋信息加密并寫入許可證文件的方法的流程圖;圖3是示出根據本發(fā)明示例性實施例的對許可證文件加密的方法的流程圖。
具體實施例方式現(xiàn)在,詳細描述本發(fā)明的實施例,其示例在附圖中表示,其中,相同的標號始終表示相同的部件。以下通過參考附圖描述實施例以解釋本發(fā)明。圖1是示出根據本發(fā)明示例性實施例的固定許可證和浮動許可證融合校驗授權的方法的流程圖。參照圖1,在步驟S101,客戶機連接服務器并啟動應用。
在步驟S102,服務器讀取客戶機的系統(tǒng)時間和應用初次運行的時間,并確定系統(tǒng)時間是否早于初次運行時間。如果系統(tǒng)時間早于初次運行時間,則進行步驟S112,當前應用的校驗授權失敗并且當前應用退出。具體來說,如果系統(tǒng)時間早于初次運行時間,則服務器可確定客戶機的系統(tǒng)時間被篡改,從而使當前應用退出。如果系統(tǒng)時間不早于(S卩,晚于或等于)初次運行時間,則在步驟S103,服務器根據存儲的當前應用安裝目錄下的配置文件(即,LicenseConfig. ini)來確定當前應用的許可證校驗授權類型是固定許可證校驗授權還是浮動許可證校驗授權。具體來說,所述配置文件中可記錄服務器IP (互聯(lián)網協(xié)議)地址、服務器端口號和許可證校驗授權類型,并可通過修改配置文件中的許可證校驗授權類型來實現(xiàn)固定許可證校驗授權和浮動許可證校驗授權的切換。所述配置文件設置如下所示[server]serverIP = 192. 168. 1. 145serverPort = 1129[licType]licType = FIXED_LICENSE 或 FLOATED_LICENSE其中,serverIP和serverPort字段分別指定服務器IP地址和端口號,licType字段指定許可證校驗授權類型。這里,serverIP和serverPort字段用于當服務器地址改變時客戶機可以重新連接;在IicType字段中,F(xiàn)IXED_LICENSE表示使用固定許可證校驗授權, FLOATED_LICENSE表示使用浮動許可證校驗授權。應該理解,上述配置文件僅是示例,該配置文件還可以有其它字段。如果當前應用的許可證校驗授權類型是固定許可證校驗授權,則在步驟S104,服務器驗證當前應用安裝目錄下的許可證文件是否有效。具體來說,服務器可通過判斷許可證文件是否被篡改來驗證其有效性,但本發(fā)明不限于此。如果許可證文件無效,則進行步驟S112,當前應用的校驗授權失敗并且當前應用退出。如果許可證文件有效,則進行步驟S105,服務器對許可證文件進行解析,獲得許可證文件中記錄的授權應用的名稱、授權客戶機的機器指紋信息以及授權的時間期限。應該了解,如果許可證文件是加密文件,則對許可證文件進行解析的步驟還包括對許可證文件進行解密。后面將參照圖2和圖3對許可證文件的加密方法進行描述。在步驟S106,服務器獲取當前應用的名稱、客戶機的機器指紋信息。在步驟S107,服務器確定許可證文件中記錄的授權客戶機的機器指紋信息是否包括當前客戶機的機器指紋信息。如果不包括當前客戶機的機器指紋信息,則當前客戶機未被授權,進行步驟S112, 當前應用的校驗授權失敗并且當前應用退出。如果包括當前客戶機的機器指紋信息,則進行步驟S108,服務器確定許可證文件中記錄的授權應用的名稱是否包括當前應用的名稱。如果不包括當前應用的名稱,則當前應用未被授權,進行步驟S112,當前應用的校驗授權失敗并且當前應用退出。
5
如果包括當前應用的名稱,則進行步驟S109,服務器確定客戶機的系統(tǒng)時間是否晚于許可證文件中記錄的授權的時間期限。如果客戶機的系統(tǒng)時間晚于授權的時間期限,則授權的時間期限已經過期,進行步驟Sl 12,當前應用的校驗授權失敗并且當前應用退出。如果客戶機的系統(tǒng)時間不晚于(即,早于或等于)授權的時間期限,則在步驟 S110,校驗授權成功,當前應用正常運行。應該了解,上述步驟S107、S108和S109之間是并列關系,可以任意排列它們的執(zhí)
行順序。另一方面,在步驟S103如果確定當前應用的許可證校驗授權類型是浮動許可證校驗授權,則同樣執(zhí)行步驟104至步驟109,在此不再累述。下面對浮動許可證校驗授權區(qū)別于固定許可證校驗授權的步驟進行詳細描述。在步驟S109,如果客戶機的系統(tǒng)時間不晚于(即,早于或等于)授權的時間期限, 則進行步驟S111,服務器確定當前連接的客戶機的數量是否小于許可證文件中記錄的授權客戶機的最大并發(fā)數。具體來說,連接的客戶機每隔預定時間(例如,五秒,但本發(fā)明不限于此)向服務器發(fā)送在線信息,表明該客戶機處于連接狀態(tài)。服務器檢測客戶機發(fā)送的在線信號來確定當前連接的客戶機數。如果不小于(S卩,大于或等于)最大并發(fā)數,則進行步驟S112,當前應用的校驗授權失敗并且當前應用退出。如果小于最大并發(fā)數,則進行步驟S110,校驗授權成功,當前應用正常運行。應該理解,根據本示例性實施例的固定許可證和浮動許可證融合校驗授權方法應用于基于網絡的系統(tǒng),而對于本身存儲許可證文件的單機系統(tǒng),可采用基于現(xiàn)有技術的方法,在此不再累述。圖2是示出根據本發(fā)明示例性實施例的將授權客戶機的機器指紋信息加密并寫入許可證文件的方法的流程圖,圖3是示出根據本發(fā)明示例性實施例的對許可證文件加密的方法的流程圖。參照圖2,在步驟S201,獲取客戶機的機器指紋信息。具體來說,機器指紋信息可包括客戶機的CPU序列號、硬盤驅動器序列號和MAC地址。CPU序列號中采用CPUID (中央處理器標識符)匯編指令,CPUID使用eax作為輸入參數,eax.ebx.ecx和edx作為輸出參數。獲取CPU序列號時,使用1作為eax的輸入參數,CPUID的信息輸出在eax和edx中, 在讀取eax和edx的信息時,先讀取低32位,然后通過移位讀取高32位的信息。硬盤驅動器序列號的獲取采用讀取配置文件的方法,在Linux環(huán)境中與硬盤驅動器序列號相關的信息存放在/dev/硬盤驅動器/by-id目錄下,通過Linux系統(tǒng)中的管道通信方式來讀取配置文件。MAC地址的獲取采用ioctl函數,其第二個參數SIOCGIFHWADDR就能獲取MAC地址。在步驟S202,使用MD5算法對獲取的機器指紋信息進行加密。具體來說,可首先對MAC地址進行MD5加密,并將加密所得的字符串進行反轉得到第一串,然后對MAC地址和 CPU序列號進行MD5加密,并將加密所得的字符串進行反轉得到第二串,最后對MAC地址和硬盤驅動器序列號進行MD5加密,并將加密所得的字符串進行反轉得到第三串。在步驟S203,將通過加密得到的字符串寫入種子文件,并將種子文件寫入許可證文件。具體來說,可以以第一串加第二串加第三串的格式將字符串寫入種子文件,并將該種子文件作為所述客戶機的唯一身份識別碼記錄在許可證文件中。參照圖3,根據本發(fā)明示例性實施例對許可證文件進行加密可以避免合法授權的許可證文件遭受非法篡改,從而保證許可證文件的合法性。許可證文件是一種制定了固定內容格式的文件,按照預先設置的格式,將授權的信息寫入許可證文件當中,該授權的信息可包括授權客戶機的機器指紋信息、許可證校驗授權類型、授權的用戶單位及名稱、授權應用的名稱、授權的時間期限以及授權客戶機的最大并發(fā)數。然而,應該了解,授權的信息中包括的內容不限于此。在步驟S301,使用MD5和SHA算法對許可證文件的相關內容(S卩,授權客戶機的機器指紋信息(即,通過圖2的操作得到的種子文件)、許可證校驗授權類型、授權的用戶單位及名稱、授權應用的名稱、授權的時間期限以及授權客戶機的最大并發(fā)數)進行加密。具體來說,可對許可證文件的相關內容分別進行MD5和SHA加密應用,以得到第一串和第二串, 然后再對第一串進行MD5加密以得到第三串,并對第二串進行SHA加密以得到第四串。在步驟S302,將通過加密得到的字符串寫入許可證文件。具體來說,可以以第一串加第二串以及第三串加第四串的格式將字符串寫入許可證文件的最后兩行中,完成對整個許可證文件的加密。此外,對浮動許可證的授權中的客戶端和服務器進程間的通信數據可采用 DES (數據加密標準)對稱加密,并可對以下三種信息進行DES對稱加密MD5加密后的機器指紋信息和申請客戶機的信息、客戶機的注銷信息、客戶機定時發(fā)送的在線信息。應該理解,上述示例性實施例中的客戶機和服務器僅是相對概念,也就是說,客戶機也可以作為服務器,服務器也可以作為客戶機。此外,上述示例性實施例不限于應用在石油地震處理應用及相應的系統(tǒng)中,還可應用于任何需要進行許可證校驗授權的應用及相應的系統(tǒng)中。雖然已經參照特定示例性實施例示出和描述了本發(fā)明,但是本領域的技術人員將理解,在不脫離范圍由權利要求及其等同物限定的本發(fā)明的精神和范圍的情況下可作出形式和細節(jié)上的各種改變。
權利要求
1.一種固定許可證和浮動許可證融合校驗授權方法,包括客戶機連接服務器并啟動應用;服務器根據當前應用的配置文件來確定應用的許可證校驗授權類型;當是固定許可證校驗授權時,服務器確定客戶機和應用是否記錄在服務器存儲的許可證文件中以及客戶機的系統(tǒng)時間是否晚于授權的時間期限,如果記錄在許可證文件中且不晚于授權的時間期限,則應用正常運行;當是浮動許可證校驗授權時,服務器確定客戶機和應用是否記錄在服務器存儲的許可證文件中、客戶機的系統(tǒng)時間是否晚于授權的時間期限以及當前連接的客戶機的數量是否小于最大并發(fā)數,如果記錄在許可證文件中、不晚于授權的時間期限且小于最大并發(fā)數,則應用正常運行。
2.如權利要求1所述的固定許可證和浮動許可證融合校驗授權方法,還包括在服務器確定當前應用的許可證校驗授權類型之前,服務器讀取客戶機的系統(tǒng)時間和應用初次運行的時間,并確定系統(tǒng)時間是否早于初次運行時間。
3.如權利要求1所述的固定許可證和浮動許可證融合校驗授權方法,還包括在服務器確定客戶機和應用是否記錄在服務器存儲的許可證文件中之前,服務器驗證許可證文件的有效性。
4.如權利要求1所述的固定許可證和浮動許可證融合校驗授權方法,其中,確定客戶機和應用是否記錄在服務器存儲的許可證文件中的步驟進一步包括確定客戶機的機器指紋信息和應用的名稱是否記錄在許可證文件中。
5.如權利要求4所述的固定許可證和浮動許可證融合校驗授權方法,其中,機器指紋信息包括CPU序列號、硬盤驅動器序列號和MAC地址。
6.如權利要求5所述的固定許可證和浮動許可證融合校驗授權方法,其中,許可證文件是加密文件。
7.如權利要求6所述的固定許可證和浮動許可證融合校驗授權方法,其中,通過以下步驟對許可證文件進行加密對MAC地址進行MD5加密,并將加密所得的字符串進行反轉得到第一串,對MAC地址和 CPU序列號進行MD5加密,并將加密所得的字符串進行反轉得到第二串,并對MAC地址和硬盤驅動器序列號進行MD5加密,并將加密所得的字符串進行反轉得到第三串;以第一串加第二串加第三串的格式寫入種子文件,并將種子文件記錄在許可證文件中;對許可證文件的相關內容分別進行MD5和SHA加密應用,以得到第四串和第五串,對第四串進行MD5加密以得到第六串,并對第五串進行SHA加密以得到第七串;以第四串加第五串以及第六串加第七串的格式寫入許可證文件的最后兩行中,其中,所述相關內容包括授權客戶機的機器指紋信息、許可證校驗授權類型、授權的用戶單位及名稱、授權應用的名稱、授權的時間期限以及授權客戶機的最大并發(fā)數。
8.如權利要求1所述的固定許可證和浮動許可證融合校驗授權方法,其中,服務器通過檢測客戶機每隔預定時間發(fā)送的在線信號來確定當前連接的客戶機的數量。
9.如權利要求1 8之一所述的固定許可證和浮動許可證融合校驗授權方法,其中,所述應用是石油地震處理應用。
全文摘要
提供了一種固定許可證和浮動許可證融合校驗授權方法,包括客戶機連接服務器并啟動應用;服務器根據當前應用的配置文件來確定應用的許可證校驗授權類型;當是固定許可證校驗授權時,服務器確定客戶機和應用是否記錄在服務器存儲的許可證文件中以及客戶機的系統(tǒng)時間是否晚于授權的時間期限,如果記錄在許可證文件中且不晚于授權的時間期限,則應用正常運行;當是浮動許可證校驗授權時,服務器確定客戶機和應用是否記錄在服務器存儲的許可證文件中、客戶機的系統(tǒng)時間是否晚于授權的時間期限以及當前連接的客戶機的數量是否小于最大并發(fā)數,如果記錄在許可證文件中、不晚于授權的時間期限且小于最大并發(fā)數,則應用正常運行。
文檔編號G06Q30/00GK102184362SQ20111013030
公開日2011年9月14日 申請日期2011年5月19日 優(yōu)先權日2011年5月19日
發(fā)明者何光明, 劉鴻, 吳戰(zhàn)培, 巫駿, 曹中林, 李振, 李磊 申請人:中國石油集團川慶鉆探工程有限公司