发觉自己老了,附精妙权限算法一则
来源:互联网 发布:大淘客cms偷单吗 编辑:程序博客网 时间:2024/04/29 04:27
刚才在研究系统的权限算法,看了很多文章和帖子,每当看到一个新算法,就拍案称绝,却全然没有了往日的理性判断,直到看到该算法后面的评论才能发现其中的缺陷。猛然发觉,这不就是岁数大了,头脑不够使的典型症状么?!
人不思不明,看来头脑这东西还是要经常使,总被破烂事塞满脑子,最终也就变成了破烂。
收藏小型权限算法一则:此算法只适用于小型系统的权限设置,而且使用整型数字作为权限阈值,所以数据字典务必要做好,否则后患无穷~
假设有权限定义——
删除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));
即,当用户有操作权限时,运算出来的结果都会等于这个操作需要的权限值。
因此,可设计如下方法作为权限判断(单权限系统),多权限系统在此基础上扩展即可:
此方法虽然简洁而精妙,却由于整数位数限制,而只能表示有限种权限,因此只适用于小型简单系统的权限控制。
原算法及其探讨见http://www.javaeye.com/topic/714076
- 发觉自己老了,附精妙权限算法一则
- 看看曾经的文章,发觉自己老了
- 发觉自己太嫩了
- 突然发觉自己不喜欢思考了。。。
- 发觉自己很小菜
- 你发觉了吗?
- 突然觉得自己老了
- 发现自己老了许多
- 感觉自己有点老了
- 最近发觉自己很容易焦虑
- 发觉
- 好久没上csdn了,看回了以前的文章,发觉以前的自己,真的,挺那个的。
- 你觉得自己老了吗
- 发觉自己最近心境很浮躁
- 发觉自己编程很没毅力
- 有时候突然发觉自己太无知
- TortoiseSVN权限生效一则
- 回首自己走过的路,突然发觉自己很颓废
- 被wpf折腾死了
- Fabridge-沟通javascript与flex的桥梁
- .net自动发送邮件,适用于MD5或sha1加密后的密码取
- Test
- DES的两个简单的加密、解密函数(C#中使用)
- 发觉自己老了,附精妙权限算法一则
- sql server 2000 扩展盘区分配错误 error:8905 的问题解决
- 使用JS让一般人不能复制你的劳动成果
- 永久去除桌面快捷方式小箭头的简单方法
- 正则表达式使用详解
- 在JS中常用的郑则表达式
- asp.net中,异地调用JS文件,产生乱码的解决
- http://acm.hdu.edu.cn/showproblem.php?pid=1299 (求因子个数)
- 页面存储html代码遇到的问题