base64编码-----------》struts2(token)利用BigInteger产生随机数
1 2 3 4 5 6 7 8 | //struts2 源码 public static final Random RANDOM= new Random(); public static String generateGUID(){ return new BigInteger( 165 ,RANDOM).toString( 36 ).toUpperCase(); } |
另(其他):设计成单例模式,降低随机数出现的重复的概率
public String generateToken(){ String token = System.curentTimeMills()+new Random().nextInt()+""; MessageDigest md = MessageDigest.getInstance("md5"); byte[] md5 = md.digest(token.getBytes()); //不用 return new String(md5);的原因 ,new 一个String对象需要查码表,不写代表默认机器的码表,会产生乱码,java提供了一种解决方案base64编码
//base64有自己的码表(都是明文,键盘上能看见的字符)
base64: 将3个字节的数据放入4个字节中,3*8=24,24/4=6,高位补两个0,这样编码之后所表示的数据范围是0~63(最小值00000000,最大值00111111)
//base64编码
BASE64Encoder encoder = new BASE64Encoder(); rerurn encoder.encode(md5); }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步