机器码、序列号、认证码、注册码的生成算法(三)

机器码生成

如果我们希望注册码只能在一台电脑上使用,那就需要生成一个机器码。把机器码交给开发者,开发者经过一系列的运算之后,返回一个注册码。这个注册码已经包含了机器信息,只能用在一台电脑上。

机器码可以从很多硬件信息上得到,例如是MAC地址、磁盘ID、CUP序列号等。但这些信息有几个问题:

(1)不一定唯一,很多同个型号的电脑,硬件信息都是一样的。

(2)不一定存在。例如没有网卡,MAC地址就无从谈起。

(3)会被改变。更换硬件当然是一个方面,但即使没有更换硬件,有时候硬件信息也会改变。

上面的问题,2、3其实都不是很重要,大不了重新注册一遍,问题1是最严重的。在一些公司里面,电脑是统一采购的,硬件信息重复的概率很高。

当然,我们可以综合几个硬件信息,但也不能保证不会出现重复。

可以使用一种“软”的方法来获取硬件信息。就是我们软件在第一次运行时,生成一个随机数,保存在一个不容易被发现的地方(例如是注册表,或者是一个隐藏的文件)。我们并不需要保证用户无法修改,我们是允许用户修改的。只是修改之后,用户就需要重新注册一遍软件。

 

对于真正的硬件信息,我们还看到一个问题,就是硬件信息的长度不一定是我们需要的。例如MAC地址是6个字节的,一般显示出来是12个字符。如果我们希望机器码是8个字符呢?

其实我们可以先求出硬件信息的MD5值,然后截取MD5字符串的若干位。

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值