掌桥专利:专业的专利平台
掌桥专利
首页

一种应用离线授权加密进行权限控制的实现方法

文献发布时间:2024-01-17 01:21:27


一种应用离线授权加密进行权限控制的实现方法

技术领域

本发明涉及计算机技术领域,具体涉及一种应用离线授权加密进行权限控制的实现方法。

背景技术

随着信息化的发展,各企业开始进行开发软件然后进行出售,如果客户的软件运行环境是接通外网的话,就可以通过在线访问企业提供的接口进行授权及权限控制等操作,也不会被客户所破解,所以大多数企业的会选择进行在线授权。但是也有一些特殊情况,比如客户那边是国家相关的事业单位不允许接通外网,企业这边就只能选择离线授权的方式。

在中国专利文献CN109257209A中,公开了一种数据中心服务器集中管理系统及方法,其中运维人员是运维工作的执行者,根据运维管理员分配的资源,在符合接入策略的前提下,进行服务器的连接,发起运维操作,具体工作流程包括以下步骤:(1)运维人员通过身份认证模块认证后进入管理系统,查看运维管理员授权的服务器列表,选择需要访问的服务器进行连接访问;(2)运维人员发起访问服务器的申请,访问控制模块根据对运维人员的接入授权和资源授权信息进行访问控制校验,校验通过则允许用户的访问,校验未通过则不允许该用户的操作;(3)运维人员通过校验后,通过运维管理模块实现对对应服务器的连接和操作;操作完成后,运维管理模块关闭服务器的连接,并将对服务器的登录和访问操作会生成登录日志和会话日志,审计日志模块记录登录日志和会话日志以用户通过供用户管理模块查看。

但是上述技术方案不能选择离线授权,需要进行服务器的连接;因此,需要研发出一种离线状态下,客户可对多个节点进行权限控制授权的实现方法。

发明内容

本发明要解决的技术问题是提出一种应用离线授权加密进行权限控制的实现方法,实现离线状态下,可对多个节点进行权限控制授权。

为了解决上述技术问题,本发明采用的技术方案是:该应用离线授权加密进行权限控制的实现方法,具体包括以下步骤:

S1生成加密授权文件:针对不同的客户生成不同的授权文件许可ID,将授权文件许可ID以及授权开始结束时间写入授权文件信息内;对授权文件进行加密处理,生成公钥及加密授权文件,将公钥及加密授权文件交付给客户;

S2加密授权文件的上传存储:对客户上传的加密授权文件进行一次解密和一次校验,若通过校验,则进行一存储;若未通过校验,则不进行存储;

S3根据加密授权文件进行节点授权:对节点进行扫描授权;对节点授权前,先通过公钥进行加密授权文件的解密,读取到加密授权文件信息后,对加密授权文件中的能授权的节点数信息进行一次校验,通过校验后进行节点授权;

S4对已授权节点进行校验:先查出已授权节点信息,然后对已授权节点进行校验,校验通过则供用户使用。

当在客户的运行环境无法接通外网时,在线的授权技术方案行不通,而采采用上述技术方案,将产品管理平台及节点统一出售给客户,又需要通过管理平台来对节点进行授权使用,客户运行环境有可能存在离线不通外网的情况,用了离线的授权方式来解决客户的这一需求,授权的相关信息需要存储供代码使用,并避免了客户通过修改授权的相关信息的方式来避开授权。

优选地,在所述步骤S1中,管理平台会针对不同客户来校验授权文件许可ID;通过AES对称加密和RSA非对称加密的加密方式对授权文件进行加密处理。AES对称加密和RSA非对称加密的加密都属于公知加密方法。

优选地,所述步骤S2中,客户通过管理平台进行加密授权文件上传存储,所述管理平台通过前端提交文件,读取文件IO流后,所述管理平台通过公钥对加密授权文件进行一次解密,将加密授权文件内信息读取处理进行一次校验。

优选地,在所述步骤S2中进行校验的步骤为:首先判断当前系统时间是否小于加密授权文件内的授权结束时间,若比对结果是小于授权结束时间,则加密授权文件不进行存储,同时判断授权文件许可ID是否为当前客户代码中的授权文件许可ID,若是,则通过校验,若不是则校验不通过。首次上传授权文件同时通过校验的话,将授权文件进行一次存储,以便后续代码读取文件信息对节点进行授权使用。

