一种授权方法及系统与流程

文档序号:12729078阅读:269来源:国知局
一种授权方法及系统与流程

本发明涉及信息安全领域,尤其涉及一种授权方法及系统。



背景技术:

授权码是产品生产厂商提供给软件开发商,并由软件开发商提供给用户的一种电子形式的产品。

其中,产品生产厂商将授权码提供给软件开发商的过程,通常是产品生产厂商与软件开发商预先商定授权码的数量,并将每个授权码写至一把加密锁中,最终由产品生产厂商提供给软件开发商商定数量的加密锁;即,产品生产厂商一次性的将所有含有授权码的加密锁实物提供给软件开发商;然而,在该方式中,当产品生产厂商与软件开发商商定的授权码的数量较多时,对于软件开发商而言,对大量的加密锁实物进行管理存在诸多不便,例如,容易出现加密锁丢失,从而造成授权码丢失的现象;因此不利于软件开发商对授权码进行管理。



技术实现要素:

为解决现有技术的不足,本发明提供一种授权方法及系统。

一方面,本发明提供了一种授权方法,包括:

步骤S1:管理平台根据自身保存的授权码自增编号、企业标识和接收到的第一用户输入的产品标识生成获取授权码请求,发送所述获取授权码请求给服务平台;

步骤S2:所述服务平台解析所述获取授权码请求得到所述授权码自增编号、所述企业标识和所述产品标识,根据所述授权码自增编号和所述产品标识生成授权码,根据所述授权码和所述企业标识生成认证授权码请求,发送所述认证授权码请求给授权中心;

步骤S3:所述授权中心解析所述认证授权码请求得到所述授权码和所述企业标识,判断所述企业标识对应的剩余认证次数是否有效,是则更新所述剩余认证次数,并根据所述授权码计算出授权码校验值,根据所述授权码校验值生成认证成功响应,发送所述认证成功响应给所述服务平台,执行步骤S4;否则通过所述服务平台返回失败响应给所述管理平台,结束;

步骤S4:所述服务平台根据所述认证成功响应中含有的所述授权码校验值和自身生成的所述授权码组织获取成功响应,发送所述获取成功响应给所述管理平台;

步骤S5:所述管理平台解析所述获取成功响应得到所述授权码和所述授权码校验值,将所述授权码和所述授权码校验值对应保存,结束。

可选地,所述步骤S1中,所述管理平台根据自身保存的授权码自增编号、企业标识和接收到的第一用户输入的产品标识生成获取授权码请求,具体为:

管理平台根据自身保存的企业标识、管理员标识、授权码自增编号,及接收到的第一用户输入的产品标识、模板标识生成明文获取授权码请求,根据预设编码算法对所述明文获取授权码请求编码得到密文获取授权码请求,根据第一预设算法对所述明文获取授权码请求计算出第一校验和,根据所述密文获取授权码请求和所述第一校验和生成获取授权码请求。

可选地,所述步骤S2之前,还包括:

步骤A:所述服务平台验证所述获取授权码请求是否合法,是则执行步骤S2,否则返回失败响应给所述管理平台,所述管理平台显示请求失败信息,结束。

可选地,所述步骤A中,所述服务平台验证所述获取授权码请求是否合法,具体为:

执行以下操作中的至少一项:

所述服务平台验证所述获取授权码请求是否正确;

所述服务平台验证所述获取授权码请求中含有的企业标识是否有效;

所述服务平台验证所述获取授权码请求中含有的管理员标识是否有效;

所述服务平台验证所述获取授权码请求中含有的产品标识是否有效;

所述服务平台验证所述获取授权码请求中含有的模板标识是否有效;

如验证结果均为是,则判定所述获取授权码请求合法;否则判定所述获取授权码请求不合法。

可选地,所述步骤S2中,所述根据所述授权码自增编号和所述产品标识生成授权码,具体包括:

步骤1-1:所述服务平台将所述授权码自增编号转换得到第一预设长度的第一字符串;

步骤1-2:所述服务平台生成第二预设长度的随机数;

步骤1-3:所述服务平台根据所述第一字符串和所述随机数生成第二字符串;

步骤1-4:所述服务平台根据所述第一字符串、所述随机数和所述产品标识计算校验字符;

步骤1-5:所述服务平台根据所述第二字符串和所述校验字符生成授权码。

可选地,所述步骤1-3,具体为:

所述服务平台将所述第一字符串的每一位上的数据分别穿插到所述随机数的预设位之后得到第二字符串;

或者,

所述服务平台将所述第一字符串的每一位上的数据分别随机穿插到所述随机数中得到第二字符串。

可选地,所述步骤1-4,具体为:

所述服务平台从所述随机数中读取左起前预设位上的数据,将读取到的数据与所述第一字符串相加求和,将求得到和与所述获取授权码请求中含有的产品标识做取余运算得到余数,将得到的余数转换成预设进制后作为校验字符;

所述步骤1-5,具体为:将所述校验字符添加到所述第二字符串的最右侧得到授权码。

可选地,所述步骤S2中,所述根据所述授权码和所述企业标识生成认证授权码请求,具体为:

所述服务平台根据所述授权码、所述企业标识、所述产品标识及所述获取授权码请求中含有的模板标识和管理员标识生成认证授权码请求。

可选地,所述步骤S3之前,还包括:

步骤B:所述授权中心验证所述认证授权码请求是否合法,是则执行步骤S3,否则通过所述服务平台返回失败响应给所述管理平台,所述管理平台显示请求失败信息,结束。

可选地,所述步骤B中,所述授权中心验证所述认证授权码请求是否合法,具体包括:

执行以下操作中的至少一项:

所述授权中心验证所述认证授权码请求是否正确;

所述授权中心验证所述认证授权码请求中含有的企业标识是否有效;

所述授权中心验证所述认证授权码请求中含有的企业标识对应的企业是否为有效客户;

如验证结果均为是,则判定所述认证授权码请求合法;否则判定所述认证授权码请求不合法。

可选地,所述步骤S3中,所述判断所述企业标识对应的剩余认证次数是否有效,具体为:判断所述企业标识对应的剩余认证次数是否为零,是则判定所述企业标识对应的剩余认证次数无效;否则判定所述企业标识对应的剩余认证次数有效。

可选地,所述步骤S2中,所述根据所述授权码自增编号和所述产品标识生成授权码之后,还包括:

步骤C1:所述服务平台判断授权模式的类型,如为软授权,则根据所述授权码和所述企业标识生成认证授权码请求,发送所述认证授权码请求给授权中心,执行步骤S3;如为硬授权,则根据所述授权码生成认证授权码请求,发送所述认证授权码请求给加密锁,执行步骤C2;

步骤C2:所述加密锁解析所述认证授权码请求得到所述授权码,根据所述授权码计算出授权码校验值,根据所述授权码校验值生成认证成功响应,发送所述认证成功响应给所述服务平台。

可选地,所述步骤C1中,所述服务平台判断授权模式的类型,具体为:

所述服务平台在第一数据库中查找到系统参数表,读取所述系统参数表中授权状态对应的数据,如读取到的数据为第一预设数据,则判定授权模式为软授权;如读取到的数据为第二预设数据,则判定授权模式为硬授权。

可选地,所述步骤C1中,所述根据所述授权码生成认证授权码请求,发送所述认证授权码请求给加密锁,具体为:

所述服务平台将所述授权码和自身IP地址作为参数传入第一函数接口,并调用所述第一函数接口发送认证授权码请求给加密锁;

所述步骤C2中,所述发送所述认证成功响应给所述服务平台,具体为:所述加密锁回调所述第一函数接口发送所述认证成功响应给所述服务平台。

可选地,所述步骤S3之前,还包括:所述授权中心获取所述服务平台的IP地址;

对应地,所述根据所述授权码计算出授权码校验值,具体为:

根据第二预设算法对所述授权码和所述IP地址计算出授权码校验值。

可选地,所述步骤S3中,所述通过所述服务平台返回失败响应给所述管理平台之后,还包括:所述管理平台显示请求失败信息;

所述步骤S5之后,还包括:所述管理平台显示请求成功信息。

可选地,所述步骤S5之后,还包括:所述第一用户将所述授权码提供给客户端,将所述客户端提供给第二用户;

对应地,所述方法,还包括:当所述客户端接收到所述第二用户的触发信息时,执行步骤D1:

步骤D1:所述客户端生成含有所述授权码的操作请求,发送所述操作请求给所述服务平台;

步骤D2:所述服务平台验证接收到的操作请求中含有的所述授权码是否合法,是则执行步骤D3,否则返回错误响应给所述客户端,结束;

步骤D3:所述服务平台根据所述操作请求执行相应操作得到操作结果,将所述操作结果返回给所述客户端。

可选地,所述步骤D1中,所述发送所述操作请求给所述服务平台,具体为:所述客户端调用API中的预设函数接口发送所述操作请求给所述服务平台;

所述步骤D3中,所述将所述操作结果返回给所述客户端,具体为:所述服务平台回调所述API中的预设函数接口将所述操作结果返回给所述客户端。

可选地,所述步骤D2中,所述服务平台验证接收到的操作请求中含有的所述授权码是否合法,具体包括:

