一种基于质数相乘的菜单权限控制方法及系统技术方案

技术编号:32813850 阅读:17 留言:0更新日期:2022-03-26 20:08
本发明专利技术公开了一种基于质数相乘的菜单权限控制方法及系统,其方法包括:赋予不同的权限码不同的质数;抓取菜单id所需的权限名称;在菜单id下建立菜单权限总码,其中,菜单权限总码为菜单id中所勾选的权限码的乘积;抓取用户id所需的权限名称;在用户id下建立用户权限总码,其中,用户权限总码为用户id所需的权限码的乘积;将菜单权限总码不断减去用户权限总码,直到其差值小于用户权限总码为止,得到剩余值。其系统包括权限表建立模块、菜单权限建立模块、用户权限建立模块和菜单权限校验模块。所述基于质数相乘的菜单权限控制方法及系统解决了现有的应用系统权限、角色和用户之间的关系复杂,影响运行的效率的问题。影响运行的效率的问题。影响运行的效率的问题。

【技术实现步骤摘要】
一种基于质数相乘的菜单权限控制方法及系统


[0001]本专利技术涉及信息安全
,特别是一种基于质数相乘的菜单权限控制方法及系统。

技术介绍

[0002]权限控制往往是应用系统中不可或缺的一部分,且广泛渗透到各类中小企业中,而菜单控制权限方案则要需要配合越发复杂的业务逻辑的粒度做出调整。
[0003]现有的菜单权限验证方法,如图1所示,一般是基于RBAC的权限模型,即以权限

角色

用户的形式进行配置,以多对多的形式分配并授权权限。一般表结构存储的方案是以子表的形式存储角色与权限之间的关系,而权限验证则是基于判断权限id是否存在于当前用户所在的用户角色中。当权限的种类增多时,需要存储的权限id就会增多,权限、角色和用户之间的关系就会变得非常复杂,从而影响应用系统运行的效率。

技术实现思路

