{
private static Random myRand; //基本java随机对象
private static SecureRandom mySecureRand; //安全随机对象
private static String s_id; //ip地址字符串
static
{
mySecureRand = new SecureRandom();
//用安全随机对象产生一随机数并用该随机数初始化基本java随机对象
long secureInitializer = mySecureRand.nextLong();
myRand = new Random(secureInitializer);
try
{
//获得当前主机的ip地址字符串
s_id = InetAddress.getLocalHost().toString();
}
catch (UnknownHostException e)
{
e.printStackTrace();
}
}
/**
- 缺省构造器
*/
public GuidGenerator()
{
}
/**
-
缺省的产生随机GUID的方法
-
@return 正确返回32字节的字符串,错误则返回长度为零的字符串
*/
public static String genRandomGUID()
{
return genRandomGUID(false);
}
/**
-
产生随机GUID的方法,考虑产生GUID的效率,将来可以应用设计模式,先生成一堆id并缓存
-
@param secure true : 带安全选项,用安全随机数对象生成
-
false : 不带安全选项,用基本随机数对象生成
-
@return 正确返回32字节的字符串,错误则返回长度为零的字符串
*/
public static String genRandomGUID(boolean secure)
{
String valueBeforeMD5 = “”; //消息消化对象消化前的字符串
String valueAfterMD5 = “”; //经消息消