JS通过位运算实现权限加解密
2019/6/27 7:47:20
本文主要是介绍JS通过位运算实现权限加解密,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
首先介绍一下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通过位运算实现权限加解密的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-28基于Python+Vue开发的口腔牙科预约管理系统
- 2024-09-28基于Python+Vue开发的酒店客房预订管理系统
- 2024-09-27使用js将ETH账户的资产打散其他账户web3
- 2024-09-27我轻松地将我的 React.js 应用程序翻译成了多种语言。下面是我是如何做到的... ??
- 2024-09-27?? 使用 useMemo 和 useCallback 加速 React:告别缓慢的重新渲染!??
- 2024-09-27Vue CLI多环境配置教程:新手入门指南
- 2024-09-27Vue CLI多环境配置教程:快速入门指南
- 2024-09-27Vue CLI教程:新手入门指南
- 2024-09-27Vue CLI教程:初学者快速入门指南
- 2024-09-27Vue3公共组件教程:入门与实践