帮助硬件ID

时间:2010-08-06 15:23:55

标签: c# .net winapi c#-2.0 hardware-id

我正在使用C#和.NET 2.0。我的应用程序需要一些方法来检查不同的用户,所以我将使用硬件ID,但我看到我只能使用:

  • mac地址 - 容易改变而不是每个人都拥有它// NO
  • 处理器ID - 使用WMI它返回cpu模型的值,它不是唯一的// NO
  • 主板串口 - 不是每个主板都有// NO
  • Windows的音量序列 - 我不确定它是否会在Windows重新安装和音量格式上更改

那么我没有提到hwid的东西吗?我想要一个每个人都拥有的东西,它不会在Windows重新安装时被删除。否则,我必须使用Windows的卷序列号。


编辑:从作品中我认为最好使用硬盘ID。怎么弄? 编辑2:我刚刚读到SCSI驱动器没有串行。这是真的吗?

最终编辑:我已在我的应用上使用根驱动器序列。它工作得很好。谢谢大家。

5 个答案:

答案 0 :(得分:2)

硬盘序列号:独特,不可更改,每个人都有。

不是一个完美的选择,但......

答案 1 :(得分:1)

好吧,我会选择多个ID。如果你结合足够的ID,他们将获得足够的独特性。

编辑:您也可以选择安装程序的硬盘(Platter,Cylinder等)

答案 2 :(得分:0)

为什么要使用硬件ID?我自己会使用某种基于表单(或基于AD)的安全性。

然而,鉴于此:关于HWID的问题在于它识别出特定的计算机配置:它旨在在系统发生变化时进行更改。您提到Windows Volume Serial可能会在重新安装和重新格式化时发生变化,但此时您的软件是否也不必重新安装?如果用户因某种原因更换硬盘驱动器,则硬盘串口也可能会发生变化。

如果必须使用HWID,您可能需要选择一个(或多个)可用选项来提供唯一性和代码,或者告知用户需要重新安装和/或重新配置的硬件更改你的软件。

答案 3 :(得分:0)

MAC地址不太可靠。 您应该使用无法更改的内容,例如CPU ID或HDD IDE ID。

这是我想要的意思:
http://www.soft.tahionic.com/download-hdd_id/index.html
http://www.soft.tahionic.com/download-hdd_id/hardware%20ID%20programmer%27s%20DLL.html


要回答您的问题,是的,SCSI没有硬件ID。

答案 4 :(得分:0)

您是否必须考虑安全性或仅考虑可靠性,即用户是否想要篡改身份证检查? 如果你需要(高)安全性,购买一个“软件保护”产品,这比自己做的便宜得多。

不需要高安全性? => 另一种可能性是使用用户或机器SID。你必须考虑到你的申请被执行elvated =>用户是管理员。

最后但并非最不重要:在HKEY_CURRENT_USER下将一些字节的随机值写入注册表(可能在不同的地方),并将它们用作ID。