软件许可证生成方法及装置与流程

文档序号:12123063阅读:724来源:国知局
软件许可证生成方法及装置与流程

本发明涉及密码学领域,特别是涉及一种软件许可证生成方法及装置。



背景技术:

软件许可证,是用来规定和限制软件用户使用软件(或其源代码)的权利,以及规定软件作者应尽的义务。通常情况下,商业用途的软件产品只有在获得其软件开发者或供应商提供的软件许可证后,才能正常使用,并享受软件开发者或供应商提供的增值服务。

在传统的商业软件许可授权领域,多采用固定格式的文本文件作为软件许可信息的载体对软件进行授权,当一个软件产品同时有多个产品线时,普遍的做法是为每个软件产品各提供一种格式的软件许可证,例如,某公司有同一个系列的多条产品线,A产品、B产品、C产品,由于各产品之间存在一定的差异性,需要为每个软件产品制作不同格式的软件许可证书,这样不仅为后期的软件许可证书的升级维护带来很大的不便,而且在后期的产品线扩展及产品间的通用性方面,也存在很大的不足。



技术实现要素:

基于此,有必要针对不同软件产品之间需要制作不同格式的软件许可证,不利于后期软件许可证的升级维护问题,提供一种软件许可证生成方法及装置。

为达到发明目的,提供一种软件许可证生成方法,所述方法包括:

获取软件的许可信息,所述许可信息包括所述软件的产品信息和授权信息;

获取软件许可证的数据格式;

根据所述软件的产品信息获取所述软件许可证的版本号;

根据所述许可信息和所述版本号生成所述数据格式的软件许可证,所述软件许可证包括魔数、所述版本号和授权序列号。

在其中一个实施例中,所述版本号包括主版本号和次版本号,所述根据所述软件的产品信息确定所述软件许可证的版本号的步骤包括:

判断所述软件是否为更新产品;

若所述软件不是更新产品,则根据所述软件的产品信息分配所述软件许可证的版本号;

若所述软件是更新产品,则获取所述软件的原有软件产品软件许可证的主版本号和次版本号,并根据所述软件的产品信息中的更新信息、所述软件的原有软件产品的软件许可证的主版本号和次版本号,确定所述软件的软件许可证的主版本号和次版本号。

在其中一个实施例中,所述许可信息还包括被许可客户的客户信息,所述客户信息包括软件安装环境和客户标识信息。

在其中一个实施例中,所述软件许可证还包括扩展属性域,所述扩展属性域包括数据域,所述数据域用于存储所述产品信息、所述授权信息、所述软件安装环境信息和所述客户标识信息的其中一种或任意组合。

在其中一个实施例中,所述软件许可证还包括加密数据域,所述加密数据域用于存储加密后的所述产品信息、所述授权信息、所述软件安装环境信息和所述客户标识信息的其中一种或任意组合。

在其中一个实施例中,所述软件许可证还包括签名数据域,所述签名数据域用于存储执行数字签名后的所述产品信息、所述授权信息、所述软件安装环境信息和所述客户标识信息的其中一种或任意组合。

本发明所提供的软件许可证生成方法,能够根据软件的产品信息确定软件许可证的版本号,使得不同的软件产品之间能够根据软件产品之间的关联或软件产品自身的更新情况,灵活的确定软件许可证的版本号,使得相同产品线的软件之间的许可证可以灵活扩展,方便后续的许可证的维护升级。

在其中一个实施例中,本发明所提供的软件许可证生成方法,通过将软件许可证的版本号分为主版本号和次版本号,其中主版本号用于软件的更新变化较大的情况,而次版本号用于软件的更新变化较小的情况,进一步提高了软件许可证的可扩展性,方便后续的许可证的维护升级。

本发明还提供一种软件许可证生成装置,包括:

许可信息获取模块,用于获取软件的许可信息,所述许可信息包括所述软件的产品信息和授权信息;

数据格式确定模块,用于确定软件许可证的数据格式;

版本号确定模块,用于根据所述软件的产品信息获取所述软件许可证的版本号;

