一种软件授权的方法和装置

2017-01-11 19:10

本发明实施例公开一种软件授权的方法和装置,涉及数字版权保护领域,以解决目前由于用户可以将一个终端上的软件复制到另一个终端上,而将多余的软件和硬件加密装置给其他用户使用,造成的软件授权不准确的问题。本发明提供的技术方案包括:为安装软件的终端生成软件授权文件,所述任一软件授权文件具有排斥与其他软件授权文件共存一个终端的属性;在运行所安装的软件之前,对所述软件授权文件和预先设置的硬件加密装置信息进行验证。本发明实施例提供的技术方案可以应用在软件授权技术中。

1.一种软件授权的方法,其特征在于,包括:为分布式软件系统中的每个终端分别生成软件授权文件,任一所述软件授权文件具有排斥与其他所述软件授权文件共存一个终端的属性,所述为分布式软件系统中的每个终端分别生成软件授权文件包括:为所述分布式软件系统中的终端上安装的一个以上软件分别设置唯一的标识;根据所述标识和预先设置的硬件加密装置信息为所述终端生成软件授权文件;

在运行所安装的软件之前,对所述软件授权文件和预先设置的硬件加密装置信息进行验证。

2.根据权利要求1所述的软件授权的方法,其特征在于,所述任一所述软件授权文件具有排斥与其他所述软件授权文件共存一个终端的属性的实现方法为:将所述软件授权文件保存于预先指定的目录下,并且各软件授权文件的名称相同。

3.根据权利要求1所述的软件授权的方法,其特征在于,所述为分布式软件系统中的每个终端分别生成软件授权文件之后,还包括:生成所述软件授权文件的消息摘要。

4.根据权利要求1所述的软件授权的方法,其特征在于,所述在运行所安装的软件之前,对所述软件授权文件和预先设置的硬件加密装置信息进行验证包括:获取所述软件授权文件和所述硬件加密装置信息;当所述软件授权文件与所述硬件加密装置信息匹配,并且所述软件授权文件中包含当前所要运行软件的标识时,验证通过。

5.根据权利要求4所述的软件授权的方法,其特征在于,所述获取所述软件授权文件之后,还包括:

判断所述软件授权文件是否被修改。

6.一种软件授权的装置,其特征在于,包括:第一生成单元,用于为分布式软件系统中的每个终端分别生成软件授权文件,任一所述软件授权文件具有排斥与所述其他软件授权文件共存一个终端的属性,所述第一生成单元包括:设置单元,用于为所述分布式软件系统中的终端上安装的一个以上软件分别设置唯一的标识;第一生成子单元,用于根据由所述设置单元设置的标识和预先设置的硬件加密装置信息为所述终端生成软件授权文件;验证单元,用于在运行所安装的软件之前,对由所述第一生成单元生成的软件授权文件和预先设置的硬件加密装置信息进行验证。

7.根据权利要求6所述的软件授权的装置,其特征在于,还包括:第二生成单元,用于生成由所述第一生成单元生成的软件授权文件的消息摘要。

8.根据权利要求6所述的软件授权的装置,其特征在于,所述验证单元包括:获取单元,用于获取由所述第一生成单元生成的软件授权文件和所述硬件加密装置信息;

第一判断单元,用于判断所述软件授权文件与所述硬件加密装置信息是否匹配;第二判断单元,用于判断所述软件授权文件中是否包含当前所要运行软件的标识;输出单元,用于输出由所述第一判断单元和所述第二判断单元的判断结果。

9.根据权利要求8所述的软件授权的装置,其特征在于,所述验证单元还包括:

第三判断单元,用于判断所述软件授权文件是否被修改。

一种软件授权的方法和装置技术领域

本发明涉及数字版权保护领域,尤其涉及一种软件授权的方法和装置。

背景技术

由于软件的可复制性,软件盗版现象非常普遍,非法复制的软件,会严重损害软件开发商的利益、降低程序设计人员的积极性。

分布式软件系统是一种多终端的计算机系统,各个终端之间通过互联网络构成一个统一的软件系统。分布式软件系统采用分布式计算的结构,把原来单系统内CPU的任务分散给不同的终端,在不同的终端上安装不同的软件,通过各个终端之间的相互协调工作,实现不同的系统功能。

现有的给一个分布式软件系统进行授权的方法是,给每个终端分配一个硬件加密装置,通过识别硬件加密装置信息来实现软件授权。

