最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JS通过位运算实现权限加解密

来源:动视网 责编:小采 时间:2020-11-27 22:10:07
文档

JS通过位运算实现权限加解密

JS通过位运算实现权限加解密:首先介绍一下js中的位运算: 1. & :与运算,转化为二进制数,如果相同位数都为1则得结果为1,否则为0; 2. | :或运算,转化为二进制数,如果相同位数只要有一个为1则得结果为1,否则为0; 3. ^ :异或运算,转化为二进制数,如果相同位数不同则得结果为
推荐度:
导读JS通过位运算实现权限加解密:首先介绍一下js中的位运算: 1. & :与运算,转化为二进制数,如果相同位数都为1则得结果为1,否则为0; 2. | :或运算,转化为二进制数,如果相同位数只要有一个为1则得结果为1,否则为0; 3. ^ :异或运算,转化为二进制数,如果相同位数不同则得结果为


首先介绍一下js中的位运算:

1. "&" :与运算,转化为二进制数,如果相同位数都为1则得结果为1,否则为0;

2. "|" :或运算,转化为二进制数,如果相同位数只要有一个为1则得结果为1,否则为0;

3. "^" :异或运算,转化为二进制数,如果相同位数不同则得结果为1,否则为0;

4."<<" 异位运算符,1<<1,表示将1左移一位,也就是010,在二进制中代表2;

顺便说一下,十进制数字互相转化。

十进制转为别的进制:

var num = 123;
console.log(num.toString(2))
console.log(num.toString(8))//参数传想要转化的位数

别的进制转化为十进制:

var num = 110;
console.log(parseInt(num,2))//二进制转化为十进制

假设我们现在有5项权限,在二进制中用1代表拥有权限,0代表不拥有。所以11111这样代表拥有所有的五项权限,那么我们如何知道用户是否有某一项具体权限呢。

比如,我们现在想检测用户是否有第一项权限,我们首先用过异位 1 << 0,向左移0位,还是1,然后1 & (Math.pow(2,5) -1),

如果返回0,说明个位对不上,也就是说我们当前没有权限,如果返回1,说明我们拥有第一项权限,同理,如果需要检验第二位权限,只需要异位2就好了。

if((1 << 0) & (Math.pow(2,5) - 1) !== 0){
 //拥有第一项权限权限
}
if((1 << 1) & (Math.pow(2,5) - 1) !== 0){
 //拥有第一项权限权限
}

总结

以上所述是小编给大家介绍的JS通过位运算实现权限加解密,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

文档

JS通过位运算实现权限加解密

JS通过位运算实现权限加解密:首先介绍一下js中的位运算: 1. & :与运算,转化为二进制数,如果相同位数都为1则得结果为1,否则为0; 2. | :或运算,转化为二进制数,如果相同位数只要有一个为1则得结果为1,否则为0; 3. ^ :异或运算,转化为二进制数,如果相同位数不同则得结果为
推荐度:
标签: 权限 js 位运算
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top