许可证生成模块,用于根据所述许可信息和所述版本号生成所述数据格式的软件许可证,所述软件许可证包括魔数、所述版本号和授权序列号。

在其中一个实施例中,所述版本号包括主版本号和次版本号,所述版本号确定模块包括:

判断单元,用于判断所述软件是否为更新产品;

版本号分配单元,用于当判断所述软件不是更新产品时,根据所述软件的产品信息分配所述软件许可证的主版本号和次版本号;

版本号更新单元,用于当判断所述软件是更新产品时,获取所述软件的原有软件产品软件许可证的主版本号和次版本号,并根据所述软件的产品信息中的更新信息、所述软件的原有软件产品的软件许可证的主版本号和次版本号,确定所述软件的软件许可证的主版本号和次版本号。

在其中一个实施例中,所述软件的许可信息还包括被许可客户的客户信息,所述客户信息包括软件安装环境信息和客户标识信息。

在其中一个实施例中,所述许可证生成模块根据所述许可信息生成的所述数据格式的软件许可证还包括扩展属性域,所述扩展属性域包括数据域;所述许可证生成模块,还包括:

扩展属性域生成单元,用于存储所述产品信息、所述授权信息、所述软件安装环境信息和所述客户标识信息的其中一种或任意组合。

在其中一个实施例中,所述许可证生成模块根据所述许可信息生成的所述数据格式的软件许可证还包括加密数据域;所述许可证生成模块,还包括:

加密数据域生成单元,用于存储加密后的所述产品信息、所述授权信息、所述软件安装环境信息和所述客户标识信息的其中一种或任意组合。

在其中一个实施例中,所述许可证生成模块根据所述许可信息生成的所述数据格式的软件许可证还包括签名数据域;所述许可证生成模块,还包括:

签名数据域生成单元,用于存储执行数字签名后的所述产品信息、所述授权信息、所述软件安装环境信息和所述客户标识信息的其中一种或任意组合。

本发明所提供的软件许可证生成装置,能够根据软件的产品信息确定软件许可证的版本号,并提供多种软件许可证的数据格式可供选择,使得不同的软件产品之间能够根据软件产品之间的关联或软件产品自身的更新情况,灵活的确定软件许可证的版本号,使得相同产品线的软件之间的许可证可以灵活扩展,方便后续的许可证的维护升级。

在其中一个实施例中,本发明所提供的软件许可证生成装置,通过将软件许可证的版本号分为主版本号和次版本号,其中主版本号用于软件的更新变化较大的情况,而次版本号用于软件的更新变化较小的情况,进一步提高了软件许可证的可扩展性,方便后续的许可证的维护升级。

附图说明

图1为一个实施例中的软件许可证生成方法的流程图;

图2为另一个实施例中的软件许可证生成方法的流程图;

图3为又一个实施例中的软件许可证生成方法的流程图;

图4为再一个实施例中的软件许可证生成方法的流程图;

图5为再一个实施例中的软件许可证生成方法的流程图;

图6为一个实施例中的软件许可证生成装置的结构图;

图7为另一个实施例中的软件许可证生成装置的结构图;

图8为又一个实施例中的软件许可证生成过程示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明软件许可证生成方法及装置进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

图1为一个实施例中的软件许可证生成方法的流程图,如图1为所示的软件许可证生成方法包括:

步骤S10,获取软件的许可信息,所述许可信息包括所述软件的产品信息和授权信息。

具体的,所述软件的产品信息包括制作者、供应商、软件产品名称等需要加入软件许可证中的其中一种或任意组合的内容。

所述授权信息,包括授权使用时限、软件使用范围(如授权使用区域,授权客户范围等)等需要加入软件许可证中的其中一种或任意组合的内容。

步骤S20,确定所需的软件许可证的数据格式。

具体的,所述的数据格式为软件许可证中的各种信息数据在软件许可证中的排列显示方式等格式,例如数据格式规定了软件许可证的第一条信息数据为软件产品名称,则所述数据格式的第一条信息的位置必须填入文本或指定格式的软件产品名称数据。

