Java三种获取获取唯一值的方法
2020-10-09 本文已影响0人
maiduoduo
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;
}
}