1. 通過nanoTime()方法獲得
/**
* 第一種方式:通過nanoTime()方法獲得
* 通過System類的nanoTime()方法產生,理論上存在重復的可能,實際不會重復
*/
public String uniqueCodeOne()
{
long n=System.nanoTime();
// Random random=new Random();
// String n=System.nanoTime()+""+random.nextInt();
// System.out.println(n);
return String.valueOf(n);
}
2. 通過UUID類
/**
* 第二種方式:通過UUID類(表示通用唯一標識符的類)獲得唯一值,UUID表示一個128位的值
*
*/
public String uniqueCodeTwo()
{
String s=UUID.randomUUID().toString();
// System.out.println(s);
return s;
}
3. 采用數據指紋
/**
* 第三種方式:采用數據指紋
* @throws NoSuchAlgorithmException
*
*/
public String uniqueCodeThree() throws NoSuchAlgorithmException
{
String s=UUID.randomUUID().toString();
//先進行MD5加密
MessageDigest md=MessageDigest.getInstance("md5");
//對數據進行加密
byte[] bs=md.digest(s.getBytes());
//采用數據指紋進一步加密,拿到的數據成為數據指紋
BASE64Encoder base=new BASE64Encoder();
String digitFingerprint=base.encode(bs);
//System.out.println(digitFingerprint);
return digitFingerprint;
}
}