执行以下操作中的至少一项:

验证所述授权码的格式是否正确;

验证所述授权码是否有效;

验证所述授权码是否为单服务平台使用;

如验证结果均为是,则判定接收到的操作请求中含有的所述授权码合法;否则判定接收到的操作请求中含有的所述授权码不合法。

可选地,所述验证所述授权码是否为单服务平台使用,具体为:所述服务平台根据第二预设算法对所述授权码和自身IP地址计算出授权码校验值,并在第一数据库中查找所述授权码,读取所述授权码对应的授权码校验值,判断计算得到的授权码校验值与读取到的授权码校验值是否相同,是则判定所述授权码是单服务平台使用,否则判定所述授权码不是单服务平台使用。

另一方面,本发明提供了一种授权系统,包括:管理平台、服务平台和授权中心;

所述管理平台,包括:

保存模块,用于保存授权码自增编号、企业标识;

第一接收模块,用于接收用户输入的产品标识;

第一生成模块,用于根据所述保存模块保存的授权码自增编号、企业标识和所述第一接收模块接收到的用户输入的产品标识生成获取授权码请求;

第一发送模块,用于将所述第一生成模块生成的获取授权码请求发送给所述服务平台;

所述第一接收模块,还用于接收所述授权中心通过所述服务平台返回的失败响应;还用于接收所述服务平台发送来的获取成功响应;

第一解析模块,用于解析所述第一接收模块接收到的获取成功响应得到授权码和授权码校验值;

所述保存模块,还用于将所述第一解析模块得到的授权码和授权码校验值对应保存;

所述服务平台,包括:

第二接收模块,用于接收所述管理平台发送来的获取授权码请求;

第二解析模块,用于解析所述第二接收模块接收到的获取授权码请求得到所述授权码自增编号、所述企业标识和所述产品标识;

第二生成模块,用于根据所述第二解析模块得到的所述授权码自增编号和所述产品标识生成授权码;

第三生成模块,用于根据所述第二生成模块生成的授权码和所述第二解析模块得到的所述产品标识生成认证授权码请求;

第二发送模块,用于将所述第三生成模块生成的认证授权码请求发送给授权中心;

所述第二接收模块,还用于接收所述授权中心发送来的认证成功响应;

组织模块,用于根据所述第二接收模块接收到的认证成功响应和所述第二生成模块生成的授权码组织获取成功响应;

所述第二发送模块,还用于将所述组织模块组织的获取成功响应发送给所述管理平台;

所述授权中心,包括:

第三接收模块,用于接收所述服务平台发送来的认证授权码请求;

第三解析模块,用于解析所述第三接收模块接收到的认证授权码请求得到所述授权码和所述企业标识;

第一判断模块,用于判断所述第三解析模块得到的所述企业标识对应的剩余认证次数是否有效;

更新模块,用于当所述第一判断模块判断出所述第三解析模块得到的所述企业标识对应的剩余认证次数有效时,更新所述剩余认证次数;

第一计算模块,用于所述更新模块更新所述剩余认证次数之后,根据所述第三解析模块得到的所述授权码计算出授权码校验值;

第四生成模块,用于根据所述第一计算模块计算出的授权码校验值生成认证成功响应;

第三发送模块,用于将所述第四生成模块生成的认证成功响应发送给所述服务平台;

所述第三发送模块,还用于当所述第一判断模块判断出所述第三解析模块得到的所述企业标识对应的剩余认证次数无效时,通过所述服务平台返回失败响应给所述管理平台。

可选地,所述第一生成模块,具体用于:

根据所述保存模块保存的企业标识、管理员标识、授权码自增编号,及接收到的第一用户输入的产品标识、模板标识生成明文获取授权码请求,根据预设编码算法对所述明文获取授权码请求编码得到密文获取授权码请求,根据第一预设算法对所述明文获取授权码请求计算出第一校验和,根据所述密文获取授权码请求和所述第一校验和生成获取授权码请求。

可选地,所述服务平台,还包括:第一验证模块;所述管理平台,还包括:显示模块;

所述第一验证模块,用于验证所述第二接收模块接收到的获取授权码请求是否合法;

所述第二解析模块,具体用于:当所述第一验证模块验证所述第二接收模块接收到的获取授权码请求合法时,解析所述第二接收模块接收到的获取授权码请求得到所述授权码自增编号、所述企业标识和所述产品标识;

所述第二发送模块,还用于当所述第一验证模块验证所述第二接收模块接收到的获取授权码请求不合法时,返回失败响应给所述管理平台;

所述第一接收模块,还用于接收所述服务平台返回的失败响应;

所述显示模块,用于当所述第一接收模块接收到所述服务平台返回的失败响应时,显示请求失败信息。

可选地,所述第一验证模块,具体用于:

执行以下操作中的至少一项:

验证所述获取授权码请求是否正确;

验证所述获取授权码请求中含有的企业标识是否有效;

验证所述获取授权码请求中含有的管理员标识是否有效;

验证所述获取授权码请求中含有的产品标识是否有效;

验证所述获取授权码请求中含有的模板标识是否有效;

如验证结果均为是,则判定所述获取授权码请求合法;否则判定所述获取授权码请求不合法。

可选地,所述第一生成模块,具体包括:

第一转换单元,用于将所述授权码自增编号转换得到第一预设长度的第一字符串;

第一生成单元,用于生成第二预设长度的随机数;

第二生成单元,用于根据所述第一转换单元得到的第一字符串和所述第一生成单元生成的随机数生成第二字符串;

计算单元,用于根据所述第一转换单元得到的第一字符串、所述第一生成单元生成的随机数和所述产品标识计算校验字符;

第三生成单元,用于根据所述第二生成单元生成的第二字符串和所述计算单元计算的校验字符生成授权码。

可选地,所述第二生成单元,具体用于:

将所述第一字符串的每一位上的数据分别插入到所述随机数的预设位之后得到第二字符串;

或者,

将所述第一字符串的每一位上的数据分别随机穿插到所述随机数中得到第二字符串。

可选地,所述计算单元,具体用于:

从所述第一生成单元生成的随机数中读取左起前预设位上的数据,将读取到的数据与所述第一字符串相加求和,将求得到和与所述获取产品标识请求中含有的产品标识做取余运算得到余数,将得到的余数转换成预设进制后作为校验字符;

所述第三生成单元,具体用于:

将所述计算单元得到的校验字符添加到所述第二字符串的最右侧得到授权码。

可选地,所述第三生成模块,具体用于:

根据所述第二生成模块生成的授权码、所述第二解析模块得到的所述模板标识和所述产品标识、及所述获取授权码请求中含有的模板标识和管理员标识生成认证授权码请求。

可选地,所述授权中心,还包括:第二验证模块;所述管理平台,还包括:显示模块;

所述第二验证模块,用于验证所述第三接收模块接收到的认证授权码请求是否合法;

所述第三解析模块,具体用于:当所述第二验证模块验证所述第三接收模块接收到的认证授权码请求合法时,解析所述第三接收模块接收到的认证授权码请求得到所述授权码自增编号、所述企业标识和所述产品标识;

所述第三发送模块,还用于当所述第二验证模块验证所述第三接收模块接收到的认证授权码请求不合法时,通过所述服务平台返回失败响应给所述管理平台;

所述第一接收模块,还用于接收所述服务平台返回的失败响应;

所述显示模块,用于所述第一接收模块接收到所述服务平台返回的失败响应时,显示请求失败信息。

可选地,所述第二验证模块,具体用于:

执行以下操作中的至少一项:

验证所述认证授权码请求是否正确;

验证所述认证授权码请求中含有的企业标识是否有效;

验证所述认证授权码请求中含有的企业标识对应的企业是否为有效客户;

如验证结果均为是,则判定所述第三接收模块接收到的认证授权码请求合法;否则判定所述第三接收模块接收到的认证授权码请求不合法。

可选地,所述第一判断模块,具体用于:判断所述企业标识对应的剩余认证次数是否为零,是则判定所述企业标识对应的剩余认证次数无效;否则判定所述企业标识对应的剩余认证次数有效。

可选地,所述系统,还包括:加密锁;

所述服务平台,还包括:第二判断模块和第五生成模块;

其中,所述第二判断模块,用于所述第二生成模块根据所述授权码自增编号和所述产品标识生成授权码之后,判断授权模式的类型;

所述第三生成模块,具体用于:当所述第二判断模块判断出授权模式为软授权时,根据所述第二生成模块生成的授权码和所述第二解析模块得到的企业标识生成认证授权码请求;

所述第五生成模块,用于当所述第二判断模块判断出授权模式为硬授权时,根据所述第二生成模块生成的授权码生成认证授权码请求,发送所述认证授权码请求给所述加密锁;

所述加密锁,包括:

第四接收模块,用于接收所述服务平台发送来的认证授权码请求;

第四解析模块,用于解析所述第四接收模块接收到的认证授权码请求得到所述授权码;

第二计算模块,用于根据所述第四解析模块得到的授权码计算出授权码校验值;

第六生成模块,用于根据所述第二计算模块计算出的授权码校验值生成认证成功响应;

