2010-07-15 38 views
1

客戶希望他們的產品要求用戶輸入特定於計算機的代碼,以便他們只能在一臺機器上運行它......如果他們想要在其他地方使用它們會從第一臺機器獲得停用代碼並將其發回以證明這一點。爲非網絡感知應用程序生成每PC激活碼

如果應用程序可以與他們的服務器交談,這可能會變得更順暢,但事實並非如此。我想到了一個工作流程,但它是一個有點令人費解:

  1. 客戶購買的許可證,並通過電子郵件發送串行代碼
  2. 客戶安裝應用程序,並提示輸入序列碼
  3. 應用程序產生一個特定的機器代碼和執行某些操作與串行代碼合併此,提供這種PC代碼傳送到客戶
  4. 應用程序現在請求激活碼,一旦進入就會運行
  5. 客戶發送PC代碼傳送到供應商誰檢查它的對他們的記錄有效串行代碼,並使用這兩個基因es他們發送給客戶的激活碼

這個想法是PC代碼和激活碼都很短,更像是PIN碼,所以它不是太可怕...但是有更好的系統嗎?具體步驟如何實施?

我個人不喜歡限制客戶這麼多,但它不是我的電話,它被認爲死亡已經:)

+1

也許這將有助於:http:// stackoverflow。com/questions/3002067/how-are-cd-keys-generated – rook 2010-07-15 06:40:51

+0

你說'如果他們想在其他地方使用它們,它們會從第一臺機器獲得一個停用代碼併發送回來證明這一點。一旦從原來的機器中移除並安裝到其他地方,什麼使客戶不能將原始信息重新安裝到原始機器上?沒有什麼我能看到的。這就像在可能機器上使用Windows的一個副本。只要這些機器沒有互聯網接入,MS永遠不會知道。我想你也是一樣。你提出的任何非互聯網解決方案都會達不到你想要的東西。 – ubiquibacon 2010-07-15 06:49:05

+0

@typoknig - 你在某種程度上是對的。在打破系統之後,我們並沒有試圖阻止任何人的認真對待,只是爲了讓你不得不故意逃避系統,不能簡單地安裝在100臺電腦上。至於你的具體問題,我們可以a)在註冊表中留下一些東西b)爲其中一個密鑰引入一個時間組件 – 2010-07-15 07:39:28

回答

1

通過使用激活碼步驟中,您有效地迫使客戶成爲你的互聯網連接。不幸的是,沒有這一步,你不能將它們綁定到一臺機器上。

最大的問題是要成爲您的停用代碼 - 如果客戶記下他們的激活碼,那麼阻止他們使用它來重新激活他們的PC?

唯一的辦法是讓您的激活碼有點基於日期,以便他們得到一個星期或一個月的時間輸入它。他們可能永遠不會注意到一個問題,除非他們需要重新安裝,在這種情況下,您可以重新發布另一個激活碼(假設沒有未停用的其他機器代碼)。

您的客戶如何編程勝任,他們會如何激勵以破解您的軟件?

This article提供了一些獲取硬件信息的好方法。

+0

我們只是在防止「隨意盜版」,用戶認爲「我可以在我的所有PC上安裝,誰會知道?「預計用戶不會嘗試和破解它,而只是出售給企業環境。好的電話使用日期,這是有道理的。 – 2010-07-15 07:41:28

1

這就是使用硬件密鑰的原因,您不能一次將它物理地插入兩個設備。使用軟件的唯一方法是要求受信任的第三方通過互聯網管理法定人數,即身份驗證服務器。

Unix許可的一個流行唯一標識是hostid。現代的選擇是包含一個安全的令牌生成器,如RSA SecurID。讓管理員通過電話向供應商讀取令牌,通過一些算法生成密鑰來解鎖軟件。

其他一切都將是煙霧和鏡子。

+0

有沒有人制作/銷售硬件密鑰,您可以非常簡單地插入到您的應用程序? – 2010-07-15 07:42:26

+0

關於「Dongle」的維基百科文章有一個很好的供應商名單,http://en.wikipedia.org/wiki/Dongle – 2010-07-15 08:00:06