2010-08-06 46 views
2

我正在使用C#和.NET 2.0。我的應用程序需要一些方法來檢查不同的用戶,所以我會使用硬件ID,但我看到了,我只能用:硬件ID幫助

  • MAC地址 - 容易改變,而不是每個人都擁有它//沒有
  • 處理器編號 - 使用WMI它返回一個值爲CPU模型,它不是唯一的//否
  • 主板串行 - 不是每個主板都有它//否
  • Windows的音量串行 - 我不知道它是否會在Windows上重新安裝並改成卷的格式

那麼有沒有我沒有提到的hwid?我想要每個人都擁有的東西,並且它不會在重新安裝的Windows上擦除。否則,我不得不使用Windows的音量序列號。


編輯:從評論我認爲這是最好的使用硬盤ID。如何得到它?編輯2:我剛剛讀到SCSI驅動器沒有串行。真的嗎?

FINAL編輯:我已經在我的應用程序中使用根驅動器序列。它工作很好。謝謝大家。

回答

2

硬盤序列號:唯一,不可更改,每個人都有。

不是一個完美的選擇,但...

+0

你的意思是硬盤串行,而不是邏輯驅動器(音量)串行?如果是這樣,如何得到它? – blez 2010-08-06 15:28:56

+0

那麼如果一個人改變硬盤,你就會丟掉那個...... – 2010-08-06 15:30:13

+0

但是如何得到它? – blez 2010-08-06 15:36:48

1

嗯,我會去的不止一個ID。如果你結合了足夠的ID,他們將獲得足夠的唯一性。

編輯:你也可能去的地方在硬盤的程序安裝太(拼盤,汽缸等)

+0

然後,如果用戶只更改其中一個組件,我將不得不續約他的許可證。 – blez 2010-08-06 15:32:06

+0

好吧,不是真的。如果你有足夠的ID,你仍然可以識別用戶。 – 2010-08-06 15:34:07

+0

是的,但是想法是讓用戶信息拷貝受到保護。防止用戶泄漏/系列 – blez 2010-08-06 15:36:31

0

你爲什麼要使用硬件ID?我自己也會使用某種基於表單的(或基於AD的)安全性。

但是,鑑於這一點,關於HWID的事情是它識別特定的計算機配置:它被設計爲在系統發生變化時進行更改。您提到Windows Volume Serial可能會在重新安裝和重新格式化時發生變化,但您的軟件是否也必須在此時重新安裝?例如,如果用戶因某種原因交換了HDD,HDD Serial也可能發生變化。

如果您必須使用HWID,您可能需要選擇一個(或多個)可用選項來提供唯一性和代碼周圍,或通知用戶需要重新安裝的硬件更改和/或重新配置你的軟件。

+0

什麼是「基於表單(或基於AD)」的安全性? – blez 2010-08-06 15:40:40

+1

「基於表單」是指您必須登錄(通過表單)才能使用應用程序的想法(通常用於Web應用程序,但您也可以在Windows應用程序上實現)。 AD指活動目錄;即連接到公司的Active Directory服務器以檢索用戶權限。 AD要求安裝活動目錄(或類似的東西),形成安全需要某種數據存儲(即使其在本地使用該機器)。 – AllenG 2010-08-06 15:46:55

+1

我更喜歡硬件ID。 – blez 2010-08-06 16:25:46

0

您是否必須考慮安全性或唯一可靠性,即用戶是否想要篡改身份檢查? 如果您需要(高)安全性,購買「軟件保護」產品之一,這遠比自己做的更便宜。

對安全性要求不高? => 另一種可能性是使用用戶或機器SID。你必須考慮到你的應用程序被執行了> =用戶是管理員。

最後但並非最不重要:在HKEY_CURRENT_USER下將一些字節的隨機值寫入註冊表(可能位於各個位置),並將它們用作ID。