第四发送模块,用于将所述第六生成模块生成的认证成功响应发送给所述服务平台。

可选地,所述第二判断模块,具体用于:

在第一数据库中查找到系统参数表,读取所述系统参数表中授权状态对应的数据,如读取到的数据为第一预设数据,则判定授权模式为软授权;如读取到的数据为第二预设数据,则判定授权模式为硬授权。

可选地,所述第五生成模块,具体用于:

将所述授权码和所述服务平台的IP地址作为参数传入第一函数接口,并调用所述第一函数接口发送认证授权码请求给加密锁;

所述第四发送模块,具体用于:

回调所述第一函数接口发送所述第六生成模块生成的认证成功响应给所述服务平台。

可选地,所述授权中心,还包括:获取模块;

所述获取模块,用于所述第三解析模块解析所述第三接收模块接收到的认证授权码请求得到所述授权码和所述企业标识之前,获取所述服务平台的IP地址;

所述第一计算模块和所述第二计算模块,具体用于:

根据第二预设算法对所述授权码和所述IP地址计算出授权码校验值。

可选地,所述管理平台,还包括:显示模块;

所述显示模块,用于所述第一接收模块接收到失败响应时,显示请求失败信息;还用于所述保存模块将所述授权码和授权码校验值对应保存之后,显示请求成功信息。

可选地,所述系统,还包括:客户端;

所述服务平台,还包括:第三验证模块和执行模块;

所述客户端,包括:

第五接收模块,用于接收第二用户的触发信息;

第七生成模块,用于当所述第五接收模块接收到第二用户的触发信息时,生成含有所述授权码的操作请求;

第五发送模块,用于将所述第七生成模块生成的操作请求发送给所述服务平台;

所述第二接收模块,还用于接收所述客户端发送来的操作请求;

所述第三验证模块,用于验证所述第二接收模块接收到的操作请求中含有的所述授权码是否合法;

所述执行模块,用于当所述第三验证模块验证所述第二接收模块接收到的操作请求中含有的所述授权码合法时,根据所述第二接收模块接收到的操作请求执行相应操作得到操作结果;

所述第二发送模块,还用于当所述第三验证模块验证所述第二接收模块接收到的操作请求中含有的所述授权码不合法时,返回错误响应给所述客户端;还用于将所述执行模块得到的操作结果返回给所述客户端。

可选地,所述第五发送模块,具体用于:调用API中的预设函数接口发送所述操作请求给所述服务平台;

所述第二发送模块,具体用于:回调所述API中的预设函数接口将所述操作结果返回给所述客户端。

可选地,所述第三验证模块,具体用于:

执行以下操作中的至少一项:

验证所述授权码的格式是否正确;

验证所述授权码是否有效;

验证所述授权码是否为单服务平台使用;

如验证结果均为是,则判定接收到的操作请求中含有的所述授权码合法;否则判定接收到的操作请求中含有的所述授权码不合法。

可选地,所述第三验证模块,具体用于:

根据第二预设算法对所述授权码和所述服务平台IP地址计算出授权码校验值,并在第一数据库中查找所述授权码,读取所述授权码对应的授权码校验值,判断计算得到的授权码校验值与读取到的授权码校验值是否相同,是则判定所述授权码是单服务平台使用,否则判定所述授权码不是单服务平台使用。

本发明与现有技术相比,具有以下优点:

本发明中,软件开发商无需一次性从产品生产厂商处拿到所有含有授权码的加密锁实物,无需通过对加密锁实物的管理,进而管理授权码;而是根据需求通过产品生产厂商提供的管理平台申请所需数量的电子形式的授权码,并对电子形式的授权码进行管理;通过网络化管理方式,大大提升了软件开发商对授权码的管理效率。

附图说明

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

图2和图3为本发明实施例二提供的一种授权方法流程图;

图4为本发明实施例三提供的一种授权方法中客户端与服务平台的交互方法流程图;

图5为本发明实施例四提供的一种授权系统的模块组成框图。

具体实施方式

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

在本发明中,以下将软件开发商称为第一用户,将软件开发商的用户(背景技术中所述的用户)称为第二用户;

本发明中的系统包括管理平台、服务平台和授权中心,产品生产厂商通过授权中心为使用该系统的第一用户分配唯一的企业标识,并根据第一用户的需求设定授权模式,根据与第一用户商定的授权码的个数设定剩余认证次数,根据第一用户的操作实时更新剩余认证次数;并将分配的企业标识、设定的授权模式和剩余认证次数保存至对应的数据库中。

实施例一

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

步骤101:管理平台根据自身保存的授权码自增编号、企业标识和接收到的第一用户输入的产品标识生成获取授权码请求,发送获取授权码请求给服务平台;

步骤102:服务平台解析接收到的获取授权码请求得到授权码自增编号、企业标识和产品标识,根据授权码自增编号和产品标识生成授权码,根据授权码和企业标识生成认证授权码请求,发送认证授权码请求给授权中心;

步骤103:授权中心解析接收到的认证授权码请求得到授权码和企业标识,判断得到的企业标识对应的剩余认证次数是否有效,是则更新剩余认证次数,并根据授权码计算出授权码校验值,根据授权码校验值生成认证成功响应,发送认证成功响应给服务平台,执行步骤104;否则通过服务平台返回失败响应给管理平台,结束;

步骤104:服务平台根据接收到的认证成功响应中含有的授权码校验值和自身生成的授权码组织获取成功响应,发送获取成功响应给管理平台;

步骤105:管理平台解析接收到的获取成功响应得到授权码和授权码校验值,将得到的授权码和授权码校验值对应保存,结束。

本实施例步骤101中,管理平台根据自身保存的授权码自增编号、企业标识和接收到的第一用户输入的产品标识生成获取授权码请求,具体为:

管理平台根据自身保存的企业标识、管理员标识、授权码自增编号,及接收到的第一用户输入的产品标识、模板标识生成明文获取授权码请求,根据预设编码算法对明文获取授权码请求编码得到密文获取授权码请求,根据第一预设算法对明文获取授权码请求计算出第一校验和,根据得到的密文获取授权码请求和第一校验和生成获取授权码请求;

优选地,在本实施例中,预设编码算法为Base64算法。

在本实施例中,步骤102之前,还包括:

步骤A:服务平台验证接收到的获取授权码请求是否合法,是则执行步骤102,否则返回失败响应给管理平台,管理平台显示请求失败信息,结束。

其中,服务平台验证接收到的获取授权码请求是否合法,具体为:

执行以下操作中的至少一项:

服务平台验证获取授权码请求是否正确;

服务平台验证获取授权码请求中含有的企业标识是否有效;

服务平台验证获取授权码请求中含有的管理员标识是否有效;

服务平台验证获取授权码请求中含有的产品标识是否有效;

服务平台验证获取授权码请求中含有的模板标识是否有效;

如验证结果均为是,则判定接收到的获取授权码请求合法;否则判定接收到的获取授权码请求不合法。

可选地,本实施例步骤102中,根据授权码自增编号和产品标识生成授权码,具体包括:

步骤1-1:服务平台将授权码自增编号转换得到第一预设长度的第一字符串;

步骤1-2:服务平台生成第二预设长度的随机数;

步骤1-3:服务平台根据第一字符串和随机数生成第二字符串;

步骤1-4:服务平台根据第一字符串、随机数和产品标识计算校验字符;

步骤1-5:服务平台根据第二字符串和校验字符生成授权码。

其中,步骤1-3,具体为:

服务平台将第一字符串的每一位上的数据分别穿插到随机数的预设位之后得到第二字符串;

或者,

服务平台将第一字符串的每一位上的数据分别随机穿插到随机数中得到第二字符串。

步骤1-4,具体为:

服务平台从随机数中读取左起前预设位上的数据,将读取到的数据与第一字符串相加求和,将求得到和与获取授权码请求中含有的产品标识做取余运算得到余数,将得到的余数转换成预设进制后作为校验字符;

步骤1-5,具体为:将校验字符添加到第二字符串的最右侧得到授权码。

可选地,本实施例步骤102中,根据授权码和企业标识生成认证授权码请求,具体为:

服务平台根据授权码、企业标识、产品标识及获取授权码请求中含有的模板标识和管理员标识生成认证授权码请求。

在本实施例中,步骤103之前,还包括:

步骤B:授权中心验证接收到的认证授权码请求是否合法,是则执行步骤103,否则通过服务平台返回失败响应给管理平台,管理平台显示请求失败信息,结束。

其中,授权中心验证接收到的认证授权码请求是否合法,具体包括:

执行以下操作中的至少一项:

授权中心验证认证授权码请求是否正确;

授权中心验证认证授权码请求中含有的企业标识是否有效;

授权中心验证认证授权码请求中含有的企业标识对应的企业是否为有效客户;

如验证结果均为是,则判定接收到的认证授权码请求合法;否则判定接收到的认证授权码请求不合法。

可选地,步骤103中,判断企业标识对应的剩余认证次数是否有效,具体为:判断企业标识对应的剩余认证次数是否为零,是则判定企业标识对应的剩余认证次数无效;否则判定企业标识对应的剩余认证次数有效。