在实现本发明的过程中,发明人发现现有技术至少存在如下问题:由于给同一个分布式软件系统中每个终端分配的硬件加密装置相同,用户可以将一个终端上的软件复制到另一个终端上,而将多余的软件和硬件加密装置给其他用户使用,造成软件授权不准确。

发明内容

本发明的实施例提供一种软件授权的方法和装置,能够对分布式软件系统进行准确无误地软件授权。

为达到上述目的,本发明的实施例采用如下技术方案:

一种软件授权的方法,包括:

为安装软件的终端生成软件授权文件,所述任一软件授权文件具有排斥与其他软件授权文件共存一个终端的属性;

在运行所安装的软件之前,对所述软件授权文件和预先设置的硬件加密装置信息进行验证。

一种软件授权的装置,包括:

第一生成单元,用于为安装软件的终端生成软件授权文件,所述任一软件授权文件具有排斥与其他软件授权文件共存一个终端的属性;

验证单元,用于在运行所安装的软件之前,对由所述第一生成单元生成的软件授权文件和预先设置的硬件加密装置信息进行验证。

本发明实施例提供的软件授权的方法和装置,通过对软件授权文件和硬件加密装置二者结合进行验证的方法来提供软件授权。由于所述软件授权文件具有排斥与其他软件授权文件共存一个终端的属性,防止了软件授权文件被复制到其它终端上,使得每个终端上的软件只能在该终端上使用,解决了目前用户可以将一个终端上的软件复制到另一个终端上,而将多余的软件和硬件加密装置给其他用户使用,造成软件授权不准确的问题。本发明实施例提供的技术方案能够对分布式软件系统进行准确无误地软件授权。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的软件授权的方法流程图;

图2为本发明另一个实施例提供的软件授权的方法流程图;

图3为本发明另一个实施例提供的软件授权的方法流程图中步骤205的方法流程图;

图4为本发明实施例提供的软件授权的装置结构示意图一;

图5为本发明实施例提供的软件授权的装置中第一生成单元401的结构示意图;

图6为本发明实施例提供的软件授权的装置结构示意图二;

图7为本发明实施例提供的软件授权的装置中验证单元402的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了解决目前用户可以将一个终端上的软件复制到另一个终端上,而将多余的软件和硬件加密装置给其他用户使用,造成软件授权不准确的问题,本发明实施例提供一种软件授权的方法和装置。

如图1所示,本发明实施例提供的软件授权的方法,包括:

步骤101,为安装软件的终端生成软件授权文件,所述任一软件授权文件具有排斥与其他软件授权文件共存一个终端的属性;

步骤102,在运行所安装的软件之前,对所述软件授权文件和预先设置的硬件加密装置信息进行验证。

本发明实施例提供的软件授权的方法,通过对软件授权文件和硬件加密装置二者结合进行验证的方法来提供软件授权。由于所述软件授权文件具有排斥与其他软件授权文件共存一个终端的属性,防止了软件授权文件被复制到其它终端上,使得每个终端上的软件只能在该终端上使用,解决了目前用户可以将一个终端上的软件复制到另一个终端上,而将多余的软件和硬件加密装置给其他用户使用,造成软件授权不准确的问题。本发明实施例提供的技术方案能够对分布式软件系统进行准确无误地软件授权。

为了使本领域技术人员能够更清楚地理解本发明实施例提供的技术方案,下面通过具体的实施例,对本发明另一个实施例提供的软件授权的方法进行详细说明。

如图2所示,本发明另一个实施例提供的软件授权的方法,包括:

步骤201,为分布式软件系统中每个终端上的一个以上软件分别设置唯一的标识;

在本实施例中,以一个分布式软件系统中有三个终端为例,三个终端分别被称作终端1、终端2和终端3。在终端1上安装有两个软件,给这两个软件分别设置唯一的标识为A、B;在终端2上安装有一个软件,给该软件设置唯一的标识为C;在终端3上安装有三个软件,给这三个软件分别设置唯一的标识为D、E、F。其中,所述软件在终端上的安装个数可根据用户意愿合理部署,例如,如果软件占用资源较大,可以在一个终端上只安装这一个软件,以提高终端的处理速度;也可以将几个占用资源较小的软件一起安装在一个终端上,视用户购买的软件的具体情况而定。

步骤202,为所述每个终端设置硬件加密装置信息;

