权限管理二进制算法
来源:互联网 发布:新版ipad淘宝无法横屏 编辑:程序博客网 时间:2024/05/31 19:49
权限管理在一个系统中是不可或缺的,一个成熟的系统框架必然含有一个完善的权限管理机制,笔者初次尝试设计权限管理框架,了解到普遍采用二进制算法方式实现的,这里总结一下分享给大家。
其实关于二进制算法,说白了就是运用了“按位与”、“按位或”、“按位异或”运算,下面看看这个例子
public void testBinary() {// 判断是否有权限String binaryVal = "100";int i = Integer.parseInt(binaryVal, 2); //转化为二进制String binaryStr = "00010101";int j = Integer.parseInt(binaryStr, 2);if ((i & j) == i) {System.out.println("拥有删除权限");} else {System.out.println("没有删除权限");}}public void testBinary2() {// 兼容两者权限,只要任意一方拥有权限,则视为该用户具有该权限String adminBinary = "110110001";int i = Integer.parseInt(adminBinary, 2);String operatorBinary = "001100100";int j = Integer.parseInt(operatorBinary, 2);String lastBinary = Integer.toBinaryString((i | j));System.out.println(lastBinary);}public void testBinary3() {// 添加 int c = 1;// ...0001 // 查询 int r = 2;// ...0010 // 修改 int u = 4;// ...0100 // 删除 int d = 8;// ...1000 // 添加授权int usera = c | r | u; // 用户A有添加和修改权限 int userb = c | d; // 用户B有添加和删除权限System.out.println(Integer.toBinaryString(usera));System.out.println(Integer.toBinaryString(userb));// 删除授权usera = usera & (~r); // 删除用户A的查询权限System.out.println(Integer.toBinaryString(usera));}
在数据库表中记录二进制的值采用数值类型存储即可。关于“按位与”等运算这里就不介绍了,大家自己百度下就知道了。
采用二进制来实现权限管理还是比较简单的。
- 权限管理二进制算法
- 二进制权限管理
- java 二进制 权限管理
- 用二进制进行权限管理
- 用二进制进行权限管理
- 用二进制进行权限管理
- 权限管理算法
- linux权限管理算法
- 权限管理算法
- 基于二进制的权限管理与验证
- 基于二进制的权限管理与验证
- 基于二进制的权限管理与验证
- 基于二进制的权限管理与验证
- 基于二进制的权限管理与验证
- 二进制权限
- 二进制权限
- 权限管理控制算法(位与算)
- 权限管理控制算法(位运算)
- Windows Phone 开发学习笔记(一) 开发环境搭建
- 各浏览器navigator.userAgent实例
- HDU 2757 优先队列+广搜
- HDU 1896
- 关于会议室投影电脑的设计演化思路
- 权限管理二进制算法
- HDU 1678
- 嵌入式需要的技术
- C#集合小结
- strtok是个“失败”的设计
- protobuf在网络编程中的应用思考
- ALSA发声 从class到功能模块
- 利用NSXMLParser来解析xml文件
- ZOJ1536 Labyrinth