2010-01-24 15 views
0

我被要求爲某些軟件開發密鑰生成/驗證系統。他們也可以對開發的開源或商業系統開放,但更喜歡系統從頭開始。在線激活必須是可選的,因爲一些安裝可能在孤立的服務器上。我知道有很多盜版技術的用戶/安全機構。所以我想我在問什麼是軟件,庫和技術?我會欣賞個人知識,網站或書籍。密鑰生成/驗證,這裏有什麼?

+0

你可能會在這裏找到一些幫助:http://stackoverflow.com/questions/892314/algorithm-for-unique-cd-key-generation-with-validation – 2010-01-24 03:30:53

+0

感謝您的鏈接馬克。在我發佈這個問題之前,我讀了這個問題。自從8個月前開始,我希望提出類似的問題會得到不同人的不同答案。 – kevin52408 2010-01-24 16:36:23

回答

1

如果你拿某個東西的散列,它會導致(理想情況下)在一個不可預知的字符串中。

你可能有一種算法是將SHA1的可預測的東西(如序號)與足夠長的鹽串聯起來。只要您的鹽仍然是一個永久的祕密,您的密鑰將非常安全,並且SHA1永遠不會被破壞。

例如,如果您採用「1」(您的第一個許可證密鑰)和超級祕密鹽「stackoverflow8as7f98asf9sa78f7as9f87a7」的SHA1,則會獲得密鑰「95d78a6331e01feca457762a092bdd4a77ef1de1」。如果你願意的話,你可以在版本號前添加。

如果你想在線授權,你需要三樣東西:

  1. 爲了確保響應無法僞造
  2. 爲了確保請求不能被僞造
  3. 要確保,如果互聯網是不可用,你採取適當的行動

公鑰密碼術可以幫助項目一和二。即使Photoshop CS4在第3項中也存在問題,這是一個棘手的問題。

+0

唯一的ID和鹽是必須的。讓我感到緊張的是,如果我進行離線驗證,我的祕密必須在代碼中。 – kevin52408 2010-01-24 17:01:37

+1

是的,離線驗證讓以後改變事情變得更加棘手(如添加和刪除連續數據)。如果可能的話,我會嘗試在網上做。請記住,如果人們努力工作,他們會弄清楚如何破解代碼。 Photoshop是Adobe最大的搖錢樹,它通常在發佈後立即破解。我認爲對您的用戶好,收取合理的費用,並提供良好的客戶支持是最好的反盜版技術。 – Eli 2010-01-24 18:06:00

0

我很有偏見 - 考慮到我共同創立的公司開發了Cobalt software licensing solution for .NET - 但我建議您使用第三方解決方案而不是自行開發。

在文章Developing for Software Protection and Licensing,這使得下面點看看:

我們相信,大多數公司會 可以更好地通過購買 高品質的第三方許可 系統服務。這種方法將使您的 開發人員能夠在覈心功能 上工作,並且將減輕維護和支持成本 。它也 允許您利用 專業提供的 專業領域專業知識,並避免發佈容易破解的軟件 。

買一個 第三方解決方案的另一個優點是,你可以 快速,輕鬆地評估它是否適合 ;使用內部系統 ,您必須提前支付 系統的開發費用,該系統可能不是 已證明符合您的需求。 選擇高質量的第三方 系統可以大大降低參與開發內部解決方案 的風險 。

如果您已經死心塌地,建議您:儘可能在最廣泛的客戶端系統上進行測試。真實世界的硬件是很奇怪,並且在不同版本之間,Windows行爲在某些方面變化很大。

您幾乎可以肯定必須花費大量的時間來熨燙您實施的任何硬件識別系統的摺痕。

+0

因爲現在我只是想做一個調查,如果你有偏見,這對我來說並不重要。 ;)感謝您的鏈接和信息。 – kevin52408 2010-01-27 17:33:38