进一步地,在本实施例中,步骤102中,根据授权码自增编号和产品标识生成授权码之后,还包括:

步骤C1:服务平台判断授权模式的类型,如为软授权,则根据授权码和企业标识生成认证授权码请求,发送认证授权码请求给授权中心,执行步骤103;如为硬授权,则根据授权码生成认证授权码请求,发送认证授权码请求给加密锁,执行步骤C2;

步骤C2:加密锁解析接收到的认证授权码请求得到授权码,根据得到的授权码计算出授权码校验值,根据授权码校验值生成认证成功响应,发送认证成功响应给服务平台。

其中,步骤C1中,服务平台判断授权模式的类型,具体为:

服务平台在第一数据库中查找到系统参数表,读取系统参数表中授权状态对应的数据,如读取到的数据为第一预设数据,则判定授权模式为软授权;如读取到的数据为第二预设数据,则判定授权模式为硬授权。

步骤C1中,根据授权码生成认证授权码请求,发送认证授权码请求给加密锁,具体为:

服务平台将授权码和自身IP地址作为参数传入第一函数接口,并调用第一函数接口发送认证授权码请求给加密锁;

步骤C2中,发送认证成功响应给服务平台,具体为:加密锁回调所述第一函数接口发送认证成功响应给服务平台。

在本实施例步骤103之前,还包括:授权中心获取服务平台的IP地址;

对应地,所述根据授权码计算出授权码校验值,具体为:

根据第二预设算法对授权码和所述IP地址计算出授权码校验值。

可选地,步骤103之后,还包括:管理平台显示请求失败信息;

步骤105之后,还包括:管理平台显示请求成功信息。

更进一步地,在本实施例中,步骤105之后,还包括:第一用户将授权码提供给客户端,并将客户端提供给第二用户;

本实施例中的方法,还包括:当客户端接收到第二用户的触发信息时,执行步骤D1:

步骤D1:客户端生成含有授权码的操作请求,发送操作请求给服务平台;

步骤D2:服务平台验证接收到的操作请求中含有的授权码是否合法,是则执行步骤D3,否则返回错误响应给客户端,结束;

步骤D3:服务平台根据接收到的操作请求执行相应操作得到操作结果,将操作结果返回给客户端。

其中,步骤D1中,发送操作请求给服务平台,具体为:客户端调用API中的预设函数接口发送操作请求给服务平台;

步骤D3中,将操作结果返回给客户端,具体为:服务平台回调API中的预设函数接口将操作结果返回给客户端。

可选地,步骤D2中,服务平台验证接收到的操作请求中含有的授权码是否合法,具体包括:

执行以下操作中的至少一项:

验证授权码的格式是否正确;

验证授权码是否有效;

验证授权码是否为单服务平台使用;

如验证结果均为是,则判定接收到的操作请求中含有的授权码合法;否则判定接收到的操作请求中含有的授权码不合法。

其中,验证授权码是否为单服务平台使用,具体为:服务平台根据第二预设算法对授权码和自身IP地址计算出授权码校验值,并在第一数据库中查找到授权码,读取查找到的授权码对应的授权码校验值,判断计算得到的授权码校验值与读取到的授权码校验值是否相同,是则判定授权码是单服务平台使用,否则判定授权码不是单服务平台使用。

实施例二

本发明实施例二提供一种授权方法,应用于由管理平台、服务平台、授权中心和加密锁构成的系统中;当第一用户登录管理平台后,如图2和图3所示,包括:

步骤201:管理平台接收第一用户输入的信息,当接收到提交触发信息时,根据接收到的信息生成获取授权码请求,发送获取授权码请求给服务平台;

在本实施例中,管理平台接收到的第一用户输入的信息包括但不限于:产品标识、模板标识等;

具体地,管理平台根据接收到的第一用户输入的产品标识、模板标识,及第一数据库中存有的企业标识、管理员标识、授权码自增编号等信息生成明文获取授权码请求,根据预设编码算法对明文获取授权码请求编码得到密文获取授权码请求,根据第一预设算法对明文获取授权码请求进行计算得到第一校验和,根据得到的密文获取授权码请求和第一校验和组织JsonSend格式的数据,将JsonSend格式的数据作为获取授权码请求并发送给服务平台;

优选地,在本实施例中,预设编码算法为Base64算法,第一预设算法为SHA1算法;

例如,在本实施例中,生成的明文获取授权码请求为:

对上述明文获取授权码请求编码得到的密文获取授权码请求为:

eyJyZXN1bHQiOjAsImVycm9yY29kZSI6MCwicmVxaHR0cG1ldGhvZCI6IkdFVCJ9;

对上述明文获取授权码请求进行SHA1计算得到第一校验和为:

13abbf18622623e909d1d14923758ae1dca83a17;

根据上述密文获取授权码请求和第一校验和组织的JsonSend格式的数据为:

将上述JsonSend格式的数据的数据作为获取授权码请求,并发送给服务平台。

步骤202:服务平台判断接收到的获取授权码请求是否正确,是则执行步骤203;否则返回获取失败响应给管理平台,执行步骤221;

具体地,服务平台解析接收到的获取授权码请求,读取mac字段上的数据得到第一校验和,读取data字段上的数据得到密文获取授权码请求,根据预设编码算法对密文获取授权码请求解码得到明文获取授权码请求,根据第一预设算法对明文获取授权码请求进行计算得到第一校验码,判断得到的第一校验码与读取到的第一校验和是否相等,是则判定接收到的获取授权码请求正确,否则判定接收到的获取授权码请求不正确;

优选地,在本实施例中,预设编码算法为Base64算法,第一预设算法为sha1算法;

例如,在本实施例中,服务平台解析上述获取授权码请求,读取到的第一校验和为13abbf18622623e909d1d14923758ae1dca83a17,读取到的密文获取授权码请求为eyJyZXN1bHQiOjAsImVycm9yY29kZSI6MCwicmVxaHR0cG1ldGhvZCI6IkdFVCJ9,根据Base64算法对密文获取授权码请求解码得到上述明文获取授权码请求,对得到的明文获取授权码请求进行SHA1计算得到第一校验码为13abbf18622623e909d1d14923758ae1dca83a17,与第一校验和相等,判定接收到的获取授权码请求正确。

步骤203:服务平台解析接收到的获取授权码请求得到企业标识、管理员标识、产品标识、模板标识和授权码自增编号;

具体地,服务平台解析上述得到的明文获取授权码请求,读取companyid字段上的数据得到企业标识,读取adminid字段上的数据得到管理员标识,读取productid字段上的数据得到产品标识,读取templateid字段上的数据得到模板标识,读取licid字段上的数据得到授权码自增编号;

例如,在本实施例中,服务平台解析上述明文获取授权码请求,读取到企业标识为1000000000000、管理员标识为001、产品标识为111、模板标识为010、授权码自增编号为110。

步骤204:服务平台验证得到的企业标识是否有效,是则执行步骤205;否则返回获取失败响应给管理平台,执行步骤221;

在本实施例中,步骤204具体包括:

步骤204-1:服务平台判断第一数据库中是否存有得到的企业标识,是则执行步骤204-2;否则返回失败响应给管理平台,执行步骤221;

在本实施例中,管理平台维护第一数据库,并与服务平台共享第一数据库中的数据;

具体地,服务平台在第一数据库中查找到企业目录表,判断查找到的企业目录表中是否存有得到的企业标识,是则执行步骤204-2,否则返回失败响应给管理平台,执行步骤221。

步骤204-2:服务平台判断企业标识是否在有效期内,是则执行步骤205;否则返回失败响应给管理平台,执行步骤221。

具体地,服务平台在查找到的企业目录表中读取与该企业标识对应保存的有效期,判断当前时间是否在有效期内,是则判定得到的企业标识有效,执行步骤205;否则判定得到的企业标识无效,返回失败响应给管理平台,执行步骤221;

例如,读取到的有效期为2020年12月31日,当前时间为2016年11月15日,判定在有效期内。

步骤205:服务平台验证得到的管理员标识是否有效,是则执行步骤206;否则返回获取失败响应给管理平台,执行步骤221;

在本实施例中,企业通过管理平台注册管理员,管理平台为管理员分配唯一管理员标识,并将企业定义的管理员的状态信息与管理员标识对应保存至第一数据库中的管理员信息表中;其中,管理员的状态信息包括启用和禁用两种;

在本实施例中,步骤205具体包括:

步骤205-1:服务平台在第一数据库中查找到与企业标识对应的管理员信息表,判断查找到的管理员信息表中是否含有得到的管理员标识,是则执行步骤205-2;否则返回失败响应给管理平台,执行步骤221;

步骤205-2:服务平台判断管理员标识对应的状态信息是否为启用,是则执行步骤206;否则返回失败响应给管理平台,执行步骤221;

具体地,服务平台在管理员信息表中读取该管理员标识对应的状态信息,如为启用,则判定得到的管理员标识有效,执行步骤206;否则判定得到的管理员标识无效,返回失败响应给管理平台,执行步骤221。

步骤206:服务平台验证得到的产品标识是否有效,是则执行步骤207;否则返回获取失败响应给管理平台,执行步骤221;