优选地,所述步骤S3中,当加密授权文件通过校验后,则存放在服务器,客户可通过管理平台对节点进行扫描授权;在对节点授权前,所述管理平台会先通过公钥进授权文件的解密;根据节点信息加密方式来查询已授权节点数量。优选地,所述步骤S3中,对节点进行扫描授权时,将节点的唯一识别码和节点授权信息字段使用Spring Security框架中的BCryptPasswordEncoder类encode方法进行Bcrypt算法加密,将节点唯一识别码、节点授权信息以及节点加密后获得到的加密字段添加进数据库;或者通过BCryptPasswordEncoder类matches方法将节点唯一识别码、节点授权信息以及节点加密后获得到的加密字段进行比对来判断这三个字段是否存在以及是否相同。具体判断的步骤为:首先判断这三个字段是否存在,若存在再进行相同判断;再将唯一识别码、节点授权信息组合起来执行matches方法跟加密后的字段进行比对,判断是否相同,相同返回true,不同返回false。其中的matches方式是用于将加密后的字段跟加密前字段进行比对判断是否相同;其中的encode方法是用于唯一识别码、节点授权信息组合起来进行加密获得加密后的字段。Spring Security是一种java中的开源框架;BCryptPasswordEncoder是该框架中的一个文件名称。因为加密前的唯一识别码以及加密后的字段都是唯一的,不存在相同的,所以可根据加密后的字段进行重复判断,防止客户之间修改数据库将这三个字段从已完成授权的节点完全复制到未授权的节点信息中,这样就可以防止重复节点出现。

优选地,所述步骤S3中,根据节点唯一识别码、节点授权信息以及节点加密后获得到的加密字段进行查询已授权节点数量。

优选地,所述步骤S2中在第一次进行安装所述管理平台时,确认系统时间没有问题时再将当前时间进行MD5加密后存入数据库,再在存入所述数据库后,代码中的定时任务则定时将所述数据库的存储时间进行解密加时间然后加密存入所述数据库。代码中授权到期时间不根据系统时间进行判断比对,这样避免了系统时间不准确,或者有人修改系统时间造成授权到期日期判断不准确问题,因此采用安装管理平台,确认系统时间没有问题时再进行加密。

优选地,所述步骤S4中在所述管理平台使用已授权节点时进行授权校验,先查出已授权节点信息,然后对节点唯一识别码、节点授权信息以及节点加密后获得到的加密字段进行校验,先判断这三个字段是否存在,然后判断节点加密字段是否存在重复的,对节点授权信息进行解密,授权时间校验判断是否过期,最后对授权节点数量进行校验,判断授权数量是否超出授权文件所能授权的数量。进行加密的原因时防止有人直接修改数据库存储时间,存入数据库后,代码中的定时任务会定时将数据库存储时间进行解密加时间然后加密存库,这样就有效的防止了客户修改系统时间这一应用场景。

优选地,所述步骤S1中,将公钥及加密授权文件交付给客户前,将代码打成jar包,对jar包中的部分代码进行代码混淆。

优选地,所述步骤S4中在所述管理平台使用已授权节点时进行授权校验,先查出已授权节点信息,然后对节点唯一识别码、节点授权信息以及节点加密后获得到的加密字段进行校验,先判断这三个字段是否存在,然后判断节点加密字段是否存在重复的,对节点授权信息进行解密,授权时间校验判断是否过期,最后对授权节点数量进行校验,判断授权数量是否超出授权文件所能授权的数量。

优选地,所述步骤S1中,将公钥及加密授权文件交付给客户前,将代码打成jar包,对jar包中的部分代码进行代码混淆。

将jar包部署到客户的运行环境,客户也可通过反编译的方式查看离线授权的逻辑,然后通过我们授权的逻辑进行相应的破解;将jar包进行代码混淆,让客户无法通过反编译的形式来获取授权的相关逻辑,有效的避免了反编译的问题。

与现有技术相比,本发明是一个基于java实现的管理平台对多节点离线授权进行权限控制的实现方法,在本发明中使用到的公知加密方法有:AES对称加密、RSA非对称加密、Bcrypt加密算法,通过将授权信息进行AES+RSA的方式进行加密后又将加密后的授权信息和节点特有的唯一识别码进行组合再次通过Bcrypt算法加密入数据库的方式保证了授权信息的安全性,使授权信息不容易被破解;线上授权的方式相对于离线方式要简单许多,线上授权方式不会面临着数据存储到客户的运行环境、以及一些重要的逻辑判断也不会收到客户影响,只需要提供一个授权接口供客户那边进行调用即可;本发明中内置了系统时钟,不依靠客户运行环境的系统时间进行授权到期日期的比较,有效的防止了修改系统时间来破解授权技术的方式。

对客户而言,本发明有效的防止了一些恶意破解,解决了一系列离线授权面临的问题,使购买产品的客户权益得到了保障,不会出现有破解版免费使用的情况;对企业而言,本发明解决了这些离线问题后,让客户买更放心企业卖的更好,减少了买卖之间的顾虑,使企业的权益也得到了相应的保障。

附图说明

图1是本发明的应用离线授权加密进行权限控制的实现方法的授权流程示意图;

图2是本发明的应用离线授权加密进行权限控制的实现方法的上传授权文件并校验流程图;

图3是本发明的应用离线授权加密进行权限控制的实现方法的授权逻辑图;

图4是本发明的应用离线授权加密进行权限控制的实现方法的首次安装系统时间的流程图;

图5是本发明的应用离线授权加密进行权限控制的实现方法的授权加密及解密校验逻辑图:

图6是本发明的应用离线授权加密进行权限控制的实现方法的使用节点功能时的流程图;

图7是本发明的应用离线授权加密进行权限控制的实现方法的加密后文件的图片示例。

具体实施方式

下面将结合本发明的实施例图中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。