在本实施例中,硬件加密装置可以是目前常用的加密狗,也可以是其它的硬件加密装置。例如,为终端1、终端2、终端3分别分配一个硬件加密装置,在所述三个硬件加密装置中分别写入相同的硬件识别序列号,或者是其它相同的硬件信息。假设此硬件识别序列号为111,则所述三个终端都有一个硬件识别序列号为111的硬件加密装置。

步骤203,根据所述标识和所述硬件加密装置信息为所述终端生成软件授权文件;

在本实施例中,三个终端对应三个不同的软件授权文件,每个终端对应的软件授权文件是根据该终端对应的硬件加密装置信息和在该终端上安装的软件的标识来生成的。

优选地,所述软件授权文件是XML文件格式,所述XML文件由程序自动生成。以生成终端1的软件授权文件1为例来说明,终端1的硬件加密装置的序列号为111,终端1上安装软件的标识为A和B,因此,格式为XML的软件授权文件1中表示所述硬件加密装置的节点的值为111,表示所述软件标识的节点的值为A、B;同理,可以生成软件授权文件2,其中所述各节点的值分别为111,C;软件授权文件3,其中所述各节点的值分别为111,D、E、F。生成的三个软件授权文件分别置于对应的终端上,并且任一软件授权文件具有排斥与其他软件授权文件共存一个终端的属性,即每个终端只能存在一个软件授权文件。例如,三个软件授权文件采用相同的文件名,分别存放在每个终端的指定目录下,假如软件授权文件2被复制到终端1上,会覆盖掉原来合法的软件授权文件1,从而防止了软件授权文件被复制。

步骤204,生成所述软件授权文件的消息摘要;

在本实施例中,为了防止软件授权文件被篡改,生成软件授权文件后,对所述软件授权文件作消息摘要,即对所述软件授权文件采用一定的加密算法进行加密,生成一串长度固定的消息摘要。所述加密算法可以是MD5,或者是SHA1,或者是其它的加密算法。不同的软件授权文件生成的消息摘要不同,将其分别命名为消息摘要1、消息摘要2和消息摘要3,将生成的三个消息摘要分别写入对应的软件授权文件中进行管理。

步骤205,在运行所安装的软件之前,对所述软件授权文件和所述硬件加密装置信息进行验证。

进一步地,如图3所示,下面对如何进行用户验证进行详细描述,以下均以用户运行终端1上标识为A的软件为例来说明:

步骤301,获取所述软件授权文件和所述硬件加密装置信息;

在本实施例中,当用户运行终端1上的软件A时,首先要判断终端1上是否已有硬件加密装置,如果硬件加密装置没有连接到终端1,提示用户没有硬件加密装置,软件不能运行;如果硬件加密装置已连接到终端1,读取所述硬件加密装置的硬件识别序列号。

在本实施例中,获取软件授权文件是通过读取终端1上预先存储在指定目录下的软件授权文件信息来获得的。

步骤302,判断所述软件授权文件是否被修改;

在本实施例中,对步骤301中读取到的软件授权文件信息作消息摘要,与预先存储在该软件授权文件中的消息摘要相比较来判断该软件授权文件信息是否被修改,其中,本步骤对软件授权文件信息作消息摘要所采用的加密算法与步骤204中采用的加密算法相同。例如,如果步骤301中在终端1上读取到的软件授权文件信息是软件授权文件1,对软件授权文件1作消息摘要,与所述软件授权文件1中的消息摘要1相比较,看两者是否相同,如果相同,则软件授权文件1没有被修改,转入步骤303;如果不同,提示用户软件授权文件1被修改,软件不能运行。同理,如果步骤301中在终端1上读取到的软件授权文件信息是软件授权文件2,对软件授权文件2作消息摘要,与所述软件授权文件2中的消息摘要2相比较,看两者是否相同,如果相同,则软件授权文件2没有被修改,转入步骤303;如果不同,提示用户软件授权文件2被修改,软件不能运行。

步骤303,判断所述软件授权文件与所述硬件加密装置信息是否匹配;

在本实施例中,如果步骤301中在终端1上读取到的是本分布式软件系统的硬件加密装置的硬件识别序列号111,假设在终端1上读取到的是没有被修改的软件授权文件1,则所述软件授权文件1中表示硬件加密装置的节点的值是111,与硬件识别序列号111相匹配,转入步骤304;假设步骤301中在终端1上读取到的是没有被修改的软件授权文件2,则所述软件授权文件2中表示硬件加密装置的节点的值是111,与硬件识别序列号111相匹配,转入步骤304;同理,假设步骤301中在终端1上读取到的是没有被修改的软件授权文件3,情况类似,不再赘述。如果步骤301中在终端1上读取到的是其他分布式软件系统的硬件加密装置的硬件识别序列号101,则不管读取到的是哪个软件授权文件,其表示硬件加密装置的节点的值都与所述硬件识别序列号101不匹配,此时,提示用户硬件和软件不匹配,软件不能运行。

