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

 更新时间:2018年08月14日 11:53:03   投稿:mrr  
这篇文章主要介绍了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通过位运算实现权限加解密,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • 详解webpack与SPA实践之开发环境搭建

    详解webpack与SPA实践之开发环境搭建

    这篇文章主要介绍了详解webpack与SPA实践之开发环境搭建,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • JS批量替换内容中关键词为超链接

    JS批量替换内容中关键词为超链接

    本文主要介绍了JS批量替换内容中关键词为超链接,避开已存在的链接和alt、title中的关键词的方法。下面跟着小编一起来看下吧
    2017-02-02
  • DD_belatedPNG,IE6下PNG透明解决方案(国外)

    DD_belatedPNG,IE6下PNG透明解决方案(国外)

    今天介绍DD_belatedPNG,只需要一个理由,就是它支持backgrond-position与background-repeat.这是其他js插件不具备的.
    2010-12-12
  • JavaScript中的事件监听详细介绍

    JavaScript中的事件监听详细介绍

    这篇文章主要给大家介绍了关于JavaScript中事件监听的相关资料,在前端开发过程中我们经常会遇到给页面元素添加事件的问题,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2023-08-08
  • 利用element-ui实现远程搜索两种实现方式

    利用element-ui实现远程搜索两种实现方式

    这篇文章主要介绍了利用element-ui的两种远程搜索实现代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-12-12
  • Javascript动画插件lottie-web的使用方法

    Javascript动画插件lottie-web的使用方法

    这篇文章主要介绍了Javascript动画插件lottie-web的使用方法,包括配合vue-cli使用及在HTML页面中使用代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • JavaScript+Canvas实现简单的柱状图

    JavaScript+Canvas实现简单的柱状图

    这篇文章主要为大家详细介绍了JavaScript如何利用Canvas实现绘制简单的柱状图,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-10-10
  • cocos2dx骨骼动画Armature源码剖析(二)

    cocos2dx骨骼动画Armature源码剖析(二)

    本篇主要给大家介绍cocos2dx骨骼动画Armature源码剖析之flash中数据与xml中数据关系,需要的朋友一起来学习吧
    2015-09-09
  • IScroll那些事_当内容不足时下拉刷新的解决方法

    IScroll那些事_当内容不足时下拉刷新的解决方法

    下面小编就为大家带来一篇IScroll那些事_当内容不足时下拉刷新的解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • JavaScript实现简单计算器

    JavaScript实现简单计算器

    这篇文章主要为大家详细介绍了JavaScript实现简单计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03

最新评论