在本实施例中,步骤206具体包括:

步骤206-1:服务平台在第一数据库中查找到与得到的企业标识对应的产品表,判断查找到的产品表中是否含有得到的产品标识,是则执行步骤206-2;否则返回失败响应给管理平台,执行步骤221;

步骤206-2:服务平台判断产品标识的状态信息是否为启用,是则执行步骤207;否则返回失败响应给管理平台,执行步骤221;

具体地,服务平台在产品表中读取该产品标识对应的状态信息,如为启用,则判定得到的产品标识有效,执行步骤207;否则判定得到的产品标识无效,返回失败响应给管理平台,执行步骤221。

步骤207:服务平台验证得到的模板标识是否有效,是则执行步骤208;否则返回获取失败响应给管理平台,执行步骤221;

在本实施例中,步骤207具体包括:

步骤207-1:服务平台在第一数据库中查找到与得到的企业标识对应的模板表,判断查找到的模板表中是否含有得到的模板标识,是则执行步骤207-2;否则返回失败响应给管理平台,执行步骤221;

步骤207-2:服务平台判断模板标识的状态信息是否为启用,是则执行步骤208;否则返回失败响应给管理平台,执行步骤221;

具体地,服务平台在模板表中读取该模板标识对应的状态信息,如为启用,则判定得到的模板标识有效,执行步骤208;否则判定得到的模板标识无效,返回失败响应给管理平台,执行步骤221。

步骤208:服务平台根据得到的授权码自增编号生成授权码;

在本实施例中,步骤208具体包括:

步骤208-1:服务平台将得到的授权码自增编号进行转换得到第一字符串;

具体地,服务平台将得到的授权码自增编号转换成36进制表示,并判断转换后的授权码自增编号是否为预设位,是则将其作为第一字符串,执行步骤208-2;否则,如转换后的授权码自增编号小于预设位,则在转换后的授权码自增编号左侧补零,使补零后的授权码自增编号为预设位,将补零后的授权码自增编号作为第一字符串,执行步骤208-2;如转换后的授权码自增编号大于预设位,则从左起第预设位的后一位起读取预设位的数据作为第一字符串;

优选地,在本实施例中,预设位为6位;

例如,在本实施例中,服务平台将得到的授权码自增编号110进行转换后得到的第一字符串为520000。

步骤208-2:服务平台生成预设长度的随机数;

具体地,服务平台调用随机数函数生成预设长度随机数;

优选地,预设长度为9位;

例如,生成的随机数为0GZX3NMD2。

步骤208-3:服务平台根据第一字符串和生成的随机数生成第二字符串;

具体地,服务平台将第一字符串的每一位上的数据依次插入到随机数的左起第3位、第4位、第5位、第6位、第7位和第8位之后得到第二字符串;

例如,在本实施例中,根据上述第一字符串520000和随机数0GZX3NMD2生成的第二字符串为0GZ5X230N0M0D02。

需要说明地,在本实施例中,上述插入位置可以根据需求自行设定。

步骤208-4:服务平台根据第一字符串和随机数生成校验字符,根据校验字符和第二字符串生成授权码;

具体地,服务平台读取随机数的左起前八位上的数据,将读取到的数据与第一字符串相加求和,将求得到和与得到的产品标识做取余运算得到余数,将得到的余数转换成36进制表示后作为校验字符,将校验字符添加到第二字符串的最右侧得到授权码;

例如,在本实施例中,得到的校验字符为0,生成的授权码为0GZ5X230N0M0D020。

步骤209:服务平台判断授权模式的类型,如为软授权,则执行步骤210;如为硬授权,则执行步骤223;

具体地,服务平台在第一数据库中查找到系统参数表,读取系统参数表中授权状态对应的数据,如读取到的数据为1,则判定授权模式为软授权;如读取到的数据为2,则判定授权模式为硬授权;

例如,在本实施例中,服务平台读取到的数据为1,判定为软授权。

步骤210:服务平台根据生成的授权码生成认证授权码请求,发送认证授权码请求给授权中心;

具体地,服务平台根据生成的种子码,及得到的企业标识、管理员标识、产品标识和模板标识等信息生成明文认证授权码请求,根据预设编码算法对得到的明文认证授权码请求编码得到密文认证授权码请求,根据第一预设算法对明文认证授权码请求进行计算得到第二校验和,根据得到的密文认证授权码请求和第二校验和组织JsonSend格式的数据,将JsonSend格式的数据作为认证授权码请求发送给授权中心;

优选地,预设编码算法为Base64算法,第一预设算法为SHA1算法;

例如,在本实施例中,生成的明文认证授权码请求为:

对上述明文认证授权码请求进行Base64编码得到密文认证授权码请求为:

eyJyZXN1bHQiOjEsImVycm9yY29kZSI6MTM0LCJyZXFodHRwbWV0aG9kIjoiR0VUIn0=;

对上述明文认证授权码请求进行SHA1计算得到第二校验和为:

0220bcdbdbfe611a3bc5926eeac77524d11aef86;

根据上述密文认证授权码请求和第二校验和组织的JsonSend格式的数据为:

将上述JsonSend格式的数据作为认证授权码请求通过Http协议发送给授权中心。

步骤211:授权中心接收认证授权码请求,并获取服务平台的IP地址;

例如,在本实施例中,授权中心获取到服务平台的IP地址为192.168.0.1。

步骤212:授权中心判断接收到的认证授权码请求是否正确,是则执行步骤213,否则返回认证失败响应给服务平台,执行步骤217;

具体地,授权中心解析接收到的认证授权码请求,读取mac字段上的数据得到第二校验和,读取data字段上的数据得到密文认证授权码请求,根据预设编码算法对密文认证授权码请求解码得到明文认证授权码请求,根据第二预设算法对明文认证授权码请求进行计算得到第二校验码,判断得到的第二校验码与读取到的第二校验和是否相等,是则判定接收到的认证授权码请求正确,否则判定接收到的认证授权码请求不正确。

步骤213:授权中心解析接收到的认证授权码请求得到授权码、企业标识和产品标识;

具体地,授权中心解析上述得到的明文认证授权码请求读取sn字段上的数据得到授权码,读取companyid字段上的数据得到企业标识,读取productid字段上的数据得到产品标识;

例如,在本实施例中,授权中心解析上述明文认证授权码请求,读取到授权码为0GZ5X230N0M0D020、企业标识为100000000000、产品标识为111。

步骤214:授权中心验证得到的企业标识是否有效,是则执行步骤215;否则返回认证失败响应给服务平台,执行步骤217;

在本实施例中,步骤214具体包括:

步骤214-1:授权中心判断第二数据库中是否存有得到的企业标识,是则执行步骤214-2;否则返回认证失败响应给服务平台,执行步骤217;

在本实施例中,运维平台维护第二数据库,并与授权中心共享第二数据库中的数据;

具体地,授权中心在第二数据库中查找到授权目录表,判断查找到的授权目录表中是否存有得到的企业标识,是则执行步骤214-2;否则返回认证失败响应给服务平台,执行步骤217;

步骤214-2:授权中心判断得到的企业标识是否在有效期内,是则执行步骤215;否则返回认证失败响应给服务平台,执行步骤217;

具体地,授权中心在授权目录表中读取与得到的企业标识对应的有效期,判断当前时间是否在有效期内,是则执行步骤215;否则返回认证失败响应给服务平台,执行步骤217。

步骤215:授权中心判断得到的企业标识对应的剩余认证次数是否有效,是则执行步骤216;否则返回认证失败响应给服务平台,执行步骤217;

具体地,授权中心在上述授权目录表中读取与得到的企业标识对应保存的剩余认证次数,判断读取到的剩余认证次数是否为0,是则判定得到的企业标识对应的剩余认证次数无效,拒绝请求,返回认证失败响应给服务平台,执行步骤217;否则判定得到的企业标识对应的剩余认证次数有效,执行步骤216;

例如,读取到的剩余认证次数为68,判定得到的企业标识对应的剩余认证次数有效。

步骤216:授权中心判断企业标识对应的企业是否为有效客户,是则执行步骤218;否则返回认证失败响应给服务平台,执行步骤217;

在本实施例中,步骤216体包括:

步骤216-1:授权中心判断得到的企业标识对应的客户编号是否有效,是则执行步骤216-2;否则返回认证失败响应给服务平台,执行步骤217;

具体地,授权中心在上述授权目录表中读取与得到的企业标识对应的客户编号,根据读取到的客户编号索引对应的客户信息表,判断是否索引成功,是则判定得到的企业标识对应的客户编号有效,执行步骤216-2;否则判定得到的企业标识对应的客户编号无效,返回认证失败响应给服务平台,执行步骤217。

步骤216-2:授权中心判断客户编号对应的客户状态是否为启用,是则执行步骤218;否则返回认证失败响应给服务平台,执行步骤217;

具体地,授权中心根据客户编号索引到对应的客户信息表,读取客户信息表中的客户状态信息,如为启用,则判定企业标识对应的企业是有效客户,执行步骤218;否则判定企业标识对应的企业不是有效客户,返回认证失败响应给服务平台,执行步骤217;

