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


Posted in Javascript onAugust 14, 2018

首先介绍一下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通过位运算实现权限加解密,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
解决 firefox 不支持 document.all的方法
Mar 12 Javascript
javascript写的一个链表实现代码
Oct 25 Javascript
jquery photoFrame 图片边框美化显示插件
Jun 28 Javascript
js调用图片隐藏&amp;显示实现代码
Sep 13 Javascript
原生javascript获取元素样式
Dec 31 Javascript
jQuery实现带滚动导航效果的全屏滚动相册实例
Jun 19 Javascript
通过网页查看JS源码中汉字显示乱码的解决方法
Oct 26 Javascript
AngularJs入门教程之环境搭建+创建应用示例
Nov 01 Javascript
微信小程序 radio单选框组件详解及实例代码
Jan 10 Javascript
JS实现本地存储信息的方法(基于localStorage与userData)
Feb 18 Javascript
Angular实现的简单查询天气预报功能示例
Dec 27 Javascript
JS判断用户用的哪个浏览器实例详解
Oct 09 Javascript
js中getter和setter用法实例分析
Aug 14 #Javascript
JS中‘hello’与new String(‘hello’)引出的问题详解
Aug 14 #Javascript
Vue.js单向绑定和双向绑定实例分析
Aug 14 #Javascript
微信小程序异步API为Promise简化异步编程的操作方法
Aug 14 #Javascript
jQuery实现的简单拖拽功能示例【测试可用】
Aug 14 #jQuery
jQuery+CSS实现的标签页效果示例【测试可用】
Aug 14 #jQuery
layui的table单击行勾选checkbox功能方法
Aug 14 #Javascript
You might like
为php4加入动态flash文件的生成的支持
2006/10/09 PHP
PHP提取字符串中的图片地址[正则表达式]
2011/11/12 PHP
解析:使用php mongodb扩展时 需要注意的事项
2013/06/18 PHP
PHP命令行脚本接收传入参数的三种方式
2014/08/20 PHP
php 字符串中是否包含指定字符串的多种方法
2018/04/12 PHP
JS 修改URL参数(实现代码)
2013/07/08 Javascript
[JSF]使用DataModel处理表行事件的实例代码
2013/08/05 Javascript
php与js的区别是什么
2013/08/05 Javascript
js onclick事件传参讲解
2013/11/06 Javascript
鼠标滑在标题上显示图片的JS代码
2013/11/19 Javascript
从零学jquery之如何使用回调函数
2014/05/16 Javascript
JavaScript+html5 canvas绘制的圆弧荡秋千效果完整实例
2016/01/26 Javascript
JavaScript之DOM插入更新删除_动力节点Java学院整理
2017/07/03 Javascript
nodejs基于WS模块实现WebSocket聊天功能的方法
2018/01/12 NodeJs
修改Nodejs内置的npm默认配置路径方法
2018/05/13 NodeJs
bootstrap动态调用select下拉框的实例代码
2018/08/09 Javascript
小程序实现投票进度条
2019/11/20 Javascript
微信小程序实现天气预报功能(附源码)
2020/12/10 Javascript
windows10下python3.5 pip3安装图文教程
2018/04/02 Python
python 定时器,实现每天凌晨3点执行的方法
2019/02/20 Python
浅析Windows 嵌入python解释器的过程
2019/07/26 Python
Django model 中设置联合约束和联合索引的方法
2019/08/06 Python
win10下安装Anaconda的教程(python环境+jupyter_notebook)
2019/10/23 Python
Python利用命名空间解析XML文档
2020/08/10 Python
Python matplotlib模块及柱状图用法解析
2020/08/10 Python
Django日志及中间件模块应用案例
2020/09/10 Python
大学生就业策划书范文
2014/04/04 职场文书
优秀求职信
2014/05/29 职场文书
经典演讲稿开场白
2014/08/25 职场文书
先进党组织事迹材料
2014/12/26 职场文书
2015年防汛工作总结
2015/05/15 职场文书
孝女彩金观后感
2015/06/10 职场文书
运动会通讯稿300字
2015/07/20 职场文书
宣传稿格式范文
2015/07/23 职场文书
初中班主任培训心得体会
2016/01/07 职场文书
学生检讨书范文
2019/06/24 职场文书