在java中生成一个16个字符的唯一键

时间:2012-10-08 12:56:57

标签: java hashcode

我想知道java中生成16个字符唯一键的最佳方法是什么?是否有任何已经提供此类功能的开源库。此外,即使在服务器重启后,我也需要获得独特性。

您能否就上述要求提出最佳方法。

也有人可以指点我,在哪里可以获得编写健壮的哈希码方法的参考,其中哈希码将从许多字母数字字段中生成?

2 个答案:

答案 0 :(得分:7)

您可以在JRE中使用UUID类。它生成一个128位密钥。

对于哈希码,这也可以在JRE中找到:

MessageDigest md = MessageDigest.getInstance("MD5");
byte[] hashCode = md.digest(...);

答案 1 :(得分:1)

Random r = new SecureRandom();
byte[] b = new byte[16];
r.nextBytes(b);
String s = org.apache.commons.codec.binary.Base64.encodeBase64String(b);
return s.substring(0, 16); 

良好而稳健的方式