软件常有试用期的限制,常表现为两种限制方式:一是以时间为限制,二是以次数为限制。
如果软件能实现每次使用时,到指定的服务器上做一个验证,那么这种实现比较简单,只要在服务上做个判断就可以了。
如果软件为单机版、或类似为单机版本,怎么才能比较完善的实现呢。以下对此做个简单的分析:
硬件方法实现:
可以用USB加密狗、MAC地址、某硬件的序列号。
MAC地址或某硬件的序列号,是根据某种加密算法来做一个注册机,注册机生成一个文件。软件每次使用时,把硬件的实际序列号与所生成的注册的文件作个比对就可以了。实现比较简单,麻烦的就是每台电脑都必须有一个这样的注册文件。
软件实现:
常用的有注册表,生成生成文件,文件的时间,目录的时间等等。
以注册表,并以日期限制为例来说,软件第一次使用时,把软件的授权日期及系统时间记入注册表(如果系统时间小于文授权日期,直接不让其实用)。以后软件开启时,在注册表中记录当前的系统时间(如果新的系统时间小于注册表中的系统时间,不让其实用),并判断其是否大于授权期限。
此方法不能根本解决问题,容易破解,并且重装系统后还能用。