4

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

您能否建议针对上述要求的最佳方法。

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

4

2 回答 2

7

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

至于哈希码,这在 JRE 中也可用:

MessageDigest md = MessageDigest.getInstance("MD5");
byte[] hashCode = md.digest(...);
于 2012-10-08T13:05:28.227 回答
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); 

良好而稳健的方式

于 2012-10-08T13:07:24.277 回答