我正在使用C#和.NET 2.0。我的应用程序需要一些方法来检查不同的用户,所以我将使用硬件ID,但我看到我只能使用:
那么我没有提到hwid的东西吗?我想要一个每个人都拥有的东西,它不会在Windows重新安装时被删除。否则,我必须使用Windows的卷序列号。
最终编辑:我已在我的应用上使用根驱动器序列。它工作得很好。谢谢大家。
答案 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。