如图1所示,该应用离线授权加密进行权限控制的实现方法,具体包括以下步骤:

S1生成加密授权文件:针对不同的客户生成不同的授权文件许可ID,将授权文件许可ID以及授权开始结束时间写入授权文件信息内;对授权文件进行加密处理,生成公钥及加密授权文件,将公钥及加密授权文件交付给客户;在所述步骤S1中,管理平台会针对不同客户来校验授权文件许可ID;通过AES对称加密和RSA非对称加密的加密方式对授权文件进行加密处理;加密后的文件的图片示例如图7所示;AES对称加密和RSA非对称加密的加密都属于公知加密方法;

所述步骤S1中,将公钥及加密授权文件交付给客户前,将代码打成jar包,对jar包中的部分代码进行代码混淆;

将jar包部署到客户的运行环境,客户也可通过反编译的方式查看离线授权的逻辑,然后通过我们授权的逻辑进行相应的破解;将jar包进行代码混淆,让客户无法通过反编译的形式来获取授权的相关逻辑,有效的避免了反编译的问题;

S2加密授权文件的上传存储:对客户上传的加密授权文件进行一次解密和一次校验,若通过校验,则进行一存储;若未通过校验,则不进行存储;如图2所示,所述步骤S2中,客户通过管理平台进行加密授权文件上传存储,所述管理平台通过前端提交文件,读取文件IO流后,所述管理平台通过公钥对加密授权文件进行一次解密,将加密授权文件内信息读取处理进行一次校验;在所述步骤S2中进行校验的步骤为:首先判断当前系统时间是否小于加密授权文件内的授权结束时间,若比对结果是小于授权结束时间,则加密授权文件不进行存储,同时判断授权文件许可ID是否为当前客户代码中的授权文件许可ID,若是,则通过校验,若不是则校验不通过;如图5所示,所述步骤S2中在第一次进行安装所述管理平台时,确认系统时间没有问题时再将当前时间进行MD5加密后存入数据库,再在存入所述数据库后,代码中的定时任务则定时将所述数据库的存储时间进行解密加时间然后加密存入所述数据库;

S3根据加密授权文件进行节点授权:对节点进行扫描授权;对节点授权前,先通过公钥进行加密授权文件的解密,读取到加密授权文件信息后,对加密授权文件中的能授权的节点数信息进行一次校验,通过校验后进行节点授权,授权逻辑图如图3所示;所述步骤S3中,当加密授权文件通过校验后,则存放在服务器,客户可通过管理平台对节点进行扫描授权;在对节点授权前,所述管理平台会先通过公钥进授权文件的解密;根据节点信息加密方式来查询已授权节点数量;授权加密及解密校验逻辑图如图4所示,所述步骤S3中,对节点进行扫描授权时,将节点的唯一识别码和节点授权信息字段使用Spring Security框架中的BCryptPasswordEncoder类encode方法进行Bcrypt算法加密,将节点唯一识别码、节点授权信息以及节点加密后获得到的加密字段添加进数据库;或者通过BCryptPasswordEncoder类matches方法将节点唯一识别码、节点授权信息以及节点加密后获得到的加密字段进行比对来判断这三个字段是否合理;具体判断的步骤为:首先判断这三个字段是否存在,若存在再进行相同判断;再将唯一识别码、节点授权信息组合起来执行matches方法跟加密后的字段进行比对,判断是否相同,相同返回true,不同返回false。其中的matches方式是用于将加密后的字段跟加密前字段进行比对判断是否相同;其中的encode方法是用于唯一识别码、节点授权信息组合起来进行加密获得加密后的字段。Spring Security是一种java中的开源框架;BCryptPasswordEncoder是该框架中的一个文件名称。因为加密前的唯一识别码以及加密后的字段都是唯一的,不存在相同的,所以可根据加密后的字段进行重复判断,防止客户之间修改数据库将这三个字段从已完成授权的节点完全复制到未授权的节点信息中,这样就可以防止重复节点出现;所述步骤S3中,根据节点唯一识别码、节点授权信息以及节点加密后获得到的加密字段进行查询已授权节点数量;

S4对已授权节点进行校验:先查出已授权节点信息,然后对已授权节点进行校验,校验通过则供用户正常使用;如图6所示,步骤S4中在所述管理平台使用已授权节点时进行授权校验,先查出已授权节点信息,然后对节点唯一识别码、节点授权信息以及节点加密后获得到的加密字段进行校验,先判断这三个字段是否存在,然后判断节点加密字段是否存在重复的,对节点授权信息进行解密,授权时间校验判断是否过期,最后对授权节点数量进行校验,判断授权数量是否超出授权文件所能授权的数量。进行加密的原因时防止有人直接修改数据库存储时间,存入数据库后,代码中的定时任务会定时将数据库存储时间进行解密加时间然后加密存库,这样就有效的防止了客户修改系统时间这一应用场景。

以上所述仅为本发明的较佳实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 一种基于离线动态二维码的加密对时方法
  • 一种基于加密锁进行权限控制的实现方法
  • 一种主板启动权限控制的授权加密方法
技术分类

06120116154145