在一个实施例中,数据格式具有默认模版和自定义模版,可将所述的许可信息按照默认模版或自定义模版所规定形式进行灵活的体现。

步骤S30,根据所述软件的产品信息获取所述软件许可证的版本号。

具体的,根据软件的产品信息确定所述软件许可证的版本号,可以将同一个产品线的多个软件产品,或分属于不同生产线的相互之间有关联的软件产品,或相同软件产品的更新、升级等,按照预设的方式进行版本号的定义。

步骤S40,根据所述许可信息和所述版本号生成所述数据格式的软件许可证,所述软件许可证包括魔数、所述版本号和授权序列号。

具体的,为使生成的许可证的使用范围更加灵活,本发明可根据所述许可信息生成默认模版或自定义模版的数据格式的软件许可证,所述数据格式的默认模版中,各种许可信息的格式和排列组合均是通用的格式,只需根据默认的格式添加信息即可;所述数据格式的自定义模版,则可以根据产品的特征或实际的需求,进行许可信息的格式和排列的自定义,以使生成的软件许可证更加的符合产品的特征或满足特定的需求。

所述软件许可证包括魔数、版本号和授权序列号。

其中,魔数是位于每个软件许可证最前段的标识,用于确定该软件许可证的颁发者。在使用软件许可证时,首先对魔数进行解析,若魔数确定的颁发者不准确,则停止进一步的解析。

为方便理解,给出魔数(MagicNumber)的一个具体例子为:

MagicNumber:='V''L',(0x564C)

在该例子中,V为许可证的颁发者的缩写,L为License的缩写,(0x564C)为VL的ASCII编码。

其中,版本号(Version Number)是版本的标识号,使用户了解所使用的软件是否为最新的版本以及它所提供的功能等。一般而言,每一个版本号可以分为主版本号与次版本号两部分,例如V4.0,主版本号是4,次版本号为0。

为方便理解,给出版本号(Version)的一个具体例子为:

Version:=MajorVersionMinorVersion

MajorVersion:=VersionNumber

MinorVersion:=VersionNumber

VersionNumber:=Int32

在该例子中,版本号由主版本号和次版本号组合而成,紧随魔数后的8个字节确定了主版本号和次版本号,主版本号和次版本号分别使用一个Int32(小端)来存储。

其中,授权序列号为经过加密产生的唯一的标识码,通常使用JDK提供的UUID工具产生所述的授权序列号,用于保证授权序列号的唯一性。

为方便理解,给出授权序列号(SerialNumber)的一个具体的例子为:

SerialNumber:=UUID(Byte8*36),

在该例子中,使用36个字节用来存放License的编号,所述License的编号是授权序列号。

本实施例所提供的软件许可证生成方法,可通过提供默认模版或自定义模版的方式,来提供灵活的许可证的数据格式,并可根据软件产品的产品信息,根据需要灵活的设定版本号,以使最后生成的软件许可证便于产品的扩容,以及许可证后期的升级维护。

图2为另一个实施例中的软件许可证生成方法的流程图,如图2所示的软件许可证生成方法包括:

步骤S10,获取软件的许可信息,所述许可信息包括所述软件的产品信息和授权信息。

步骤S20,确定软件许可证的数据格式。

步骤S31,根据所述产品信息判断所述软件是否为更新产品,若否,接步骤S32,若是,跳至步骤S32’。

具体的,步骤S10获取的产品信息中通常包括产品的版本信息,当软件产品为更新产品时,其版本信息与其更新前的产品的版本信息之间具有连续性;当软件产品为新产品时,一般在产品版本信息也会从1.0等开始编号,即从软件产品的产品信息中可以判断所述软件是否为更新产品。

当一个软件产品为新产品时,不存在和软件产品的原有产品的比较,该软件产品不是更新产品。

当一个软件产品不是新产品时,软件产品的更新包括在原有产品的基础上所进行的部分功能的完善等较小的软件产品的改动、和当软件产品的功能的实现方式存在较大变动时对软件产品所进行的升级。根据实际的需求,对软件产品的更新进行自行定义即可。

步骤S32,根据所述软件的产品信息确定所述软件许可证的主版本号和次版本号。