步骤304,判断所述软件授权文件中是否包含当前所要运行软件的标识;

在本实施例中,在终端1上读取到的是本分布式软件系统的硬件加密装置的硬件识别序列号111的情况下,假设在终端1上读取到的是没有被修改的软件授权文件1,则所述软件授权文件1中表示软件标识的节点值为A、B,包含了用户所要运行的软件的标识A,验证通过,允许用户运行标识为A的软件;假设在终端1上读取到的是没有被修改的软件授权文件2,则所述软件授权文件2中表示软件标识的节点的值为C,没有包含用户所要运行的软件的标识A,提示用户软件授权文件错误,软件不能运行;同理,假设在终端1上读取到的是没有被修改的软件授权文件3,则所述软件授权文件3中表示软件标识的节点的值为D、E、F,没有包含用户所要运行的软件的标识A,提示用户软件授权文件错误,软件不能运行。

在本实施例中,可以采用逻辑值0和1来表示软件授权文件中是否包含当前所要运行软件的标识A。当所述逻辑值为0,表示验证不通过,用户不能运行该软件A;反之,用户可以正常运行软件A。

本发明实施例提供的软件授权的方法,通过对软件授权文件和硬件加密装置二者结合进行验证的方法来提供软件授权。由于所述软件授权文件具有排斥与其他软件授权文

件共存一个终端的属性,防止了软件授权文件被复制到其它终端上,使得每个终端上的软件只能在该终端上使用,解决了目前用户可以将一个终端上的软件复制到另一个终端上,而将多余的软件和硬件加密装置给其他用户使用,造成软件授权不准确的问题。本发明实施例提供的技术方案能够对分布式软件系统进行准确无误地软件授权。

如图4所示,本发明实施例还提供一种软件授权的装置,包括:

第一生成单元401,用于为安装软件的终端生成软件授权文件,所述任一软件授权文件具有排斥与其他软件授权文件共存一个终端的属性,其具体的实现方法可以参见如图2所示的步骤201~203所述,此处不再赘述。

验证单元402,用于在运行所安装的软件之前,对由所述第一生成单元401生成的软件授权文件和预先设置的硬件加密装置信息进行验证,其具体的实现方法可以参见如图3所示的步骤301~304所述,此处不再赘述。

进一步地,如图5所示,所述第一生成单元401包括:

设置单元4011,用于为所述终端上安装的一个以上软件分别设置唯一的标识;

第一生成子单元4012,用于根据由所述设置单元4011设置的标识和预先设置的硬件加密装置信息为所述终端生成软件授权文件。

进一步地,如图6所示,本发明实施例提供的软件授权的装置,还包括:

第二生成单元403,用于生成由所述第一生成单元401生成的软件授权文件的消息摘要,其具体的实现方法可以参见如图2所示的步骤204所述,此处不再赘述。

进一步地,如图7所示,所述验证单元402包括:

获取单元4021,用于获取由所述第一生成单元401生成的软件授权文件和所述硬件加密装置信息;

第三判断单元4025,用于判断所述软件授权文件是否被修改;

第一判断单元4022,用于判断所述软件授权文件与所述硬件加密装置信息是否匹配;

第二判断单元4023,用于判断所述软件授权文件中是否包含当前所要运行软件的标识;

输出单元4024,用于输出由所述第一判断单元和所述第二判断单元的判断结果。

本发明实施例提供的软件授权的装置,通过对软件授权文件和硬件加密装置二者结合进行验证的方法来提供软件授权。由于所述软件授权文件具有排斥与其他软件授权文件共存一个终端的属性,防止了软件授权文件被复制到其它终端上,使得每个终端上的软件只能在该终端上使用,解决了目前用户可以将一个终端上的软件复制到另一个终端上,而将多余的软件和硬件加密装置给其他用户使用,造成软件授权不准确的问题。本发明实施例提供的技术方案能够对分布式软件系统进行准确无误地软件授权。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于计算机可读存储介质中,如ROM/RAM、磁碟或光盘等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

图1
图2

图3
图4
图5

图6
图7