位运算权限控制

大家玩Linux的时候应该知道读1写2执行4,其实这样的数据都是因为位运算

比如:在网站中经常使用的权限控制(增删改的权限)[很多大公司都是使用这个]

使用三位表示增删改,对应关系如图

0

0

0

0

0

0

1

1

0

1

0

2

0

1

1

3

1

0

0

4

1

0

1

5

1

1

0

6

1

1

1

7

这个列表大家能看明白吧?

也就是最高位标识是否拥有增的权限,中间一位标识是否拥有删的权限,第三栏标识是否用改的权限,第四栏标识的是前面三位的十进制表达

数据库存储的是十进制数,在使用的时候需要转换成二进制(我这里使用PHP来表示)

默认是0,这样我们需要授权的时候只用使用“|”来授权

//定义权限

define(‘UPD’, 1<< 0);     // 把更新权限放在最右边

define(‘DELE’, 1<<1);     // 删除权限向左移一位

define(‘ADD’, 1<<2);    // 增加权限向左移两位

授权

$is = UPD | ADD;//更新和增加的权限十进制是5,二进制是101

如果需要判断是否拥有这样的权限

$is & UPD (101 & 001 )

如果需要取消授权那么可以使用异或^来移除权限

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏三木的博客

Linux shell 程序设计2——bash的内置命令

常用的内置命令忽略,来看看shell编程中其他一些重要的内置命令: 1、help:显示所有内置命令列表,或显示一个具体命令的用法。 -s: 表示列出命令的语法...

2166
来自专栏程序员同行者

python3模块: os

1093
来自专栏码生

Linux 权限代码解析

首先说明: 数字后面为9位由字母或-组成的 每三位对应前面的一个数字 例如:755 rwx 对应第一个7 r-x 对应第二个5 r-x 对应第三个5

1844
来自专栏Java帮帮-微信公众号-技术文章全总结

request;response 对象

response ? 1. response简介 response的类型为HttpServletResponse,它是Servlet的service()方法的参...

3477
来自专栏大闲人柴毛毛

Java并发编程的艺术(六)——线程间的通信

多条线程之间有时需要数据交互,下面介绍五种线程间数据交互的方式,他们的使用场景各有不同。 1. volatile、synchronized关键字 PS:关于vo...

3604
来自专栏我是攻城师

Spark如何读取Hbase特定查询的数据

3675
来自专栏Python爬虫与算法进阶

Python函数超时,用装饰器解决

我们在自定义一个函数后,会调用这个函数来完成我们想要的功能。 就拿爬虫来举例,你发送请求,服务器给你响应,但是有可能服务器没有给你任何数据,无论是他识别了爬虫、...

2842
来自专栏技术小站

搞定python多线程和多进程

线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条...

1021
来自专栏difcareer的技术笔记

Android Inline Hook 详解前言原理分析

网上有几篇关于Android inline hook的文章,这篇尤其不错,还有对应的示例代码。为了方便调试看结果,我将其改为gradle工程,代码见这里。你需要...

1922
来自专栏java思维导图

【一分钟知识】进程与线程,Thread的sleep与wait

java思维导图 xmind导图配合精美文章,可视化学习,让java不再难懂。 进程与线程 进程 是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是操...

3699

扫码关注云+社区

领取腾讯云代金券