这里我介绍一种很常用,也比较Professor的权限控制思路。
把具体的权限设置为一个正整数值,如果一个用户有多个权限的话,比如1,2权限,那么我们设置值的时候就是 num.setBit(1),num.setBit(2),然后把返回的num值保存在session中,要验证是否有权限的话,只要从session中 取得保存的num,然后执行下num.test(权限值),如果返回true就是有权限的,否则无权限。下面例子:
package com.hundsun.network.post.settle.job; import java.math.BigInteger; public class TestBigInteger { public static void main(String[] args) { //初始 BigInteger num = new BigInteger("0"); num = num.setBit(2); num = num.setBit(1); System.out.println(num); System.out.println(num.testBit(2)); System.out.println(num.testBit(1)); System.out.println(num.testBit(3)); } }
返回的结果是:
6
true
true
false
为什么是6呢? 6= 2^2 + 2^1 其实计算的值是2的权的和
好处是,session中存储权限的空间很小,一个整数就代表了所有的权限,验证的时候计算速度也很快。
相关推荐
用java写的BigInteger,主要是实现一个内库
使用BigInteger类实现,实现了RSA的加解密
BigInteger不是基本数据类型之一,它其实更像String,是Java里的一个类,然而它的初始化方式却没有String那么方便可以直接赋值,而是跟其他自定义的类一样,要调用它的构造器进行初始化。
JavaScript支持大整数,页面需要进入BigInteger.js。才能使用
BigInteger, JS插件脚本
C#写的BigInteger,我也是下载的,在这个和大家分享吧
自己根据java的biginteger改写的c++大整数类,除法效率比较低,其他都还没什么问题
JAVABigInteger包.pdf
网上c#生成rsa公钥和私钥并进行加解密的示例很多,但里面都是要用到BigInteger类,而这个类却没有下载地址,找了很久才找到,在这里分享给大家
CSharp 4.0 .Net Framework V4.0 BigInteger 结构
类似java里面的BigInteger类型,进行大数存储和计算!
BigInteger的源代码,有英文注释
这是我自己写分子分母是采用Biginteger类的分数类期末Java期末项目,如有需改进的地方请提出。
java练习_大数运算_BigInteger.pdf
主要介绍了Java中两个大数之间的相关运算及BigInteger代码示例,通过biginteger类实现大数的运算代码,具有一定参考价值,需要的朋友可以了解下。
C# 实现的BigInteger操作 简单,快速..
while(in.hasNext()){//has.Next()判断还有没有输入; int n=in.nextInt(); BigInteger m=BigInteger.valueOf(2);//给高精度的数赋值; m=m.pow(n);//Integer类的方法 System.out.print(m.toString()); } } }
GarbaGe的东西降价了!!!一分,就一分!!!好东西一定要分享啊啊啊!!! 本模板为高精度模板,大概可存储200位。 目前只支持:输入、输出、赋值、加法。 会不定期更新,请多多资瓷!
ipv6的ip地址转biginteger数字 直接能够测试
var BigInteger = require('node-biginteger'); var n = BigInteger.fromString('abc', 16); n.toString(16); 类方法:BigInteger.fromLong(val) 瓦尔朗 返回:BigInteger 类方法:BigInteger.fromString(val...