999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

位運(yùn)算在權(quán)限管理中的應(yīng)用

2014-12-31 00:00:00向蘭宣
消費(fèi)電子·下半月 2014年8期

摘 要:位運(yùn)算作為PHP語(yǔ)言中一種低層的操作,在管理系統(tǒng)的設(shè)計(jì)中有著廣泛的應(yīng)用,其中最為重要的之一就是應(yīng)用于基于角色的細(xì)粒度權(quán)限控制。本文詳細(xì)介紹了位運(yùn)算的方法和規(guī)則,并闡述其應(yīng)用于權(quán)限管理的具體方法和步驟。

關(guān)鍵詞:位運(yùn)算;權(quán)限管理;PHP語(yǔ)言

中圖分類號(hào):TP309 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-7712 (2014) 16-0000-01

作為目前最為流行的WEB編程腳本語(yǔ)言之一的PHP,它是一種服務(wù)器端解釋的腳本語(yǔ)言。它的語(yǔ)法借鑒了C、Java和Perl等語(yǔ)言,因而對(duì)開發(fā)人員易于掌握。而在管理系統(tǒng)的開發(fā)和設(shè)計(jì)中,不可避免的要涉及到權(quán)限管理,權(quán)限管理的實(shí)現(xiàn)可通過位運(yùn)算進(jìn)行處理。

一、位運(yùn)算

眾所周知,計(jì)算機(jī)只能識(shí)別機(jī)器語(yǔ)言,也就是只能識(shí)別0和1兩個(gè)字符代碼。因此程序中的所有數(shù)據(jù)是以二進(jìn)制進(jìn)行儲(chǔ)存的。而位運(yùn)算就是直接對(duì)整數(shù)在內(nèi)存中的二進(jìn)制位進(jìn)行操作。

二、位操作符

位操作符可以將一個(gè)整型變量當(dāng)作一系列的位(bit,比特)來處理。在PHP中主要提供了六種位操作符,分別是“”、“|”、“~”、“^”、“<<”、“>>”,其中“~”單目運(yùn)算符,其余五個(gè)均為雙目運(yùn)算符。其具體操作及含義如下表1所示。

三、權(quán)限管理

在管理系統(tǒng)中權(quán)限管理的原理簡(jiǎn)單的說就是判斷用戶對(duì)哪些資源具有操作的許可,而在具體設(shè)計(jì)時(shí)我一般采用RBAC(基于角色的訪問控制模型)來實(shí)現(xiàn)。系統(tǒng)對(duì)用戶授予權(quán)限時(shí)不是直接對(duì)用戶進(jìn)行操作,而是對(duì)用戶所屬的角色授予權(quán)限的。因此我們可設(shè)計(jì)權(quán)限數(shù)據(jù)類表為權(quán)限表(角色,模塊,C,R,U,D),其中的CRUD就是我們非常熟悉的增刪改查四大基本操作。但這樣設(shè)計(jì)但數(shù)據(jù)量大的時(shí)候非常浪費(fèi)存儲(chǔ)空間。由于程序支持位操作,我們可將數(shù)據(jù)類表設(shè)計(jì)為權(quán)限表(角色,模塊,crud),這樣大大節(jié)約了空間。其中的crud就可以實(shí)現(xiàn)角色的對(duì)模塊是否具有相應(yīng)的一些權(quán)限。例如,假設(shè)一角色對(duì)一模塊的權(quán)限為5。那么我們將5轉(zhuǎn)換為二進(jìn)制為0101(設(shè)計(jì)時(shí)0代表無權(quán)限,1代表有權(quán)限),我們就知道它具有R、D的權(quán)限,沒有C、U的權(quán)限。

(一)授予權(quán)限

當(dāng)角色需要增加C的權(quán)限時(shí),我們只就只需將0101變?yōu)?101,就在數(shù)據(jù)類表中將5更改為13就可以了。在程序設(shè)計(jì)時(shí),就要用到位操作中的“或”操作和“左移”操作。即首先將0001左移3位得到1000,再與0101進(jìn)行或操作就得到1101。具體程序如下所示:

public function setPermission($permission, $yes)

