APP下载

一种可定制试用期限的软件注册算法

2016-05-14董海量张亮刘金星

网络空间安全 2016年4期
关键词:定制算法软件

董海量 张亮 刘金星

【 摘 要 】 对于收费软件,用户经常希望能够先试用软件再决定是否购买,软件销售商可以给潜在用户提供一定的试用期或试用次数。注册码机制是常用的软件销售权益保护方法。论文针对软件注册机制的原理,提出了一种可定制试用期限的软件注册算法,并给出了一种简单实用的算法示例,方便软件销售商为潜在用户提供灵活的试用期限。

【 关键词 】 软件;注册;定制;试用期限;算法

【 Abstract 】 For billing software, users often want to be able to try the software before deciding whether to buy. Software vendors can provide to potential users of a certain number of probation or trial. License mechanism is a common sales protection method used by software. Based on analyzing the principles of software registration mechanisms,a customizable for trial period software registration algorithm, as well as a simple and practical example was proposed, which can be used by software venders to provide a flexible trial period for the potential users.

【 Keywords 】 software; registration; customizable; trial period; algorithm

1 引言

注册码机制是收费软件常用的权益保护方法。当用户购买软件后,即可获得软件销售商提供的注册码,从而正当合法使用软件的全部授权功能。为了有效保护软件销售权益,软件一般采用复杂的加密技术来生成注册码,用户只有输入正确的注册码才能使用软件的全部功能。但在某些时候,用户有可能需要先对软件进行试用,然后再决定是否购买该软件。针对这种情况,软件在未注册前可以给用户一定的试用期或试用次数。试用结束后,用户如果没有输入正确的注册码,将不能继续使用该软件。本文给出了一种可根据用户需求自定义试用期限的软件注册算法,软件销售商可以根据不同用户的需要设置试用期限,使得用户试用软件在时间上更加灵活。

2 软件注册机制的原理

采用注册码机制的软件在初次安装时处于未注册状态。软件内含注册码验证程序。若用户输入正确的注册码,则软件变为注册状态,并开启全部授权功能供用户使用;否则,软件保持未注册状态。根据软件是否限制安装电脑数量,可将注册码分为两种:一种是不限制用户将软件安装于哪一台电脑,另一种是限制用户仅能在某一台电脑上使用该软件。后一种情形下,用户需要事先向软件销售商提供机器码(软件初次安装时根据用户电脑配置信息生成的标识符),软件销售商使用注册码生成器产生与用户提供的机器码相对应的注册码并分发给用户。

3 可定制试用期限的软件注册算法原理

软件本身具有三种状态:注册状态、未注册状态和试用状态。可定制试用期限的注册算法关键在于对注册码的结构和注册码验证程序进行特殊设计。将注册码设计成无限期使用和试用某段时间两种类型。用户在软件注册窗口输入注册码后,软件根据注册码的类型来做出不同的响应。如果用户输入的是正确的无限期使用的注册码,则软件从未注册状态变为注册状态,并永久开启全部授权功能;如果用户输入的是正确的试用某段时间的注册码,则软件从未注册状态变为试用状态,暂时开启全部授权功能,到达试用期限后自动恢复成未注册状态,并关闭全部授权功能;如果用户在软件试用期间内输入正确的无限期使用的注册码,则软件变成注册状态,并永久开启全部授权功能。

4 算法示例

本文针对用户购买软件需要提供机器码的情形,给出一种较为简单实用的可定制试用期限的注册算法示例。将注册码设计成两种类型:一种不限制使用时间,由16位字母或数字组成;另一种包含试用期限,由18位字母或数字组成。机器码由16位字母或数字组成,计算方法有几种:

①读取用户电脑的当前日期并转换成“YYYYMMDD”格式,得8位字符串c1;

②读取用户电脑主硬盘序列号并截取最后4位字母或数字,得4位字符串c2;

③读取用户电脑网卡MAC地址并截取最后4位字母或数字,得4位字符串c3;

④计算机器码p=P(c1c2c3)。