当软件产品为新产品时,可以根据所述新产品的长期发展规划进行版本号的设定。

所述的主版本号和次版本号,可以自行规定版本号字节长度及数字或字母的组成方式等。

步骤S32’,根据所述软件的产品信息中的更新信息、所述软件更新前产品的软件许可证的主版本号和次版本号,确定所述软件的软件许可证的主版本号和次版本号。

具体的,如软件产品的更新改动较小,可只对次版本号进行变更;当软件产品的更新改动较大,再对主版本号进行变更,以便与产品进行同步,利于许可证的后期维护。

在一个实施例中,为方便对所述软件许可证进行后期的管理和维护,根据软件产品更新的特征,可将更新的软件产品的软件许可证的次版本号进行变动,主版本号不动;将升级的软件产品的软件许可证的主版本号进行变动,次版本号不动。

步骤S40,根据所述许可信息生成所述数据格式的软件许可证,所述软件许可证包括魔数、所述版本号和授权序列号。

本实施例所提供的软件许可证生成方法,根据软件产品的产品信息,可对新软件产品、较小改动的更新软件产品和较大改动的升级软件产品,根据需要灵活的设定主版本号和次版本号来体现,以使最后生成的软件许可证便于产品的扩容,以及许可证后期的升级维护。

图3为又一个实施例中的软件许可证生成方法的流程图,如图3所示的软件许可证生成方法包括:

步骤S10a,获取软件的许可信息,所述许可信息包括所述软件的产品信息、授权信息和客户信息,所述客户信息包括软件安装环境和客户标识信息。

具体的,所述软件安装环境为运行软件的操作系统环境等安装环境信息,所述客户标识信息,包括客户名称、项目名称、电脑终端标识、操作者标识等信息,可以根据需要灵活设定。

步骤S20a,确定软件许可证的数据格式。

步骤S30a,根据所述软件的产品信息确定所述软件许可证的版本号。

步骤S40a,根据所述许可信息生成所述数据格式的软件许可证,所述软件许可证可以包括魔数、所述版本号、授权序列号、扩展属性域、加密数据域和签名数据域。

具体的,所述扩展属性域包括数据域,将所述产品信息、所述授权信息、所述软件安装环境信息和所述客户标识信息的其中一种或任意组合存储于所述数据域。在对选定的授权信息进行存储时,需要按照选定的默认模版或自定义模版规定的格式,将特定的信息填入特定的扩展属性域的数据域中,以生成符合默认模版或自定义模版格式的数据域。

将所述产品信息、所述授权信息、所述软件安装环境信息和所述客户标识信息的其中一种或任意组合加密后存储于所述加密数据域。所述的将授权信息加密的过程,可将授权信息存储于加密数据域的过程中一并完成,也可将授权信息利用外部服务程序执行加密后,再根据加密数据域的格式将加密后的授权信息直接进行存储。根据需求自行设定即可。

将所述产品信息、所述授权信息、所述软件安装环境信息和所述客户标识信息的其中一种或任意组合存储执行数字签名后存储于所述签名数据域。与加密数据域相同,所述的签名数据域,可将选定的授权信息在存储于签名数据域的过程中,一并执行完数字签名过程后存储,也可利用外部服务程序完成数字签名后,再按照签名数据域的格式将执行了数字签名后的数据进行存储。

上述扩展属性域、加密数据域和签名数据域可以任意组合使用。

所述数据域中的存储内容是非加密的可公开信息,如产品信息等,所述加密数据域中的存储内容是加密的不可公开信息,如授权时限或授权范围等信息,所述签名数据域中的存储内容也是加密过,且需要认证的不可公开的信息。

进一步的,所述的加密信息可采用自由选定公私钥对的方式,达到更高的保密性能。

为更好的表达上述内容,给出扩展属性域(popertiesPhrase)的一个具体的例子为:

popertiesPhrase:=PropertiesPhraseDataLengthPropertiesHeadPropertyItem*

PropertiesPhraseDataLength:=Int32

PropertiesHead:=PropertiesCount

PropertiesCount:=Int32

