base64编码-----------》struts2(token)利用BigInteger产生随机数

//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();

    rerurn encoder.encode(md5);
}

base64编码-----------》struts2(token)利用BigInteger产生随机数