其中P为字符加密变换算法(对应的逆算法为P'),将字符串c1c2c3通过适当字符加密变换得到最终的机器码p。

软件销售商收到用户机器码p后,计算c0=P'(p),从字符串c0可得出用户安装软件的时间等信息。若用户已购买软件无限期使用权,则使用注册码生成器对p进行加密变换,生成不限制使用时间的注册码m=f1(p)发送给用户;若用户需试用一段时间t,则使用注册码生成器对p进行加密变换,生成包含试用时间期限的注册码m=f2(p,t)发送给用户。

用户正确注册后,软件在电脑指定位置生成一份授权文件Fi(加密文件,包含软件是否注册、限期试用时间、以及通过验证的注册码等信息)。软件启动时,首先运行注册状态检测程序,其工作流程分为几步:

①在指定位置查找是否存在合法授权文件Fi,若存在转②,否则转⑦;

②从文件Fi中解密出是否有限期试用时间d,若有转③,否则转④;

③将d与当前电脑日期d'相比较,若d > d',转⑤,否则转⑥;

④正常启动软件供用户使用,软件保持注册状态,注册状态检测程序结束;

⑤正常启动软件供用户使用,软件保持试用状态,并提示限期试用时间,注册状态检测程序结束;

⑥提示用户试用时间已到,将软件设置成未注册状态,关闭全部授权功能,要求用户重新输入正确的注册码;

⑦提示软件未注册,软件保持未注册状态,弹出注册码输入窗口,要求用户输入正确的注册码才能继续使用。

当用户输入注册码m后,注册码验证程序的工作流程是:

①判断m组成是否符合约定格式,符合转②,否则转⑧;

②判断m是否属于限制试用日期的注册码,是则转③,否则转④;

③验证注册码m是否正确,是则转⑤,否则转⑧;

④验证注册码m是否正确,是则转⑥,否则转⑧;

⑤从注册码中解密出限制试用日期d,与当前电脑日期d'相比较,若d > d',转⑦,否则转⑨;

⑥提示软件注册成功,将软件设置成注册状态,开启软件全部授权功能,并在指定位置生成注册文件Fi(包含通过验证的注册码等信息),提示用户重启软件即可正常使用;

⑦提示软件注册成功,将软件设置成试用状态,开启软件全部试用功能,提示用户试用日期,并在指定位置生成注册文件Fi(包含通过验证的注册码等信息),提示用户重启软件即可正常试用;

⑧提示注册码不正确,初始化注册码输入窗口,要求用户继续输入正确的注册码才能使用软件;

⑨提示用户超出试用日期,将软件设置为未注册状态,初始化注册码输入窗口,要求用户继续输入正确的注册码才能使用软件。

上述算法示例中,用户若故意更改电脑当前日期即可轻易延长软件试用时间。可对该算法进行改进,比如将限期试用日期设计成定时器,并对某些关键环节采取加密技术等,本文此处不赘述。

5 结束语

本文分析了软件注册机制的原理,描述了一种可限制试用日期的注册算法原理,并给出了一种简单实用的算法示例。采用该注册算法的软件能够根据需要给用户提供灵活的试用时间。

参考文献

[1] 贺慧萍.计算机软件注册码的用途及其法律保护[J].产业与科技论坛,2012,11(3):50-51.

[2] 胡沙沙,马巧梅等. 基于分存策略的软件注册码加密保护[J]. 计算机工程与设计,2015,(3):603-607.

[3] 李林孖.基于知识产权保护的软件注册功能设计与实现[J].电脑编程技巧与维护,2012,(2):15-18.

[4] 张畅,胡谷雨等.基于机器码加密的软件版权保护方案[J].计算机安全,2013,(3):46-48.

作者简介:

董海量(1984-),男,汉族,江苏淮安人,毕业于国防科学技术大学,硕士研究生,工学硕士,中国人民解放军61716部队,工程师;主要研究方向和关注领域:计算机应用技术。

张亮(1982-),男,汉族,黑龙江哈尔滨人,毕业于国防科学技术大学,大学本科,工学学士,中国人民解放军61716部队,工程师;主要研究方向和关注领域:信息工程。

刘金星(1983-),男,汉族,辽宁锦州人,毕业于国防科学技术大学,硕士研究生,工学硕士,中国人民解放军61716部队,工程师;主要研究方向和关注领域:电子技术、软件工程。

猜你喜欢

定制算法软件
Travellng thg World Full—time for Rree
有趣的识花软件
学习算法的“三种境界”
算法框图的补全
算法初步知识盘点
汽车“定制”卷土重来
即时通讯软件WhatsApp
丰富多彩的Android软件
如何在智能手机中安装软件