25
|
mr.b Scott Lystig Fritchie · 技术社区 · 14 年前 |
1
7
在我看来,您应该根据您的需求构造惟一的ID。此ID可以构造为 搞砸 (如MD5、SHA1或SHA512)来自对您很重要的信息(有关软件和硬件组件的一些信息)。 如果您在启动过程中使用您的私钥和软件对此类哈希进行签名,并验证密钥( 有符号哈希值 )已签名(只有公钥必须与软件一起安装)。人们可以通过不同的在线服务来扩展这种解决方案,但是企业客户会发现在线服务并不那么好。 |
2
7
你要找的是 Windows WMI . 你可以得到主板ID 是 在同一类型的主板上是唯一的)或许多其他类型的唯一标识符,并想出一些聪明的种子函数来生成一个uhid。我刚刚编了个首字母缩写? 如果您特别想获取主板(BIOS)ID:
文档:
http://msdn.microsoft.com/en-us/library/aa394077(VS.85).aspx
编辑 您没有指定语言(我假设C++),但这可以用Java(带有COM驱动程序)和任何.NET语言来完成。 |
3
4
许多程序使用hostid来构建许可证代码(如基于flexlm的代码)。看看matlab根据操作系统做什么: http://www.mathworks.com/support/solutions/en/data/1-171PI/index.html 还可以看看这个问题: Getting a unique id from a unix-like system 有一次我还看到一些程序将许可证建立在硬盘的序列号上,这可能是不太可能改变的事情。有些人会建议使用以太网卡的MAC,但是可以重新编程。 |
4
0
不要依赖Mac和卷ID!!!!!!!
连接到验证服务器也可能导致许多问题,因为:
如果您需要强大的保护,则需要依赖硬件ID。 这是一个库,它提供了您想要的确切内容:一种读取计算机硬件ID的可靠方法。其中,它可以读取CPU ID和HDD ID,这两个ID都是唯一的,永远不会改变(是的,即使在格式化计算机并重新安装Windows之后也不会改变)。 有一个编译好的演示应用程序,证明了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 库的用法很简单,只需调用一个函数(当然,在您将dll加载到内存中之后)。 |