权限控制算法权限控制算法

权限控制算法的实现,很经典的 一种常用的权限控制算法的实现,是一个论坛曾经用的,比较有代表性和通用性 立即下载
这里我介绍一种很常用,也比较Professor的权限控制思路。
这里我用java语言描述,其实都差不多的。自己转一下就可以了。
为了方便,我们这里定义a^b为:a的b次方
这里,我们为每一个操作设定一个唯一的整数值,比如:

删除A---0
修改A---1
添加A---2

删除B---3
修改B---4
添加B---5
。。。

理论上可以有N个操作,这取决于你用于储存用户权限值的数据类型了。

这样,如果用户有权限:添加A---2;删除B---3;修改B---4
那用户的权限值 purview =2^2+2^3+2^4=28,也就是2的权的和了(之前打错了)。
化成二进制可以表示为11100
这样,如果要验证用户是否有删除B的权限,就可以通过位与运算来实现。
在Java里,位与运算运算符号为&
即是:int value = purview &((int)Math.pow(2,3));
你会发现,当用户有操作权限时,运算出来的结果都会等于这个操作需要的权限值!

原理:
位与运算,顾名思义就是对位进行与运算:
以上面的式子为例:purview & 2^3 也就是 28&8
将它们化成二进制有
 11100
& 01000
-------------------
  01000 == 8(十进制) == 2^3
同理,如果要验证是否有删除A---0的权限
可以用:purview &((int)Math.pow(2,0));
即:
 11100
& 00001
------------------------
  00000 == 0(十进制)  != 2^0

这种算法的一个优点是速度快。可以同时处理N个权限
如果想验证是否同时有删除A---0和删除B---3的权限
可以用purview&(2^0+2^3)==(2^0+2^3)?true:false;
设置多角色用户。根据权限值判断用户的角色。。。

下面提供一个java的单操作权限判断的代码:

//userPurview是用户具有的总权限
//optPurview是一个操作要求的权限为一个整数(没有经过权的!)
public static boolean checkPower(int userPurview, int optPurview)
{
int purviewValue = (int)Math.pow(2, optPurview);
return (userPurview & purviewValue) == purviewValue;
}
当然,多权限的验证只要扩展一下就可以了。
几点注意事项:首先,一个系统可能有很多的操作,因此,请建立数据字典,以便查阅,修改时使用。其次,如果用数据库储存用户权限,请注意数值的有效范围。操作权限值请用唯一的整数! 
经典权限管理算法 经典权限管理,可以控制每个模块不同用户的权限,思路很好 立即下载

相关推荐

Coppelia Sim (v-REP)仿真 机器人3D相机手眼标定与实时视觉追踪 (一)

先把这连个都添加到场景中,然后把kinect的depth相机拖到vision sensor中,把kinect的script也拖到vision sensor中,同时要注意修改深度相机的坐标,及修改script,删掉/rgb部分。由于需要导入到仿真场景中PDF文件不能直接导入,所以需要生成图下文件,使用windows自带的画图工具,生成以厘米为单位的图像格式,大小和标定板的设置大小一直。可以生成需要用的标定板的文件,设置标定板的大小,棋盘格的大小,等相关的参数,之后可以保存PDF文件。设置plane的大小。

hong3731的专栏 1753

浅谈权限管理的设计与实现

一、权限管理的意义 保证安全:避免误操作、人为破坏、数据泄露等。 数据隔离:不同的权限能看到及操作不同的数据,互不干扰。 职责明确:不同角色处理不同事务,细化职责,规范并简化流程。 二、权限管理系统的通用设计思路 某个主体(subject也就是用户) 对某个 客体(object也就是资源) 需要实施某种操作(operation),系统对这种操作的管理控制就是权限控制。 1. 权限分类 操作权限 API 权限 菜单权限 按钮权限 数据权限 所谓操作权限就是用户是否有执行某项操作的权限,比方说是否可以审批你

qq_35448165的博客 3204

YOLOv5添加注意力机制的具体步骤

