推薦+1置頂+1(分享、讨論、實作)
通用軟體注冊功能之建立有效的軟體保護機制
衆所周知,一些共享軟體往往提供給使用者的是一個功能不受限制的限時使用版,在試用期内使用者可以無限制的使用軟體的全部功能(隻是可能會出現提示使用者注冊的視窗),試用期一過部分(或全部)功能失效,要想繼續使用隻能向作者索取注冊碼(或注冊檔案)完成對軟體的合法注冊,注冊後的軟體将解除一切使用限制。如果您也開發出一個有價值的作品,是否也希望為自己的軟體增加一個這樣的功能呢?目前對于.NET反編譯的問題不在本文讨論之内,相關文章已經很多!本文我們就一起探讨軟體注冊功能的實作。
實作軟體的注冊功能方法很多,最需要考慮的就是不能輕易的讓使用者破解,在這裡,我就談談“.NET快速開發整合架構(RDIFramework.NET)”中平台注冊功能的實作方法。在RDIFramework.NET中,注冊功能主要方法就是對計算機唯一硬體資訊進行RSA數字簽名達到軟體注冊和保護的功能,該方法實作簡單,安全性相應較高。
計算機唯一硬體資訊(我們知道計算機中的關鍵部件如CPU,主機闆等在全球範圍内都有一個獨一無二的産品序列号,使用者通過注冊子產品擷取這些産品序列号(即傳統所說的:機器嗎)并将它發送給軟體開發商要求進行RSA資料簽名,軟體開發商獲得這些機器碼後利用手中的私鑰對這些資訊進行RSA數字簽名,生成的簽名資訊(即注冊碼)發回給使用者,使用者将收到的注冊碼輸入注冊子產品的注冊碼框,軟體即可利用公鑰執行簽名驗證,如果輸入的注冊碼被證明就是經過開發商數字簽名的機器碼,則完成注冊過程。
注冊功能項目結構圖如下所示:

圖1 注冊功能項目結構
平台服務端注冊碼生成主界面如下所示:
圖2 注冊檔案管理器
通過“注冊檔案管理器”,我們就可以根據使用者提供的資訊來生成軟體的注冊檔案。
用戶端的注冊主要就是根據我們提供的注冊檔案與公鑰,來驗證注冊檔案是否為目前客戶的有效注冊檔案,如果有效,注冊成功,無效則注冊失敗!用戶端注冊功能設計參考如下所示:
圖3 平台注冊
使用者單擊“注冊”按鈕,成功注冊提示:
圖4注冊成功
服務端注冊碼生成核心代碼:
一、 生成公/私鑰檔案:
二、 生成注冊檔案:
三、 驗證注冊檔案:
至此,軟體的注冊功能就完成了,當然還有其他很多方法,比如:
本文轉自yonghu86 51CTO部落格,原文連結:http://blog.51cto.com/yonghu/1321315,如需轉載請自行聯系原作者