发明内容
有鉴于此,本发明提出一种应用软件的注册信息文件生成方法,以实现应用软件的分模块授权。
本发明的另一目的是提出一种应用软件的使用授权方法,以实现应用软件的分模块授权。
本发明还提出一种应用软件的注册信息文件生成装置,以实现应用软件的分模块授权。
为达到上述目的,本发明实施例的技术方案是这样实现的:
一种应用软件的注册信息文件生成方法,在应用软件提供商侧执行以下步骤:
获取用户计算机的网卡MAC地址、硬盘序列号、以及CPU序列号,生成机器码;
根据所述机器码、应用软件中各功能模块的名称,生成与各功能模块一一对应的授权信息,将所述各功能模块的授权信息作为一个整体,形成应用软件的注册信息,各功能模块的授权信息之间以分隔标识区分;其中,所述授权信息至少包括:功能模块名称、注册ID、以及机器码;所述注册ID根据所述用户计算机的系统时间生成,与功能模块一一对应;
使用私钥对应用软件的注册信息签名,生成应用软件的注册信息文件。
一种应用软件的使用授权方法,在用户计算机侧执行以下步骤:
S1、在应用软件上使用公钥验证应用软件的注册信息文件成功后,导入所述注册信息文件中各功能模块的授权信息并保存;
所述注册信息文件由应用软件的注册信息经过私钥签名而生成;
所述应用软件的注册信息包含各功能模块的授权信息,各功能模块的授权信息之间以分隔标识区分;所述授权信息包括:该功能模块名称、注册ID、以及机器码;注册ID根据所述用户计算机的系统时间生成,与功能模块一一对应;
S2、应用软件运行时,所述各功能模块中任一功能模块获取与该功能模块名称对应的授权信息,当授权信息有效时提供该功能模块的业务应用功能。
一种应用软件的注册信息文件生成装置,包括:机器码生成模块和注册信息文件生成模块,其中:
机器码生成模块,用于获取用户计算机的网卡MAC地址、硬盘序列号、以及CPU序列号,并根据所获取的信息生成机器码;
注册信息文件生成模块,用于根据所述机器码、应用软件中各功能模块的名称,生成与各功能模块一一对应的授权信息,将所述各功能模块的授权信息作为一个整体,形成应用软件的注册信息,使用私钥对注册信息签名,生成注册信息文件;
其中,所述授权信息至少包括:功能模块名称、注册ID、机器码;注册ID根据用户计算机的系统时间生成,与功能模块一一对应。
本发明的有益效果为,通过对应用软件按功能模块进行细分,生成包含有所述各功能模块授权信息的注册信息文件,从而,在应用软件上导入所述注册信息文件时,各功能模块获取与其名称对应的授权信息,就能提供该功能模块对应注册数量的业务应用功能,实现应用软件的分模块授权。
同时,本发明通过将当前导入的注册信息文件的授权信息与用户计算机上已有的同一应用软件的未过期授权信息进行累加,从而,在用户需要对应用软件进行扩容时,可利用用户计算机上已有的同一应用软件的未过期注册信息文件,增加应用于用户计算机的应用软件支持客户端的数量,从而达到对使用应用软件客户端数量予以控制的效果,减少需购买的应用软件数量,避免给用户带来不必要的损失。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下通过具体实施例并参见附图,对本发明进行详细说明。
本发明中,对应用软件按功能模块进行细分,通过在注册信息中添加应用软件各功能模块授权信息,生成包含有所述各功能模块授权信息的注册信息文件,从而,用户在应用软件上导入所述注册信息文件时,所述各功能模块中任一功能模块获取与该功能模块名称对应的授权信息,就能提供该功能模块对应注册数量的业务应用功能,实现应用软件的分模块授权。
同时,通过将当前导入的注册信息文件中任一功能模块的授权信息与用户计算机上已有的同一应用软件的同一模块的未过期授权信息进行累加,在用户需要对应用软件进行扩容时,可以利用用户计算机上先前已有的同一应用软件的未过期注册信息文件,避免给用户带来不必要的损失。
本发明实施例的应用软件的注册信息文件生成方法流程如图1所示,在应用软件提供商侧执行以下步骤:
步骤101:获取用户计算机的网卡MAC地址、硬盘序列号、CPU序列号,生成机器码;
在用户处由应用软件提取用户计算机的相关信息,包括:网卡MAC地址、硬盘序列号、CPU序列号,发送给应用软件提供商,应用软件提供商根据上述获取到的用户计算机的相关信息,进行MD5摘要运算,得到用户计算机的摘要信息,由于摘要信息比较长,本发明只取摘要信息的最后25个字符作为用户计算机的机器码。
步骤102:根据所述机器码、应用软件中各功能模块的名称,生成与各功能模块一一对应的授权信息,将所述各功能模块的授权信息作为一个整体,形成应用软件的注册信息,各功能模块的授权信息之间以分隔标识区分;其中,所述授权信息至少包括:功能模块名称、注册ID、以及机器码;所述注册ID根据所述用户计算机的系统时间生成,与功能模块一一对应。
应用软件提供商将应用软件按功能划分为不同的模块,用户可根据自己的需要选择功能模块,生成的应用软件的注册信息包含了各功能模块的授权信息,其中任一功能模块的授权信息包括:该功能模块名称、注册ID、机器码。
较佳地,所述各功能模块中任一功能模块的授权信息进一步包括:功能模块的注册数量和/或应用软件被使用的到期时间
对于选定的各功能模块,可以确认用户要购买的注册数量,通过所述注册数量可限制功能模块的使用个数。
通过在任意功能模块的授权信息中添加应用软件被使用的到期时间,并对到期时间与用户计算机的当前系统时间进行比较,可以限制应用软件各功能模块的使用时间。
例如,任意功能模块的授权信息如下:
Module Name(功能模块名称):RecordServer
Register ID(注册ID):1305271150864
Machine Code(机器码):B60DC16E8D14D9C1928020DC5
Register Number(功能模块注册数量):5
Maturity(到期时间):2012年12月31日
在注册信息中,各功能模块授权信息中的机器码是相同的;注册ID根据系统时间生成,与功能模块一一对应。
在生成包含有所述各功能模块授权信息的注册信息时,可以采用共享密钥的DES算法,对所述各功能模块授权信息进行加密变换,隐藏授权信息,即隐藏授权系统实现细节,以增强安全性。
步骤103:使用私钥对应用软件的注册信息签名,生成应用软件的注册信息文件。
应用软件提供商使用注册文件生成工具,将应用软件中各功能模块的名称及其注册数量、注册ID、机器码信息整合在一起,统一使用MD5withRSA签名算法,授权私钥信息,进行签名运算并生成注册信息文件,保证注册信息文件的安全、不可篡改。
例如,若用户只购买应用软件中的两个功能模块ReadServer和RecordServer,则生成的注册信息文件的格式如下:
Module Name(功能模块名称):ReadServer
Register ID(注册ID):1305271150864
Machine Code(机器码):B60DC16E8D14D9C1928020DC5
Register Number(功能模块注册数量):5
Maturity(到期时间):2012年12月31日
--------------------
Module Name(功能模块名称):RecordServer
Register ID(注册ID):1316272250971
Machine Code(机器码):B60DC16E8D14D9C1928020DC5
Register Number(功能模块注册数量):10
Maturity(到期时间):2020年12月31日
--------------------
I2jHO80vS/ck+ZRrxqEqBKt4lPb8jq6gCvaHA3VnFlQMyIU2qj6xjE2/17/nAacc9fCHLR7gqfrJ6oBxpXI5EZi3tcSVC427JSNxU/8UEHFn9FiZB5Juvn3W5VNNGL5NosfaeaySW+DhORkZJ9F6vjy4K3RzGmapvPuZE8qjIik=
其中,符号“--------------------”为分隔标识,分隔标识可采用各种形式,不限于上述例子中的符号。最后三行字符为签名信息。注册信息中各功能模块授权信息之间、以及注册信息与签名信息之间,均以分隔标识衔接,以使得各功能模块授权信息之间能够被区分、分隔。
为增强安全性,在使用私钥对注册信息签名前,可以对注册信息加上私有信息。所述私有信息为任意指定的字符串,目的为对注册信息中的各功能模块授权信息进行混淆,使其不容易被辨认出来。
在采用上述应用软件的注册信息文件生成方法生成注册信息文件后,与之对应地,本发明实施例的应用软件的使用授权方法流程如图2所示,在用户计算机侧执行以下步骤:
步骤201:在应用软件上使用公钥验证应用软件的注册信息文件成功后,导入所述注册信息文件中各功能模块的授权信息并保存;
所述注册信息文件由应用软件的注册信息经过私钥签名而生成;即为步骤102、103中的注册信息文件。
所述应用软件的注册信息包含各功能模块的授权信息,各功能模块的授权信息之间以分隔标识区分;所述授权信息包括:该功能模块名称、注册ID、以及机器码;注册ID根据所述用户计算机的系统时间生成,与功能模块一一对应;
应用软件使用分隔标识分隔注册信息文件中的注册信息和签名信息,读取注册信息、签名信息,然后使用MD5withRSA签名算法、应用软件携带的公钥信息、签名信息,对所述注册信息进行签名验证。
步骤202:应用软件运行时,所述各功能模块中任一功能模块获取与该功能模块名称对应的授权信息,当授权信息有效时提供该功能模块的业务应用功能。
所述授权信息有效,是指能够正确获取到功能模块的授权信息。当授权信息中加入应用软件被使用的到期时间时,所述授权信息有效,指能够正确获取到功能模块的未过期授权信息。
所述各功能模块中任一功能模块获取与该功能模块名称对应的授权信息的方法为:所述各功能模块中任一功能模块从所述各功能模块的授权信息中查找到该功能模块的名称,读取分隔标识之间、包含有该功能模块名称的所有授权信息。
较佳地,步骤201中所述各功能模块中任一功能模块的授权信息进一步包括:该功能模块的注册数量;
此时,步骤202进一步包括:提供该功能模块对应注册数量的业务应用功能。
较佳地,当用户再次购买并接收到应用软件提供商侧发送的相同应用软件的注册信息文件时,也就是当应用软件再次被授权时,重复执行步骤201;
为了实现当前导入的注册信息文件中任一功能模块的授权信息与用户计算机上已有的同一应用软件的同一功能模块的未过期授权信息进行累加,所述各功能模块中任一功能模块的授权信息进一步包括:应用软件被使用的到期时间;
此时,步骤201中所述导入注册信息文件中各功能模块的授权信息并保存之前需要对各个授权信息的注册ID进行检测。由于多次导入同一注册ID的功能模块授权信息时,只会被认为是一份授权信息,为了避免同一注册ID的授权信息多次导入和累加的情况发生,进行下述检测,即在应用软件上使用公钥验证应用软件的注册信息文件成功后,进一步包括:
对于接收到的注册信息文件中的所有注册ID,检测所述所有注册ID中任意注册ID是否已存在于应用软件的安装目录下,若存在,则不在应用软件上导入与该注册ID对应的功能模块授权信息,否则,在应用软件上导入与该注册ID对应的功能模块授权信息;且,使得各功能模块中任一功能模块的授权信息包含与该功能模块名称对应的当前导入的授权信息和用户计算机系统中已有的授权信息,形成该功能模块的授权信息集合。
然后,根据所述授权信息集合中任意授权信息的到期时间与用户计算机侧的当前系统时间,判断该授权信息是否过期,若过期,设置该授权信息为禁止使用状态,对所述授权信息集合中所有未过期的授权信息的注册数量进行累加,当累加后的注册数量N大于0时,提供该功能模块N个注册数量的业务应用功能。
一旦发现该授权信息集合中任一授权信息过期,立即设置该授权信息为禁止使用状态,将与所述授权信息集合对应的功能模块的其余未过期授权信息重新进行累加,以及时更新应用软件中各功能模块的使用权限。
所述根据所述授权信息集合中任意授权信息的到期时间与用户计算机侧的当前系统时间,判断该授权信息是否过期,所述判断的方法为:
将该授权信息的到期时间与用户侧计算机的系统时间均转换为数值,若该授权信息的到期时间的数值小于用户侧计算机的当前系统时间的数值,则判定该授权信息过期,否则,判定该授权信息未过期。所述到期时间与当前系统时间都取“年-月-日”的格式,比如,2011-09-23。
所述根据所述授权信息集合中任意授权信息的到期时间与用户计算机侧的当前系统时间,判断该授权信息是否过期的执行时间点为:每次启动应用软件时,或者,在应用软件运行时按预先设定的时间周期进行判断。
用户可多次导入分批购买的注册信息文件,应用软件将对同一功能模块的所有未过期授权信息进行累加,提供所述功能模块对应注册数量的业务应用功能。现有技术中,多未考虑此种累加方式,大多数都为输入单一注册码或导入单一注册文件。
因此,采用本发明方法,可增加应用于用户计算机的应用软件支持客户端的数量,在用户需要对应用软件进行扩容时,可减少应用软件的购买量,帮助用户避免不必要的损失。
例如,用户2010年购买应用软件的A功能模块100个、B功能模块50个安装在计算机上,以支持100个客户端使用A功能模块、50个客户端使用B功能模块,生成的注册信息文件中A功能模块的注册数量为100、B功能模块的注册数量为50,注册ID分别为1305271150864、1325271150864,到期时间均为2020年12月31日;
该用户在2011年打算扩容,将相同的应用软件中A功能模块的使用扩容至200个、B功能模块的使用扩容至100个,使用本发明方法后,用户只需向应用软件提供商购买A功能模块的注册数量为100、B功能模块的注册数量为50的注册信息文件,通过对2011年购买的注册信息文件与2010年已购买的、尚未过期的注册信息文件中的A、B功能模块的注册数量进行累加,就可以得到相同的应用软件中A功能模块200个、B功能模块100个的使用权限效果,即可以利用之前已经购买的未过期的注册信息文件。
但目前现有技术,若要达到上述效果,对于同一应用软件,首先没有按照应用软件的功能模块进行细分以便于分模块购买,其次,无法利用之前已购买的、未过期的注册信息文件,例如,用户2010年购买应用软件100个,2011年想要扩容至200个,则只能重新购买注册数量为200的注册文件或注册码,将其导入应用软件时,由于是同一应用软件,2010年已购买的、注册数量为100的注册文件或注册码就不能再使用了,新导入的2011年购买的注册码或注册文件会替换掉2010年以购买的注册码或注册文件,给用户带来损失。
也就是说,若用户在2011购买同一应用软件200个,导入用户计算机上,采用现有技术,应用于用户计算机的应用软件只能支持200个客户端的应用软件使用,但采用本发明方法,则通过将2011年购买的应用软件注册数量200个与2010年购买的同一应用软件的未过期注册数量100个进行累加后,应用于用户计算机的应用软件可以支持300个客户端的应用软件使用,显然增加了应用于用户计算机的应用软件支持客户端的数量,在用户需要对应用软件进行扩容时,可减少应用软件的购买量,帮助用户避免不必要的损失。
本发明实施例的应用软件的注册信息文件生成装置结构如图3所示,该装置位于应用软件提供商侧,包括:机器码生成模块301和注册信息文件生成模块302,其中:
机器码生成模块,用于获取用户计算机的网卡MAC地址、硬盘序列号、以及CPU序列号,并根据所获取的信息生成机器码;
注册信息文件生成模块,用于根据所述机器码、应用软件中各功能模块的名称,生成与各功能模块一一对应的授权信息,将所述各功能模块的授权信息作为一个整体,形成应用软件的注册信息,使用私钥对注册信息签名,生成注册信息文件;
其中,所述授权信息至少包括:功能模块名称、注册ID、机器码;注册ID根据用户计算机的系统时间生成,与功能模块一一对应。
较佳地,所述各功能模块中任一功能模块的授权信息进一步包括:功能模块的注册数量和/或应用软件被使用的到期时间
对于选定的各功能模块,可以确认用户要购买的注册数量,通过所述注册数量可限制功能模块的使用个数。
通过在任意功能模块的授权信息中添加应用软件被使用的到期时间,并对到期时间与用户计算机的当前系统时间进行比较,可以限制应用软件各功能模块的使用时间。
注册信息文件生成模块302还用于采用共享密钥的DES算法,对生成的注册信息中各功能模块的授权信息进行加密变换,隐藏授权信息,即隐藏授权系统实现细节,以增强安全性。
注册信息文件生成模块302还用于在使用私钥对注册信息签名前,对注册信息加上私有信息。所述私有信息为任意指定的字符串,目的为对注册信息中的各功能模块授权信息进行混淆,使其不容易被辨认出来。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。