[0004]针对上述缺陷,本专利技术的一个目的在于提出一种基于质数相乘的菜单权限控制方法,解决了现有的应用系统权限、角色和用户之间的关系复杂,影响运行的效率的问题。
[0005]针对上述缺陷,本专利技术的另一个目的在于提出一种基于质数相乘的菜单权限控制系统,解决了现有的应用系统权限、角色和用户之间的关系复杂,影响运行的效率的问题。
[0006]为达此目的,本专利技术采用以下技术方案:一种基于质数相乘的菜单权限控制方法,包括以下步骤:
[0007]权限表建立步骤:建立权限名称和权限码,将所述权限名称和权限码相关联,赋予不同的所述权限码不同的质数;
[0008]菜单权限建立步骤:构建菜单id,抓取菜单id所需的权限名称并将所述菜单相对路径、菜单id和权限名称相关联;
[0009]在所述菜单id下建立菜单权限总码,其中,所述菜单权限总码为菜单id中所勾选的权限码的乘积;
[0010]用户权限建立步骤:构建用户id,抓取用户id所需的权限名称并将所述用户id和所述权限名称相关联;
[0011]在所述用户id下建立用户权限总码,其中,所述用户权限总码为用户id所需的权限码的乘积;
[0012]菜单权限校验步骤:将菜单权限总码不断减去所述用户权限总码,直到其差值小于所述用户权限总码为止,得到剩余值,当剩余值不为0时,标记该用户id没有该菜单id的操作权限,当剩余值不为0时,标记该用户id拥有该菜单id的操作权限。
[0013]值得说明的是,所述用户权限建立步骤还包括:
[0014]构建用户id后,勾选该用户id,以及勾选需要授权的菜单id;
[0015]计算需要授权的菜单id对应的菜单权限总码,并将所述菜单权限总码的值存储于
所述用户id对应的用户权限总码中。
[0016]可选地,所述权限表建立步骤还包括:随机抓取1至100的质数表内的质数,并根据权限名称建立的时间先后对所述权限码赋予抓取到的质数;其中,每次随机抓取质数后,判断当次抓取的质数与之前已经抓取的质数是否重复,当没有重复时,再抓取下一个质数。
[0017]具体地,在所述菜单权限建立步骤中,将所述菜单权限总码设置为字符长度为20的字符串的格式;在所述用户权限建立步骤中,将所述用户权限总码设置为字符长度为20的字符串的格式。
[0018]优选的,还包括拦截步骤,所述拦截步骤为:
[0019]在控制器前设置拦截器,在菜单权限校验步骤中得到的所述剩余值不为0时,拦截该用户id的当前操作。
[0020]值得说明的是,一种基于质数相乘的菜单权限控制系统,包括权限表建立模块、菜单权限建立模块、用户权限建立模块和菜单权限校验模块;
[0021]所述权限表建立模块用于建立权限名称和权限码,还用于将所述权限名称和权限码相关联,还用于赋予不同的所述权限码不同的质数;
[0022]所述菜单权限建立模块用于构建菜单id,还用于抓取菜单id所需的权限名称并将所述菜单相对路径、菜单id和权限名称相关联;还用于在所述菜单id下建立菜单权限总码,其中,所述菜单权限总码为菜单id中所勾选的权限码的乘积;
[0023]所述用户权限建立模块用于构建用户id,还用于抓取用户id所需的权限名称并将所述用户id和所述权限名称相关联;还用于在所述用户id下建立用户权限总码,其中,所述用户权限总码为用户id所需的权限码的乘积;
[0024]所述菜单权限校验模块用于将菜单权限总码不断减去所述用户权限总码,直到其差值小于所述用户权限总码为止,得到剩余值,还用于当剩余值不为0时,标记该用户id没有该菜单id的操作权限,还用于当剩余值不为0时,标记该用户id拥有该菜单id的操作权限。
[0025]可选地,所述用户权限建立模块还用于勾选用户id,以及勾选需要授权的菜单id;还用于计算需要授权的菜单id对应的菜单权限总码,并将所述菜单权限总码的值存储于所述用户id对应的用户权限总码中。
[0026]具体地,所述权限表建立模块还用于随机抓取1至100的质数表内的质数,并根据权限名称建立的时间先后对所述权限码赋予抓取到的质数;其中,每次随机抓取质数后,判断当次抓取的质数与之前已经抓取的质数是否重复,当没有重复时,再抓取下一个质数。
[0027]优选的,所述菜单权限建立模块还用于将所述菜单权限总码设置为字符长度为20的字符串的格式;
[0028]所述用户权限建立模块还用于将所述用户权限总码设置为字符长度为20的字符串的格式。
[0029]值得说明的是,还包括拦截模块,所述拦截模块用于在控制器前设置拦截器,还用于当得到的所述剩余值不为0时,拦截该用户id的当前操作。
[0030]上述技术方案中的一个技术方案具有如下有益效果:根据质数与合数的定义,一个自然数,如果只有1和它本身两个因数,这样的数叫做质数;一个自然数,如果除了1和它本身还有别的因数,这样的数叫做合数。菜单权限总码和用户权限总码都是由各自对应的
权限码相乘所得,由于这些权限码为质数,即这些权限码除了1以外就不能被其他自然数除尽了,从而得到能够除尽所述菜单权限总码的自然数只有1和相乘得到菜单权限总码对应的权限码以及这些权限码的乘积组合,以及得到能够除尽所述用户权限总码的自然数只有1和相乘得到用户权限总码对应的权限码以及这些权限码的乘积组合。因此将菜单权限总码不断减去所述用户权限总码,得到的剩余值不为0时,代表用户权限总码中没有相乘得到菜单权限总码对应的权限码以及这些权限码的乘积组合,也就是说所述用户Id对应的权限码与所述菜单id对应的权限码完全不相同;剩余值为0时所述用户Id对应的权限码与所述菜单id对应的权限码完至少会有一个相同。所以利用剩余值是否为0就能区分是该用户id是否具有该菜单id下的操作权限,从而减少了权限、角色和用户之间的关系的存储,从而提高了应用系统运行的效率,还能有效防止第三方篡改的风险,提高系统的安全性。
附图说明
[0031]图1是现有的基于RBAC的权限模型的菜单权限控制系统的结构框图;
[0032]图2是本本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于质数相乘的菜单权限控制方法,其特征在于:包括以下步骤:权限表建立步骤:建立权限名称和权限码,将所述权限名称和权限码相关联,赋予不同的所述权限码不同的质数;菜单权限建立步骤:构建菜单id,抓取菜单id所需的权限名称并将所述菜单相对路径、菜单id和权限名称相关联;在所述菜单id下建立菜单权限总码,其中,所述菜单权限总码为菜单id中所勾选的权限码的乘积;用户权限建立步骤:构建用户id,抓取用户id所需的权限名称并将所述用户id和所述权限名称相关联;在所述用户id下建立用户权限总码,其中,所述用户权限总码为用户id所需的权限码的乘积;菜单权限校验步骤:将菜单权限总码不断减去所述用户权限总码,直到其差值小于所述用户权限总码为止,得到剩余值,当剩余值不为0时,标记该用户id没有该菜单id的操作权限,当剩余值不为0时,标记该用户id拥有该菜单id的操作权限。2.根据权利要求1所述的一种基于质数相乘的菜单权限控制方法,其特征在于,所述用户权限建立步骤还包括:构建用户id后,勾选该用户id,以及勾选需要授权的菜单id;计算需要授权的菜单id对应的菜单权限总码,并将所述菜单权限总码的值存储于所述用户id对应的用户权限总码中。3.根据权利要求1所述的一种基于质数相乘的菜单权限控制方法,其特征在于,所述权限表建立步骤还包括:随机抓取1至100的质数表内的质数,并根据权限名称建立的时间先后对所述权限码赋予抓取到的质数;其中,每次随机抓取质数后,判断当次抓取的质数与之前已经抓取的质数是否重复,当没有重复时,再抓取下一个质数。4.根据权利要求1所述的一种基于质数相乘的菜单权限控制方法,其特征在于:在所述菜单权限建立步骤中,将所述菜单权限总码设置为字符长度为20的字符串的格式;在所述用户权限建立步骤中,将所述用户权限总码设置为字符长度为20的字符串的格式。5.根据权利要求1所述的一种基于质数相乘的菜单权限控制方法,其特征在于:还包括拦截步骤,所述拦截步骤为:在控制器前设置拦截器,在菜单权限校验步骤中得到的所述剩余值不为0时,拦截该用户id的当前操作。6.一种基于质数相乘的菜单权限控制系统,其特征在于:包括权限表建立...

【专利技术属性】
技术研发人员:何健进吕火生
申请(专利权)人:西藏众陶联供应链服务有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1