生成计算机的唯一标示(多平台)

在做lisence加密时,需要判断程序是不是在一台电脑上运行。为了做到这一点,我们需要生成一个唯一的机器ID(机器指纹)。

实现方法

  • 硬件ID:计算机的硬件很多都有序列号,包括CPU、硬盘、网卡、MAC等等。
  • 软件ID:每个磁盘分区都会生成软件序列号;你也可以使用计算机名、安装的软件等等。注意:软件ID是可以人为复制的。

我们的策略是:获得一个机器尽可能多的信息,然后组合生成一个唯一的ID。

不要忽略用户升级硬件。

C/C++实现

头文件:

Windows:

Linux和Mac OS X:

使用16位hash生成72位机器ID;我们使用CPU id,分区id、前两位MAC地址和16位的检验数字。

生成对人友好的形式:

判断ID是否是某个机器生成的:

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注