步骤217:服务中心将接收到的认证失败响应作为获取失败响应发送给管理平台,执行步骤221;

步骤218:授权中心更新企业标识对应的剩余认证次数,执行步骤219;

具体地,授权中心在上述授权目录表中读取与得到的企业标识对应的剩余认证次数,将读取到的剩余认证次数更新为读取到的剩余认证次数减1后的值;

例如,读取到的剩余认证次数为68,更新后的剩余认证次数为67。

步骤219:授权中心根据得到的授权码和获取到的IP地址计算出授权码校验值,根据授权码校验值组织认证成功响应,发送认证成功响应给服务平台;

具体地,授权中心根据第二预设算法对得到的授权码和获取到的服务平台的IP地址计算出授权码校验值,根据授权码校验值等信息生成明文认证成功响应,根据预设编码算法对明文认证成功响应进行编码得到密文认证成功响应,根据第一预设算法对明文认证成功响应进行计算得到第三校验和,根据得到的密文认证成功响应和第三校验和组织JsonSend格式的数据,将JsonSend格式的数据作为认证成功响应发送给服务平台;

优选地,在本实施例中,第一预设算法为SHA1算法,预设编码算法为Base64算法,第二预设算法为cos算法;

例如,在本实施例中,授权中心根据cos算法对上述授权码和获取到的服务平台的IP地址计算出授权码校验值为53ee31753e5d2e0679d03375a385b8a4e0bcc15d,生成的明文认证成功响应为:

对上述明文认证成功响应进行Base64编码得的密文认证成功响应为:

eyJyZXN1bHQiOjAsImVycm9yY29kZSI6MCwicmVxaHR0cG1ldGhvZCI6IkdFVCJ9;

对上述明文认证成功响应进行SHA1计算得到的第三校验和为:

13abbf18622623e909d1d14923758ae1dca83a17;

根据上述密文认证成功响应和第三校验和组织的JsonSend格式的数据为:

将上述JsonSend格式的数据作为认证成功响应发送给服务平台。

步骤220:服务平台判断接收到的认证成功响应是否正确,是则执行步骤222;否则返回获取失败响应给管理平台,执行步骤221;

具体地,服务平台解析接收到的认证成功响应,读取mac字段上的数据得到第三校验和,读取data字段上的数据得到密文认证成功响应,根据预设编码算法对密文认证成功响应解码得到明文认证成功响应,根据第二预设算法对明文认证成功响应进行计算得到第三校验码,判断得到的第三校验码与读取到的第三校验和是否相等,是则判定接收到的认证成功响应正确;否则判定接收到的认证成功响应不正确。

步骤221:管理平台接收获取失败响应,显示请求失败信息,结束;

步骤222:服务平台根据接收到的认证成功响应和生成的授权码生成获取成功响应,发送获取成功响应给管理平台,执行步骤227;

具体地,服务平台根据上述得到的明文认证成功响应和生成的授权码组织明文获取成功响应,根据预设编码算法对明文获取成功响应编码得到密文获取成功响应,根据第一预设算法对明文获取成功响应进行计算得到第四校验和,根据得到的密文获取成功响应和第四校验和组织JsonSend格式的数据,将JsonSend格式的数据作为获取成功响应发送给服务平台;

优选地,在本实施例中,预设编码算法为Base64算法,第一预设算法为SHA1算法;

例如,在本实施例中,生成的明文获取成功响应为:

对上述明文获取成功响应编码得到的密文获取成功响应为:

eyJyZXN1bHQiOjAsImVycm9yY29kZSI6MCwicmVxaHR0cG1ldGhvZCI6IkdFVCIsImRhdGEiOiJh;

对上述明文获取成功响应进行SHA1计算得到第四校验和为:

69d22c01cf40d47d902e79322068a2070f3f7fed;

根据上述密文获取成功响应和第四校验和组织的JsonSend格式的数据为:

将上述JsonSend格式的数据作为获取成功响应发送给管理平台。

步骤223:服务平台根据生成的授权码和自身的IP地址生成认证授权码请求,发送认证授权码请求给加密锁;

具体地,服务平台将生成的授权码0GZ5X230N0M0D020和自身IP地址192.168.0.1等信息作为参数传入API的第一函数接口,并调用第一函数接口发送认证授权码请求给加密锁;

在本实施例中,第一函数接口具体为:

AchieveWarrantSN achievesn=new AchieveWarrantSN()。

步骤224:加密锁解析接收到的认证授权码请求得到授权码和IP地址,对得到的授权码和IP地址计算出授权码校验值;

具体地,加密锁根据第二预设算法对得到的授权码和IP地址计算出授权码校验值;

在本实施例中,第二预设算法为cos算法;

例如,在本实施例中,加密锁根据cos算法,对得到的授权码0GZ5X230N0M0D020和IP地址192.168.0.1计算出的授权码校验值为53ee31753e5d2e0679d03375a385b8a4e0bcc15d。

步骤225:加密锁将生成的授权码校验值作为认证成功响应,发送认证成功响应给服务平台,执行步骤226;

具体地,加密锁读取自身预置的序列号,将读取到的序列号和生成的授权码校验值作为认证成功响应,通过回调第一函数接口发送认证成功响应给服务平台。

步骤226:服务平台根据接收到的认证成功响应和生成的授权码生成获取成功响应,发送获取成功响应给管理平台,执行步骤227;

本步骤中,服务平台根据接收到的认证成功响应和生成的授权码生成获取成功响应的方法同步骤222中所述的服务平台根据接收到的认证成功响应和生成的授权码生成获取成功响应的方法相同,在此不再赘述。

步骤227:管理平台判断接收到的获取成功响应是否正确,是则执行步骤228;否则显示失败信息,结束;

步骤228:管理平台解析接收到的获取成功响应得到授权码和授权码校验值,将得到的授权码和授权码校验值保存,显示请求成功信息,结束;

具体地,管理平台解析接收到的获取成功响应,读取data字段上的数据得到密文获取成功响应,根据预设编码算法对得到的密文获取成功响应解码得到明文获取成功响应,读取明文获取成功响应中sn字段上的数据得到授权码,读取明文获取成功响应中mac字段上的数据得到授权码校验值;

例如,在本实例中,管理平台读取明文获取成功响应中sn字段上的数据得到授权码0GZ5X230N0M0D020,读取明文获取成功响应中mac字段上的数据得到授权码校验值53ee31753e5d2e0679d03375a385b8a4e0bcc15d,将读取到的数据保存至第一数据库中的授权码信息表中,并显示请求成功信息。

进一步地,在本实施例中,步骤228之后,还包括:第一用户将通过管理平台申请到的授权码及自身封装的用于与服务平台通讯的API提供给客户端,并将客户端提供给第二用户,当客户端接收到第二用户的触发信息时,生成含有授权码操作请求,并调用API中的接口向服务平台发送所述操作请求;具体地,客户端与服务平台之间的交互在实施例三中进行详述。

实施例三

本发明实施例三提供一种授权方法中客户端与服务平台的交互方法,本实施例中以客户端请求服务平台进行数据加密为例进行说明,当第二用户登录客户端时,如图4所示,包括:

步骤301:客户端启动,发送登录进程的进程标识给服务平台;

具体地,客户端调用管理平台提供的API中的第二函数接口发送进程标识给服务平台;

在本实施例中,第二函数接口具体为Login login=new Login()。

进一步地,在本实施例中,步骤301之前,还包括:客户端与服务平台进行SSL双向认证,当彼此均认证通过时,执行步骤301;具体的双向认证的过程在此不再赘述。

步骤302:服务平台判断接收到的进程标识对应的进程是否已登录,是则更新登录时间为当前时间,并返回响应给客户端;否则将接收到的进程标识与当前时间对应保存,并返回响应给客户端;

具体地,服务平台在第一数据库中查找到进程表,判断进程表中是否含有接收到的进程标识,是则判定进程标识对应的进程已登录,读取进程标识对应的登录时间,并更新登录时间为当前时间,返回响应给客户端;否则判定进程标识对应的进程未登陆,将接收到的进程标识保存至查找到的进程表中,返回响应给客户端。

步骤303:客户端接收响应,根据授权码和第二用户输入的信息生成加密请求,发送加密请求给服务平台;

具体地,客户端根据待加密数据、密钥号及授权码等信息生成明文加密请求,根据预设编码算法对明文加密请求进行编码得到密文加密请求,调用API中的第三函数接口发送密文加密请求给服务平台;

在本实施例中,第三函数接口具体为:

ArithmeticMd5arithmeticmd5=new ArithmeticMd5();

例如,在本实施例中,生成的明文加密请求为:

对上述明文加密请求进行Base64编码得到密文加密请求为:

GET/?AHgxMjM0NTY3ODkwQUJDREVGotpkfjKUDWLAZwX9NezqzMz0hNIAAAAAAAAAAAAAA==。

进一步地,在本实施例中,每一个业务流程的开始之前,客户端与服务器均进行SSL双向认证,即本步骤中,客户端生成加密请求,并发送加密请求给服务平台之前,还包括:客户端与服务器均进行SSL双向认证,如认证通过则生成加密请求,并发送加密请求给服务平台,否则结束。