本文主要介绍了 本文在此篇博客的基础上向YOLOv5-5.0版 本文主要包括以下内容一、CBAM注意力机制添加(1)修改yolov5s主干网络(2)在common.py中添加可调用的CBAM模块(3)向yolo.py文件添加CBAMC3判断语句二、SE注意力机制添加 本文以yolov5s网络为例 一、CBAM注意力机制添加 注意力机制可以添加在backbone,Neck,Head等部分,接下来本文以backbone主干网络为例 (1)修改yolov5s主干网络 1.在yolov5-5.0工程文件夹下,找到m

thy0000的博客 2万+

按位与(&)在权限设计方面的用法

转自:https://blog.youkuaiyun.com/jjddrushi/article/details/52303628传统的权限设计需要设计权限表和桥表,这样造成的数据冗余是相当大的,且数据表的查询也消耗掉 不少时间。 利用按位与(&)的一些数学特性可以取代这些。 例如: 1 代表超级管理员 2 代表商务 4 代表运营 2的n次方 … 而,你的权限是3,那么就代表你拥有1和2两个权限,7就...

Gytha_1的博客 1335

实验记录 | 如何拆分scATAC-seq数据成为单个细胞?(1、解决barcode问题)

在师兄的帮助下,我得到了师兄筛选过的细胞的barcode的数据,那么接下来我想根据这些barcode,将来源于同一个barcode的细胞的reads提取出来,这个还是一个蛮有技术含量的事情的,因为上次我有使用过perl的脚本进行提取,最后的实验结果很糟糕,故而这件事情一直搁置到现在,没有继续去做(我的脚本的编写能力还是有待于加强,可能是刚刚喝了奶茶,和老妈弟弟聊了好多闲话,很开心,觉得在某种程度上休息够了,对于工作也是一种非常快乐和积极的状态了)。 0。前期失败尝试回顾 ...

weixin_40640700的博客 1887

uds协议之can总线程序升级

uds协议简介 如何利用uds协议升级 升级流程 uds服务类型介绍

fangye945a的博客 1万+

权限位方式的权限设计

权限位权限码架构实现web系统权限设计

RayChiu757374816的博客 592

SEGGER Embedded Studio初体验

先楫HPM5E00EVK开发环境搭建

hywing's blog 1109

2014年最新权限管理算法总结

 原文:2014年最新权限管理算法总结        本文纯属个人总结,只给大家学习参考,权限管理系统我相信每个系统都会需要,所以设计一个好的权限管理系统会在系统开发中起到至关重要的作用,节省人力成本和资源,可以不用每次都为权限设计煞费心机。可能每个公司对权限的设计大体相同,略有不同,但是都会不离其中。用户、部门、角色、权限之间的关系作调整。本人现在职于某公司,专门做权限的二次开发,对权限

神经网络爱好者 1277

YOLOv11改进策略【Neck】| PRCV 2023,SBA(Selective Boundary Aggregation):特征融合模块,描绘物体轮廓重新校准物体位置,解决边界模糊问题

SBA 模块在医疗图像分割中具有重要作用,其设计出发点是解决图像中物体边界模糊以及融合特征时的冗余和不一致问题。

Limiiiing的博客 1944

基于深度学习的鸟类检测识别系统:YOLOv5 + YOLOv8 + YOLOv10 + UI界面 + 数据集

YOLOv5是当前目标检测领域非常流行的模型,具有良好的检测精度和实时推理速度。其网络结构相比前几代YOLO模型进行了优化,尤其是在检测精度和计算效率上有了显著提高。YOLOv5特点高效性:能够在较低的硬件环境下进行实时检测。易于部署和使用:YOLOv5提供了简单的API接口,方便开发者快速集成和使用。优异的精度:在多个数据集上测试,表现出色。本文详细介绍了基于YOLOv5、YOLOv8和YOLOv10的鸟类检测识别系统的设计与实现。

YOLO 1115

权限控制算法

在DWZ中看到这个算法,贴出来分享   这里我介绍一种很常用,也比较Professor的权限控制思路。 这里我用java语言描述,其实都差不多的。自己转一下就可以了。 为了方便,我们这里定义a^b为:a的b次方 这里,我们为每一个操作设定一个唯一的整数值,比如:   删除A---0 修改A---1 添加A---2   删除B---3 修改B---4 添加B---5 ...