PropertyItem:=PropertyKeyEntryPropertyValueEntry

PropertyKeyEntry:=StringEntry

StringEntry:=StringLength Byte8*

StringLength:=Int32

PropertyValueEntry:=StringEntry

StringEntry:=StringLength Byte8*

StringLength:=Int32

其中,扩展属性域(popertiesPhrase)由扩展属性域数据长度(PropertiesPhraseDataLength)、属性域头部(PropertiesHead)和0到多个数据域(PropertyItem)组成。扩展属性域数据长度(PropertiesPhraseDataLength)使用一个Int32来存放扩展属性域整体数据的字节长度,属性域头部(PropertiesHead)使用一个Int32来存放数据域属性成员的个数(PropertiesCount

);数据域由0或多个属性成员(PropertyItem)组成,每个属性成员包含属性域关键字实体(PropertyKeyEntry)和属性域关键字对应值的实体PropertyValueEntry,PropertyKeyEntry和PropertyValueEntry实体都使用了一个Int32来存放实体的字节长度,后面紧跟的是实体的字节流。

给出加密数据域(EncryptedLicensePharse)的一个具体的例子为:

EncryptedLicensePharse:=EncryptedDataLength Byte8*

EncryptedDataLength:=Int32

在该例子中,首先给出加密数据域(EncryptedLicensePharse)为8比特的加密数据字节长度(EncryptedDataLength Byte8*),并使用一个Int32来存放加密数据域的字节长度(EncryptedDataLength),紧接着后面存放的是加密数据的字节数据。

给出签名数据域(SignLicensePharse)的一个具体的例子为:

SignLicensePharse:=SignDataLength Byte8*

SignLicensePharse:=Int32

在该例子中,首先给出签名数据域(SignLicensePharse)为8比特的签名数据字节长度(SignDataLength Byte8*),并使用一个Int32来存放签名数据域的字节长度(SignLicensePharse),紧接着后面存放的是签名数据的字节数据。

本实施例所提供的软件许可证生成方法,将许可信息中产品信息、所述授权信息、所述软件安装环境信息和所述客户标识信息的其中一种或任意组合,根据需求分别存储于扩展属性域、加密数据域和签名数据域中,所述扩展属性域中的数据可以根据需求任意添加及扩展,存储的数据可以为公开数据或加密后的数据,使得许可证存储的数据内容灵活多变;所述加密数据域,提供更加安全的数据加密存储,使得许可证的数据更加安全;所述签名数据域中的数据使得许可证中存储的数据能够直接进行签名验证,进一步提高了所述许可证中数据的安全性。

图4为再一个实施例中的软件许可证生成方法的流程图,如图4所示的软件许可证生成方法包括:

步骤S11,获取软件的产品信息和授权信息。

步骤S12,判断是否需要客户信息,若是,接步骤S13,若否,跳至步骤S16。

步骤S13,判断是否需要软件安装环境信息,若是接步骤S13’,若否,跳至步骤S14。

步骤S13’,获取软件安装环境信息。

步骤S14,获取客户标识信息。

步骤S15,判断是否需要合并所述软件安装环境信息和客户标识信息的数据,若是,接步骤S15’,若否,接步骤S16。

步骤S15’,合并所述软件安装环境信息和客户标识信息的数据。

具体的,将获取到的各种信息进行数据合并,以使获取的信息变为机器可以辨认的数据。

步骤S16,校验所述数据的合法性,输出校

验结果。

具体的,在默认模版和自定义模版中,为更好的使软件许可证具有统一性,不同模版的固定位置需要放置固定的预设信息数据,当获取到的数据不是按照预设的固定位置输入时,校验为数据不合法。

步骤S17,判断所述数据的校验结果是否合法,若是,接步骤S18,若否,返回步骤S11。

步骤S18,生成许可信息。

本实施例所提供的软件许可证生成方法,在获取产品信息和客户信息并生成许可信息的过程中,通过对输入数据的合法性进行验证,以使最后生成的软件许可证格式统一,便于产品的扩容,以及许可证后期的升级维护。

