2018年11月02日 星期五

双码验证设备是否授权

启动程序首先判断配置文件是否存在,如果不存在,则根据jiami(当前时间秒数+系统名称),生成一个字符串UUID存入文本中,写入本地。然后再读取这个文件字符串UUID和创建时间和修改时间信息。对比三者是否一致。如果不一致,则再生成,再判断。直到一致为止,然后把字符串UUID,作为机器码的第二机器码。

第一机器码是md5(网卡字符串+电脑名称)[:16].如果第一机器码不存在系统中,则判断第二机器码是否存在,如果存在,则修改第一机器码为新机器码。如果第二机器码也不存在则,则是新安装设备。如果第一机器码存在,则更新第二机器码。

这样的两码验证机制,第一可以保证,绑定设备,如果换设备,则授权失效。第二,可以保证,重新软件,授权不会失效。第三,可以保证,由于网卡,计算机名称变更,导致的授权失效问题

两码验证机制的存在的第一个问题,由于UUID,是时间秒+"windows" 加密,存在同一时间生成相同UUID重复的问题。但是安装软件,不可能同一时间有两个人安装,这个问题,可以说不是问题

两码验证机制的存在的第二个问题,存在伪造网卡和计算机名称的问题。当然作为大部分小白,都很难伪造。即使不是主动伪造,存在网卡一定重复的现象,但是但加上计算机名,重复率就大大降低。可以忽略 

两码验证机制的存在的第三个问题,伪造配置文件,虽然可以修改系统时间,来保证创建时间和修改时间,字符串包含的时间一直,但是字符串的加密算法是保密的,无法算出字符串到底是啥时间。即使可以查看修改时间,调整计算机时间,第一很难保证在正确的时间保存文件,第二,可以提供时间对比到毫秒

 总结,这种两码验证机器码,可以保证软件在绑定设备的稳定性,解决重装系统,无线和有线切换,更换计算机名称,等非换设备造成的授权掉的问题。再加上恢复码,每年可以恢复12次,这样可以解决,刷机,特殊换设备,正常情况下的重新授权的需求。 再加上恢复码,每年可以恢复12次,这样可以解决,刷机,特殊换设备,正常情况下的重新授权的需求。