lk_xiang的博客 179

深入探讨:StoreKit 2的交易处理与收据验证

iOS应用开发中,StoreKit 2带来收据处理和交易验证的新变化。本文通过实例分析,对比传统StoreKit与StoreKit 2的差异,指出直接访问sandboxReceipt文件可能引发错误。解决方案是使用Transaction对象和SKReceiptRefreshRequest,详细介绍了如何初始化ReceiptLoader、处理交易更新及验证收据的完整流程,帮助开发者适应新框架,确保购买流程安全可靠。

m0_74337424的博客 358

通用权限控制算法的实现

通用权限控制算法的实现 一种常用的权限控制算法的实现,参考LINUX/UNIX权限编码这里笔者介绍一种很常用,也比较专业的权限控制思路。要换成其他的语言主,自己转一下就可以了。这里用java语言描述,其实都差不多的。为了方便起见,我们这里定义a^b为:a的b次方。这里,我们为每一个操作设定一个唯一的整数值,比如:删除A---0修改A---1添加A---2删除B---3修改B---4添加B-

zhongguomin的专栏 936

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Java通用权限控制算法

<br />一种常用的权限控制算法的实现,参考LINUX/UNIX权限编码<br />这里笔者介绍一种很常用,也比较专业的权限控制思路。<br />要换成其他的语言主,自己转一下就可以了。<br />这里用java语言描述,其实都差不多的。<br />为了方便起见,我们这里定义a^b为:a的b次方。<br />这里,我们为每一个操作设定一个唯一的整数值,比如:<br />删除A---0<br />修改A---1<br />添加A---2<br />删除B---3<br />修改B---4<br />添加B-

xjlong555的专栏 476

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

java 权限控制的算法

这里笔者介绍一种很常用,也比较专业的权限控制思路。这里用java语言描述,其实都差不多的。要换成其他的语言主,自己转一下就可以了。为了方便起见,我们这里定义a^b为:a的b次方。这里,我们为每一个操作设定一个唯一的整数值,比如: 删除A---0修改A---1添加A---2删除B---3修改B---4添加B---5……  理论上可以有N个操作,这取决于你用于储存用户权限值的数据类型了。  这样,如果...

爪蛙 Today is well worth effort 167

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

通过Java实现一种常用的权限控制算法

这里笔者介绍一种很常用,也比较专业的权限控制思路。这里用java语言描述,其实都差不多的。要换成其他的语言主,自己转一下就可以了。为了方便起见,我们这里定义a^b为:a的b次方。这里,我们为每一个操作设定一个唯一的整数值,比如:删除A---0修改A---1添加A---2  

zh029t的专栏 1365

java 权限控制算法

http://www.sudu.cn/info/html/edu/java/20080403/259431.htmlhttp://www.cnblogs.com/hedonister/archive/2006/11/21/567383.html权限控制算法这里我介绍一种很常用,也比较Professor的权限控制思路。这里我用java语言描述,其实都差不多的。自己转一下就可以了。为了方便,我们这里定

zhangjun050754的专栏 1026

权限控制算法[转贴+原创]

权限控制算法http://tech.163.com 2006-01-24 11:30:00 来源: 蓝色理想 这里我介绍一种很常用,也比较Professor的权限控制思路。这里我用java语言描述,其实都差不多的。自己转一下就可以了。为了方便,我们这里定义a^b为:a的b次方这里,我们为每一个操作设定一个唯一的整数值,比如:删除A0修改A1添加A2删除B3修改B4添加B5。。。理论上可以有N个

1300

转帖——权限控制算法

1.一种实用的权限控制算法 这里用java语言描述,其实都差不多的。自己转一下就可以了。 为了方便,我们这里定义a^b为:a的b次方 这里,我们为每一个操作设定一个唯一的整数值,比如: 删除A---0 修改A---1 添加A---2 删除B---3 修改B

chengzhangmsdn的专栏 741
上一篇: 彻底解决ASP.net Request乱码问题
下一篇: 初探PHP模板技术
leeDotNET
博客等级 码龄20年 1粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值