图5为再一个实施例中的软件许可证生成方法的流程图,如图5所示的软件许可证生成方法包括:

步骤S40,获取软件产品的许可信息和版本号。

步骤S41,判断是否选择自定义模版,若是,接步骤S42,若否,跳至步骤S44。

步骤S42,判断是否支持所述自定义模版的生成,若是,跳至步骤S44,若否,接步骤S43。

步骤S43,使用默认模版。

步骤S44,判断是否包括扩展属性域,若是,接步骤S45。若否,跳至步骤S46。

步骤S45,确定扩展属性域的存储内容。

步骤S46,判断是否包括加密数据域,若是,接步骤S47,若否,跳至步骤S48。

步骤S47,确定加密数据域的存储内容。

步骤S48,判断是否包括签名数据域,若是,接步骤S49,若否,跳至步骤S49’。

步骤S49,确定签名数据域的存储内容。

步骤S49’,生成软件许可证。

具体的,在最后生成软件许可证的过程中,可加入法律声明等信息。

本实施例所提供的软件许可证生成方法,将许可信息中产品信息、所述授权信息、所述软件安装环境信息和所述客户标识信息的其中一种或任意组合,根据需求分别存储于扩展属性域、加密数据域和签名数据域中,以使最后生成的软件许可证便于产品的扩容,以及许可证后期的升级维护。

以下为本发明所提供的软件许可证生成装置的结构示意图,各实施例所提供的装置是本发明所提供的发送方法所对应的装置,本发明中所述的方法所对应的各实施例的详细描述内容均相应的适用于所对应的装置,不再赘述。

图6为一个实施例中的软件许可证生成装置的结构图,如图6所示的软件许可证生成装置包括:

许可信息获取模块10,用于获取软件的许可信息,所述许可信息包括所述软件的产品信息和授权信息。在一个实施例中,许可信息获取模块10用于获取的软件的许可信息还可进一步包括被许可客户的客户信息,所述客户信息包括软件安装环境信息和客户标识信息。

数据格式确定模块20,用于确定软件许可证的数据格式。具体的,所述数据格式可以包括默认模版格式或自定义模版格式。

版本号确定模块30,用于根据所述软件的产品信息获取所述软件许可证的版本号。所述版本号可以包括主版本号和次版本号。

具体的,所述版本号确定模块30用于判断所述软件是否为更新产品,若否,则根据所述软件的产品信息分配所述软件许可证的主版本号和次版本号,若是,则获取原有软件产品软件许可证的主版本号和次版本号,并根据所述软件的产品信息中的更新信息、原有软件产品的软件许可证的主版本号和次版本号,确定所述软件的软件许可证的主版本号和次版本号。

许可证生成模块40,用于根据所述许可信息和所述版本号生成所述数据格式的软件许可证,所述软件许可证包括魔数、所述版本号和授权序列号。

本实施例所提供的软件许可证生成装置,根据软件产品的产品信息,可对新软件产品、较小改动的更新软件产品和较大改动的升级软件产品,根据需要灵活的设定主版本号和次版本号来体现,以使最后生成的软件许可证便于产品的扩容,以及许可证后期的升级维护。

图7为另一个实施例中的软件许可证生成装置的结构图,如图7所示的软件许可证生成装置,包括:

许可信息获取模块10,用于获取软件的许可信息,所述许可信息包括所述软件的产品信息和授权信息。在一个实施例中,许可信息获取模块10用于获取的软件的许可信息还可进一步包括被许可客户的客户信息,所述客户信息包括软件安装环境信息和客户标识信息。

数据格式确定模块20,用于确定软件许可证的数据格式。数据格式确定模块20用于确定的软件许可证的数据格式可以包括默认模版格式和自定义模版格式。

版本号确定模块30,用于判断所述软件是否为更新产品。其中,版本号可以包括主版本号和次版本号,版本号确定模块30包括:

判断单元,用于判断所述软件是否为更新产品;

版本号分配单元,用于当判断所述软件不是更新产品时,根据所述软件的产品信息分配所述软件许可证的主版本号和次版本号;

