2009-09-01 56 views
1

我正在使用C#並擁有用戶輸入以激活我的程序的密鑰。我不希望用戶在輸入密鑰後就能看到密鑰。你有關於如何/在哪裏存儲的建議?保存激活密鑰的地方

+0

在哪裏救kay?我不希望那個用戶看到那個鍵 – 2009-09-01 06:01:58

+2

什麼關鍵?什麼程序? 「激活」?你沒有任何意義。請詳細說明你正在嘗試做什麼,你已經做了什麼,以及你有什麼問題。 – Bombe 2009-09-01 06:04:52

+0

Bombe我從我的程序中激活表單,現在我不知道在哪裏保存激活碼(當程序運行時檢查激活碼)。 – 2009-09-01 06:07:24

回答

5

您可以將密鑰另存爲單獨的文件。加密密鑰並保存。所以即使用戶試圖篡改它,你也可以停用應用程序。

你可能會在CodePlex上對這個項目感興趣:http://licenser.codeplex.com/

編輯:你的一些問題進行檢查。

  1. Where should I store my activation key

  2. Best way to generate activation codes for software?

  3. Best activation key software for .NET application?

+0

非常感謝,你明白我,yeeeeeeeeee :) 這是好的,而不是保存該密鑰IN程序的方式? (不是單獨的文件) – 2009-09-01 06:20:37

+0

爲什麼不把它存儲在一個單獨的文件? – Shoban 2009-09-01 06:34:25

+0

用戶很容易可以看到它 – 2009-09-01 06:41:18

0

你當然可以存儲在一個Excutable,其相當長的過程的資源的關鍵,有情侶的API像OpenResource,GetResourceData和UpdateResource一樣可用,資源不易訪問除非你安裝了visual studio工具。

但你不能修改當前正在運行可執行文件的資源,但您可以創建不同的激活程序,它可以加載你的主執行程序,修改資源和保存。

+0

」但你不能修改可執行文件的資源「 我想寫入該文件的密鑰:( – 2009-09-01 06:33:52

+0

我想知道是什麼阻止用戶將文件複製到另一臺PC後,它已被」品牌「?或​​者你打算添加除了密鑰之外,文件中還有一些MAC地址或其他硬件信息? – 2009-09-01 06:59:52

0

假設Windows機器運行你的應用程序,您還可以使用註冊表來存儲加密密鑰(也許MD5?)。

這樣,它不能夠由用戶觀看的「文件」(雖然它可以被看作/改變/由用戶刪除)。
在我看來,用戶(標準的......)往往不會在註冊表中查找 - 您可以在那裏隱藏您的密鑰。

其實,@ Shoban的第一個鏈接where-should-i-store-my-applications-activation-key在這個問題上進行更多的討論 - 你應該看它......

1

忘記試圖掩蓋保存許可證密鑰的位置 - 您將無法停止確定的用戶,並且如果您嘗試將許可證信息存儲在「奇怪的」位置,則只會使系統管理員失望。忘記所有關於試圖存儲在正在運行的可執行文件中的內容,這很難以一種萬無一失的方式來實現,並且會觸發大量的防病毒軟件。

如果您想要防篡改的東西,請選擇其中一種商業解決方案;對不起,如果這聽起來很刺耳,但你是而不是會想出任何甚至是難以打破的難題,因爲你在問這樣的問題。