我想知道java中生成16个字符唯一键的最佳方法是什么?是否有任何已经提供此类功能的开源库。此外,即使在服务器重启后,我也需要获得独特性。
您能否就上述要求提出最佳方法。
也有人可以指点我,在哪里可以获得编写健壮的哈希码方法的参考,其中哈希码将从许多字母数字字段中生成?
答案 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);
良好而稳健的方式