版本号更新单元,用于当判断所述软件是更新产品时,获取所述软件的原有软件产品软件许可证的主版本号和次版本号,并根据所述软件的产品信息中的更新信息、所述软件的原有软件产品的软件许可证的主版本号和次版本号,确定所述软件的软件许可证的主版本号和次版本号。

许可证生成模块40,用于根据所述许可信息生成所述数据格式的软件许可证,所述软件许可证包括魔数、所述版本号和授权序列号。

在一个实施例中,许可证生成模块40根据所述许可信息生成的所述数据格式的软件许可证,还可以进一步包括扩展属性域。相应地,软件许可证生成装置进一步包括扩展属性域生成单元41,用于存储所述产品信息、所述授权信息、所述软件安装环境信息和所述客户标识信息的其中一种或任意组合。

在一个实施例中,许可证生成模块40根据所述许可信息生成的所述数据格式的软件许可证,还可以进一步包括加密数据域。相应地,软件许可证生成装置进一步包括加密数据域生成单元42,用于存储加密后的所述产品信息、所述授权信息、所述软件安装环境信息和所述客户标识信息的其中一种或任意组合。

在一个实施例中,许可证生成模块40根据所述许可信息生成的所述数据格式的软件许可证,还可以进一步包括签名数据域。相应地,软件许可证生成装置进一步包括签名数据域生成单元43,用于存储执行数字签名后的所述产品信息、所述授权信息、所述软件安装环境信息和所述客户标识信息的其中一种或任意组合。

本实施例所提供的软件许可证生成装置,将许可信息中产品信息、所述授权信息、所述软件安装环境信息和所述客户标识信息的其中一种或任意组合,根据需求分别存储于扩展属性域、加密数据域和签名数据域中,以使最后生成的软件许可证便于产品的扩容,以及许可证后期的升级维护。

由于本发明实施例所提供的软件许可证生成装置,解决问题的原理与前述的软件许可证生成方法相似,因此软件许可证生成装置的实施可以参见前述方法的实施,重复之处不再赘述。

图8为又一个实施例中的软件许可证生成过程示意图,如图8所示的软件许可证生成过程包括:

步骤100,获取许可信息。

具体的,所述许可信息包括所述软件的产品信息和授权信息,还包括被许可客户的客户信息包括软件安装环境和客户标识信息,可根据软件的授权的需求获取上述许可信息其中的一部分或全部。

步骤200,将所述许可信息按照选择好的数据格式内容进行数据合并。

具体的,可以利用默认模版,也可以利用自定义模版,将上述获取到的许可信息按照默认模版或自定义模版规定的数据格式进行输入。如图中所示实施例中,分别提供了Properties和XML两种数据格式的模版,例如其中Properties数据格式的模版中,Key1=Value1等,为该模版规定好的需要输入的许可信息的关键值名称和内容,根据模版的定义,不同的信息具有不同的数据类型要求,需要按照模版规定的信息关键值的顺序和格式输入,才能保证后续的数据验证通过。XML格式的版本与Properties相同,不再赘述。

步骤300,将所述合并后的数据生成具有魔数、授权序列号、版本号,扩展属性域、加密数据域和签名数据域的软件许可证。

具体的,步骤200输入的许可信息输入了自定义模版或默认模版后,在本步骤中将步骤200的信息,按照数据是否需要加密等,分别封装到许可证的扩展属性域(PropertiesPhrase)、加密数据域(EncryptedLicensePharse)和签名数据域(SignLicensePharse)中,与魔数(MagicNumber)、版本号(Version)和授权序列号(SerialNumber)一起,组成软件许可证。

步骤400,加入法律声明后,生成最后的软件许可证。

具体的,再将步骤300生成的软件许可证,分别加入法律声明和密文部分开始信息和密文部分结束信息,组成最终的完整的软件许可证。

本实施例所提供的软件许可证生成装置,将许可信息中产品信息、所述授权信息、所述软件安装环境信息和所述客户标识信息的其中一种或任意组合,根据需求分别存储于扩展属性域、加密数据域和签名数据域中,以使最后生成的软件许可证便于产品的扩容,以及许可证后期的升级维护。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1