位运算 (‘&‘,‘|‘,‘^‘)

使用位运算控制角色权限,这样替代了传统的rbac,使用位运算,使得逻辑更加清楚,操作数据库次数变少...

这里面主要是二进制和十进制之间的转换,在python中 bin()方法可以直接查看一个十进制数字的二进数数值, 比如你现在有三个角色,那就对这三个角色没人赋予一个键用来存储十进制数字,(通常是1-----7之间) ,而权限也需要对其进行赋予一个键用来存储十进制数字(通常1,2,4),不懂得这几位数字的小伙伴可以在python中使用'&'方法,

当进行权限认证的时候,查看这个接口此用户能不能访问  直接使用它自己的auth和权限的node   auth &node  比较 ,如果大于0  那就是可以进入

而这其中的   '|' ,' ^' 可以用在修改权限   "|"  :比如  用户的auth | 权限的node    1|4时  bin(1) == 0b1   bin(4) == 0b100    那么他们| 就等于  0b101  也就是5  这样应该就可以发现其中的规律  当其中位数相等时那一位数等于0 

而'^'和其正好相反,相同位数为0 相异为1   所以 1 ^4 == 5    0b001 ^ 0b100 == 0b101

这两个正好可以用来做修改权限   正好相反嘛,   这个东西看的就是位数    0b001位1  这个位数是从右往左读的  最右面是第一位    没有的位数会填充为0     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值