{

$tmp=1;

$tmp=$tmp<<$permission;

if($yes==\"true\")

{

$this->aclFlag=$this->aclFlag|$tmp;

}

}

其中,$permission表示在運(yùn)算時(shí)左移的位數(shù),以達(dá)到實(shí)現(xiàn)判斷對(duì)CRUD中的哪一個(gè)進(jìn)行操作,左移0位代表對(duì)D進(jìn)行操作,左移1位代表對(duì)U進(jìn)行操作,左移2位代表對(duì)R進(jìn)行操作,左移3位代表對(duì)C進(jìn)行操作。$yes為true代表是授權(quán),為1時(shí)代表撤權(quán)。

(二)撤銷權(quán)限

當(dāng)角色需要將D權(quán)限取消時(shí),就是將0101更改為0100,也就是在數(shù)據(jù)類表將5改為4就可以了。而具體實(shí)現(xiàn)就是通過位操作中的“非”操作和“與”操作完成的。具體程序如下。

public function setPermission($permission,$yes)

{

$tmp=1;

$tmp=$tmp<<$permission;

if($yes==\"1\")

{

$tmp=~$tmp;

$this->aclFlag=$this->aclFlag$tmp;

}

}

四、結(jié)束語(yǔ)

利用位操作來實(shí)現(xiàn)權(quán)限管理中的授予或撤銷大大節(jié)約的系統(tǒng)的開銷,也對(duì)數(shù)據(jù)庫(kù)的存儲(chǔ)進(jìn)行了一大優(yōu)化,減少了數(shù)據(jù)存儲(chǔ)的空間。

參考文獻(xiàn):

[1]百度百科.位運(yùn)算[EB/OL].http://baike.baidu.com/view/379209.htm.

[2]Luke Welling,Laura Thomsona.武欣,譯.PHP and MySQL Web Development[M].北京:機(jī)械工業(yè)出版社,2009:21-22.

[作者簡(jiǎn)介]向蘭宣,男,四川瀘州人,軟件工程碩士,研究方向:Web網(wǎng)站的設(shè)計(jì)。

主站蜘蛛池模板: 91麻豆精品国产91久久久久| 国产精品无码久久久久久| 精品国产成人av免费| 91在线视频福利| 男女精品视频| 老司国产精品视频| 激情综合网址| 9啪在线视频| 亚洲AⅤ波多系列中文字幕| 日本欧美成人免费| 欧美精品伊人久久| 色爽网免费视频| 国产打屁股免费区网站| 亚洲精品无码久久久久苍井空| 精品国产黑色丝袜高跟鞋| 亚洲va欧美va国产综合下载| 日本在线免费网站| 日本亚洲国产一区二区三区| 国产超薄肉色丝袜网站| 麻豆精选在线| 伊人久久精品亚洲午夜| 亚洲中文字幕手机在线第一页| 就去吻亚洲精品国产欧美| 国产呦精品一区二区三区下载 | 久久久久久久久亚洲精品| 日本一区高清| 69免费在线视频| 青青极品在线| 婷婷综合缴情亚洲五月伊| 91视频免费观看网站| 天天操精品| 成人韩免费网站| 精品久久久久无码| 欧美在线黄| 国产96在线 | 国产精品香蕉在线| 国产丝袜精品| 亚洲动漫h| 国产一级一级毛片永久| 日韩小视频在线播放| 五月天久久婷婷| 久操线在视频在线观看| 伊人久久青草青青综合| 九九免费观看全部免费视频| 国产一区二区三区日韩精品| 成人91在线| 任我操在线视频| 中文成人在线视频| 国产精品女熟高潮视频| 国产精品乱偷免费视频| 欧美日韩高清| 成人午夜视频网站| 国产交换配偶在线视频| 中文字幕天无码久久精品视频免费 | 五月天天天色| 久久无码av一区二区三区| 免费人成视网站在线不卡| 国内精品一区二区在线观看| 国产在线观看91精品| 免费全部高H视频无码无遮掩| 久久国产精品波多野结衣| 少妇被粗大的猛烈进出免费视频| 亚洲日韩第九十九页| 国产黄网站在线观看| 台湾AV国片精品女同性| 亚洲动漫h| 欧美一区中文字幕| 国产成人精品无码一区二| 日韩av无码精品专区| 2024av在线无码中文最新| 91精品亚洲| 最近最新中文字幕在线第一页 | 九色国产在线| 97国产在线观看| 91午夜福利在线观看| 国产精品女人呻吟在线观看| 日韩在线视频网| 波多野结衣一级毛片| 亚洲欧美日韩中文字幕在线| 无码人中文字幕| 亚洲全网成人资源在线观看| 国产内射一区亚洲|