2009-10-26 13 views
3

我在java中做了一個應用程序。現在我想把它交給幾個客戶。我希望每個客戶都必須購買一個序列密鑰才能使用該軟件。沒有這個鑰匙,軟件就不應該像市場上的其他軟件一樣運行。如何向Java程序添加許可功能?

我該怎麼做?

我知道我無法完全保護它。我只想要一個簡單的序列鍵功能,以便非技術人員和新手程序員很難破解安全性。

+2

你應該清楚你想要保護誰。答案會有所不同,具體取決於您想要複製的難度。答案並不是簡單地儘可能地難以實現,因爲這可能需要更多的努力而不是銷售額。 – jprete 2009-10-26 17:36:22

回答

7

有現成的庫可用。 (例如,Google的快速搜索產品名爲JLicense)。但實現自己的機制並不困難,也更靈活。一種簡單的方法是計算客戶名稱的SHA-1哈希以及一些硬編碼的鹽。將結果編碼爲字母數字字符,並獲得許可證密鑰。現在,當有人去安裝您的產品時,請詢問他們的客戶名稱和許可證密鑰。重新計算哈希值並將其與用戶向您提供的用於驗證密鑰的客戶密鑰進行比較。

這只是一個簡單的例子。您可以做的各種事情包括加密一些數據並將其存儲在密鑰中(例如,過期日期或解鎖功能的子集)。您可以根據自己的喜好簡單或複雜。

請記住,除非您使用某種分佈式身份驗證系統,否則您提出的任何解決方案都可以由具有足夠技能和動力的人員進行反向設計。在Java中這比使用C或C++等本地編譯語言更容易實現。混淆代碼可以提供幫助。

+0

是JLicense分佈式認證系統。它可以被某人逆向設計嗎? – 2009-10-26 19:10:44