步骤304:服务平台解析接收到的加密请求得到授权码、进程标识、密钥号和待加密数据;

具体地,服务平台根据预设编码算法对接收到的密文加密请求解码得到明文加密请求,读取明文加密请求中sn字段上的数据得到授权码,读取processid字段上的数据得到进程标识、读取datadomain字段上的数据中第一个字节上的数据得到密钥号,读取datadomain字段上的数据中第四个字节之后的数据得到待加密数据;

优选地,预设编码算法为Base64算法;

例如,在本实施例中,服务平台解析得到的上述明文加密请求,读到授权码为0GZ5X230N0M0D020、进程标识为c81e0000、密钥号为01、待加密数据为c81e0000。

步骤305:服务平台判断得到的授权码的格式是否正确,是则执行步骤306;否则返回失败响应给客户端,结束;

在本实施例中,步骤305具体包括:

步骤305-1:服务平台判断得到的授权码的长度是否为预设长度,是则执行步骤305-2;否则返回失败响应给客户端,结束;

优选地,在本实施例中,预设长度为16位。

步骤305-2:服务平台判断得到的授权码是否由预设字符组成,是则执行步骤306;否则返回失败响应给客户端,结束;

优选地,在本实施例中,预设字符为数字和字母。

在本实施例中,步骤305-1和步骤305-2的执行顺序可以对换。

步骤306:服务平台判断得到的授权码是否有效,是则执行步骤307;否则返回失败响应给客户端,结束;

在本实施例中,步骤306具体包括:

步骤306-1:服务平台在第一数据库中查找到授权码信息表,判断查找到的授权码信息表中是否存有得到的授权码,是则执行步骤306-2;否则返回失败响应给客户端,结束;

步骤306-2:服务平台判断授权码是否已启用,是则执行步骤306-3;否则返回错误响应给客户端,结束;

具体地,服务平台在授权码信息表中读取该授权码对应的启用状态信息,如为启用,则执行步骤306-3;否则返回错误响应给客户端,结束;

步骤306-3:服务平台判断授权码对应的企业标识是否合法,是则执行步骤306-4;否则返回错误响应给客户端,结束;

具体地,服务平台在授权码信息表中读取该授权码对应的企业标识,判断企业目录表中是否含有读取到的企业标识,是则在企业目录表中读取该企业标识对应的启用状态信息,如为已启用,则判定授权码对应的企业标识合法,执行步骤306-4;否则判定授权码对应的企业标识不合法,返回错误响应给客户端,结束。

步骤306-4:服务平台判断授权码对应的产品标识是否合法,是则执行步骤306-5;否则返回错误响应给客户端,结束;

具体地,服务平台在授权码信息表中读取该授权码对应的产品标识,根据产品标识查找对应的产品信息表,读取产品信息表中的激活状态信息,如为激活,则判定授权码对应的授权码合法,执行步骤306-5;否则判定授权码对应的授权码不合法,返回错误响应给客户端,结束。

步骤306-5:服务平台判断授权码是否绑定用户,是则判断绑定的用户是否合法,是则执行步骤306-6;否则返回错误响应给客户端,结束;

具体地,服务平台在授权码信息表中读取该授权码对应的用户状态信息,判断是否为已绑定,是则查找到绑定的用户的用户信息表,读取查找到的用户信息表中的启用状态信息,判断是否为已启用,是则执行步骤307-6;否则返回错误响应给客户端,结束;

步骤306-6:服务平台判断授权码的PIN状态是否合法,是则执行步骤307;否则返回错误响应给客户端,结束。

具体地,服务平台在授权码信息表中读取该授权码对应的PIN状态信息,如为用户状态,则判定授权码的PIN状态合法,执行步骤307;如为管理员状态,则判定授权码的PIN状态不合法,返回错误响应给客户端,结束。

进一步地,在本实施例中,上述步骤306-2至步骤306-6的执行顺序可以彼此兑换。

步骤307:服务平台判断得到的授权码是否为单服务平台使用,是则执行步骤308;否则返回失败响应给客户端,结束;

具体地,服务平台根据第二预设算法对得到的授权码和自身IP地址计算出授权码校验值,并在第一数据库中查找到得到的授权码,读取其对应的授权码校验值,判断计算得到的授权码校验值与读取到的授权码校验值是否相同,是则判定得到的授权码是单服务平台使用,否则判定得到的授权码不是单服务平台使用。

步骤308:服务平台判断得到的进程标识对应的进程是否为登录状态,是则执行步骤309;否则返回失败响应给客户端,结束;

具体地,服务平台在第一数据库中查找到登录信息表,判断登录信息表中是否含有得到的进程标识,是则判定得到的进程标识对应的进程是登录状态,否则判定得到的进程标识对应的进程不是登录状态。

步骤309:服务平台根据得到的密钥号查找到对应的密钥,根据预设加密算法使用查找到的密钥对待加密数据进行加密得到密文数据;

在本实施例中,服务平台存有多个密钥,且分别对应一个密钥号;

优选地,在本实施例中,预设加密算法为MD5算法;

例如,在本实施例中,服务平台根据得到的密钥号查找到对应的密钥24e0e7fb9d609e758750000000,根据MD5算法对待加密数据c81e0000加密得到密文数据337478577c2。

步骤310:服务平台根据得到的密文数据组织成功响应,发送成功响应给客户端;

具体地,服务平台根据得到的密文数据生成明文成功响应,根据预设编码算法对明文成功响应进行编码得到密文成功响应,根据第二预设算法对明文成功响应进行计算得到第五校验和,根据得到的密文成功响应和第五校验和组织JsonSend格式的数据,将JsonSend格式的数据作为成功响应,通过回调上述第三函数接口发送成功响应给客户端;

在本实施例中,预设编码算法为Base64算法,第二预设算法为SHA1算法;

例如,在本实施例中,生成的明文成功响应为:

服务平台对上述明文成功响应进行Base64编码后得到的密文成功响应为:

df8d4914e9ce37478577c2a3a2;

服务平台对上述明文成功响应进行SHA1计算得到的第五校验和为:

43d2d2dbeabedc57d0ccab29a7284e1f92261d07;

根据上述编码数据和第五校验和组织的JsonSend格式的数据为:

将上述JsonSend格式的数据作为成功响应返回给客户端。

步骤311:客户端解析接收到的成功响应得到密文数据,结束。

具体地,客户端解析接收到的成功响应得到密文成功响应,使用上述预设编码算法对得到的密文成功响应解码得到明文成功响应,解析明文成功响应得到密文数据。

例如,在本实施例中,客户端得到的密文数据为337478577c2。

进一步地,在本实施例中,步骤311之前,还可以包括:客户端判断接收到的成功响应是否正确,是则执行步骤311,否则结束。

实施例四

本发明实施例四提供一种授权系统,如图5所示,包括:管理平台400、服务平台500和授权中心600;

其中,管理平台400,包括:

保存模块401,用于保存授权码自增编号、企业标识;

第一接收模块402,用于接收用户输入的产品标识;

第一生成模块403,用于根据保存模块401保存的授权码自增编号、企业标识和第一接收模块402接收到的用户输入的产品标识生成获取授权码请求;

第一发送模块404,用于将第一生成模块403生成的获取授权码请求发送给服务平台500;

第一接收模块402,还用于接收授权中心600通过服务平台500返回的失败响应;还用于接收服务平台500发送来的获取成功响应;

第一解析模块405,用于解析第一接收模块402接收到的获取成功响应得到授权码和授权码校验值;

保存模块401,还用于将第一解析模块405得到的授权码和授权码校验值对应保存;

服务平台500,包括:

第二接收模块501,用于接收管理平台400发送来的获取授权码请求;

第二解析模块502,用于解析第二接收模块501接收到的获取授权码请求得到授权码自增编号、企业标识和产品标识;

第二生成模块503,用于根据第二解析模块502得到的授权码自增编号和产品标识生成授权码;

第三生成模块504,用于根据第二生成模块503生成的授权码和第二解析模块502得到的产品标识生成认证授权码请求;

第二发送模块505,用于将第三生成模块504生成的认证授权码请求发送给授权中心600;

第二接收模块501,还用于接收授权中心600发送来的认证成功响应;

组织模块506,用于根据第二接收模块501接收到的认证成功响应和第二生成模块503生成的授权码组织获取成功响应;

第二发送模块505,还用于将组织模块506组织的获取成功响应发送给管理平台400;

授权中心600,包括:

第三接收模块601,用于接收服务平台500发送来的认证授权码请求;

第三解析模块602,用于解析第三接收模块601接收到的认证授权码请求得到授权码和企业标识;

第一判断模块603,用于判断第三解析模块602得到的企业标识对应的剩余认证次数是否有效;

更新模块604,用于当第一判断模块603判断出第三解析模块602得到的企业标识对应的剩余认证次数有效时,更新剩余认证次数;

第一计算模块605,用于更新模块604更新剩余认证次数之后,根据第三解析模块602得到的授权码计算出授权码校验值;

第四生成模块606,用于根据第一计算模块605计算出的授权码校验值生成认证成功响应;

第三发送模块607,用于将第四生成模块606生成的认证成功响应发送给服务平台500;

