欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JS通過位運算實現(xiàn)權(quán)限加解密

 更新時間:2018年08月14日 11:53:03   投稿:mrr  
這篇文章主要介紹了JS通過位運算實現(xiàn)權(quán)限加解密的相關(guān)知識,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧

首先介紹一下js中的位運算:

1. "&" :與運算,轉(zhuǎn)化為二進制數(shù),如果相同位數(shù)都為1則得結(jié)果為1,否則為0;

2. "|" :或運算,轉(zhuǎn)化為二進制數(shù),如果相同位數(shù)只要有一個為1則得結(jié)果為1,否則為0;

3. "^" :異或運算,轉(zhuǎn)化為二進制數(shù),如果相同位數(shù)不同則得結(jié)果為1,否則為0;

4."<<" 異位運算符,1<<1,表示將1左移一位,也就是010,在二進制中代表2;

順便說一下,十進制數(shù)字互相轉(zhuǎn)化。

十進制轉(zhuǎn)為別的進制:

var num = 123;
console.log(num.toString(2))
console.log(num.toString(8))//參數(shù)傳想要轉(zhuǎn)化的位數(shù)

別的進制轉(zhuǎn)化為十進制:

var num = 110;
console.log(parseInt(num,2))//二進制轉(zhuǎn)化為十進制

假設(shè)我們現(xiàn)在有5項權(quán)限,在二進制中用1代表擁有權(quán)限,0代表不擁有。所以11111這樣代表擁有所有的五項權(quán)限,那么我們?nèi)绾沃烙脩羰欠裼心骋豁椌唧w權(quán)限呢。

比如,我們現(xiàn)在想檢測用戶是否有第一項權(quán)限,我們首先用過異位 1 << 0,向左移0位,還是1,然后1 & (Math.pow(2,5) -1),

如果返回0,說明個位對不上,也就是說我們當前沒有權(quán)限,如果返回1,說明我們擁有第一項權(quán)限,同理,如果需要檢驗第二位權(quán)限,只需要異位2就好了。

if((1 << 0) & (Math.pow(2,5) - 1) !== 0){
  //擁有第一項權(quán)限權(quán)限
}
if((1 << 1) & (Math.pow(2,5) - 1) !== 0){
  //擁有第一項權(quán)限權(quán)限
}

總結(jié)

以上所述是小編給大家介紹的JS通過位運算實現(xiàn)權(quán)限加解密,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評論