第三发送模块607,还用于当第一判断模块603判断出第三解析模块602得到的企业标识对应的剩余认证次数无效时,通过服务平台500返回失败响应给管理平台400。

在本实施例中,第一生成模块403,具体用于:

根据保存模块401保存的企业标识、管理员标识、授权码自增编号,及接收到的第一用户输入的产品标识、模板标识生成明文获取授权码请求,根据预设编码算法对明文获取授权码请求编码得到密文获取授权码请求,根据第一预设算法对明文获取授权码请求计算出第一校验和,根据密文获取授权码请求和第一校验和生成获取授权码请求。

在本实施例中,服务平台500,还包括:第一验证模块;管理平台,还包括:显示模块;

其中,第一验证模块,用于验证第二接收模块501接收到的获取授权码请求是否合法;

第二解析模块502,具体用于:当第一验证模块验证第二接收模块501接收到的获取授权码请求合法时,解析第二接收模块501接收到的获取授权码请求得到授权码自增编号、企业标识和产品标识;

第二发送模块505,还用于当第一验证模块验证第二接收模块501接收到的获取授权码请求不合法时,返回失败响应给管理平台400;

第一接收模块402,还用于接收服务平台500返回的失败响应;

显示模块,用于当第一接收模块402接收到服务平台500返回的失败响应时,显示请求失败信息。

可选地,在本实施例中,第一验证模块,具体用于:

执行以下操作中的至少一项:

验证获取授权码请求是否正确;

验证获取授权码请求中含有的企业标识是否有效;

验证获取授权码请求中含有的管理员标识是否有效;

验证获取授权码请求中含有的产品标识是否有效;

验证获取授权码请求中含有的模板标识是否有效;

如验证结果均为是,则判定获取授权码请求合法;否则判定获取授权码请求不合法。

在本实施例中,第一生成模块403,具体包括:

第一转换单元,用于将授权码自增编号转换得到第一预设长度的第一字符串;

第一生成单元,用于生成第二预设长度的随机数;

第二生成单元,用于根据第一转换单元得到的第一字符串和第一生成单元生成的随机数生成第二字符串;

计算单元,用于根据第一转换单元得到的第一字符串、第一生成单元生成的随机数和产品标识计算校验字符;

第三生成单元,用于根据第二生成单元生成的第二字符串和计算单元计算的校验字符生成授权码。

其中,第二生成单元,具体用于:

将第一字符串的每一位上的数据分别插入到随机数的预设位之后得到第二字符串;

或者,

将第一字符串的每一位上的数据分别随机穿插到随机数中得到第二字符串。

计算单元,具体用于:

从第一生成单元生成的随机数中读取左起前预设位上的数据,将读取到的数据与第一字符串相加求和,将求得到和与获取产品标识请求中含有的产品标识做取余运算得到余数,将得到的余数转换成预设进制后作为校验字符;

第三生成单元,具体用于:

将计算单元得到的校验字符添加到第二字符串的最右侧得到授权码。

在本实施例中,第三生成模块504,具体用于:

根据第二生成模块503生成的授权码、第二解析模块502得到的模板标识和产品标识、及获取授权码请求中含有的模板标识和管理员标识生成认证授权码请求。

在本实施例中,授权中心600,还包括:第二验证模块;管理平台400,还包括:显示模块;

第二验证模块,用于验证第三接收模块601接收到的认证授权码请求是否合法;

第三解析模块602,具体用于:当第二验证模块验证第三接收模块601接收到的认证授权码请求合法时,解析第三接收模块601接收到的认证授权码请求得到授权码自增编号、企业标识和产品标识;

第三发送模块607,还用于当所述第二验证模块验证所述第三接收模块601接收到的认证授权码请求不合法时,通过服务平台500返回失败响应给管理平台400;

第一接收模块402,还用于接收服务平台500返回的失败响应;

显示模块,用于第一接收模块402接收到服务平台500返回的失败响应时,显示请求失败信息。

可选地,在本实施例中,第二验证模块,具体用于:

执行以下操作中的至少一项:

验证认证授权码请求是否正确;

验证认证授权码请求中含有的企业标识是否有效;

验证认证授权码请求中含有的企业标识对应的企业是否为有效客户;

如验证结果均为是,则判定第三接收模块601接收到的认证授权码请求合法;否则判定第三接收模块601接收到的认证授权码请求不合法。

在本实施例中,第一判断模块603,具体用于:判断企业标识对应的剩余认证次数是否为零,是则判定企业标识对应的剩余认证次数无效;否则判定企业标识对应的剩余认证次数有效。

进一步地,本实施例中的系统,还包括:加密锁;

对应地,服务平台500,还包括:第二判断模块和第五生成模块;

其中,第二判断模块,用于第二生成模块503根据授权码自增编号和产品标识生成授权码之后,判断授权模式的类型;

第三生成模块504,具体用于:当第二判断模块判断出授权模式为软授权时,根据第二生成模块503生成的授权码和第二解析模块502得到的企业标识生成认证授权码请求;

第五生成模块,用于当第二判断模块判断出授权模式为硬授权时,根据第二生成模块503生成的授权码生成认证授权码请求,发送认证授权码请求给加密锁;

在本实施例中,所述加密锁,包括:

第四接收模块,用于接收服务平台500发送来的认证授权码请求;

第四解析模块,用于解析第四接收模块接收到的认证授权码请求得到授权码;

第二计算模块,用于根据第四解析模块得到的授权码计算出授权码校验值;

第六生成模块,用于根据第二计算模块计算出的授权码校验值生成认证成功响应;

第四发送模块,用于将第六生成模块生成的认证成功响应发送给服务平台500。

在本实施例中,第二判断模块,具体用于:

在第一数据库中查找到系统参数表,读取系统参数表中授权状态对应的数据,如读取到的数据为第一预设数据,则判定授权模式为软授权;如读取到的数据为第二预设数据,则判定授权模式为硬授权。

第五生成模块,具体用于:

将授权码和服务平台500的IP地址作为参数传入第一函数接口,并调用第一函数接口发送认证授权码请求给加密锁;

第四发送模块,具体用于:

回调第一函数接口发送第六生成模块生成的认证成功响应给服务平台500。

在本实施例中,授权中心600,还包括:获取模块;

获取模块,用于第三解析模块602解析第三接收模块601接收到的认证授权码请求得到授权码和企业标识之前,获取服务平台500的IP地址;

对应地,第一计算模块和第二计算模块,具体用于:

根据第二预设算法对授权码和所述IP地址计算出授权码校验值。

可选地,在本实施例中,管理平台400,还包括:显示模块;

显示模块,用于第一接收模块402接收到失败响应时,显示请求失败信息;还用于保存模块401将授权码和授权码校验值对应保存之后,显示请求成功信息。

更进一步地,本实施例中的系统,还包括:客户端;

对应地,服务平台500,还包括:第三验证模块和执行模块;

所述客户端,包括:

第五接收模块,用于接收第二用户的触发信息;

第七生成模块,用于当第五接收模块接收到第二用户的触发信息时,生成含有所述授权码的操作请求;

第五发送模块,用于将第七生成模块生成的操作请求发送给服务平台500;

第二接收模块501,还用于接收客户端发送来的操作请求;

第三验证模块,用于验证第二接收模块501接收到的操作请求中含有的授权码是否合法;

执行模块,用于当第三验证模块验证第二接收模块501接收到的操作请求中含有的授权码合法时,根据第二接收模块501接收到的操作请求执行相应操作得到操作结果;

第二发送模块505,还用于当第三验证模块验证第二接收模块501接收到的操作请求中含有的授权码不合法时,返回错误响应给客户端;还用于将执行模块得到的操作结果返回给客户端。

其中,第五发送模块,具体用于:调用API中的预设函数接口发送操作请求给服务平台500;

第二发送模块505,具体用于:回调API中的预设函数接口将操作结果返回给客户端。

可选地,在本实施例中,第三验证模块,具体用于:

执行以下操作中的至少一项:

验证授权码的格式是否正确;

验证授权码是否有效;

验证授权码是否为单服务平台使用;

如验证结果均为是,则判定接收到的操作请求中含有的授权码合法;否则判定接收到的操作请求中含有的授权码不合法。

在本实施例中,第三验证模块,具体用于:

根据第二预设算法对授权码和服务平台500的IP地址计算出授权码校验值,并在第一数据库中查找所述授权码,读取查找到的授权码对应的授权码校验值,判断计算得到的授权码校验值与读取到的授权码校验值是否相同,是则判定授权码是单服务平台使用,否则判定授权码不是单服务平台使用。

本发明中的技术方案,一方面,第一用户,即软件开发商无需一次性从产品生产厂商处拿到所有含有授权码的加密锁实物,无需通过对加密锁实物的管理,进而管理授权码;而是根据需求通过产品生产厂商提供的管理平台申请所需数量的电子形式的授权码,并对电子形式的授权码进行管理;通过网络化管理方式,大大提升了软件开发商对授权码的管理效率;另一方面,产品生产厂商为软件开发商提供了多种授权方式,软件开发商部署该系统之前可以根据不同的需求针对性的选择不同的授权方式。

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

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