我需要在 Java 中生成唯一数量的 32 位。我需要将数字作为接口要求的 Java int 返回。你能分享一些关于这个的想法吗?
该数字将用作 MySQL PK,并且多个线程可以同时生成自己的唯一 ID。(抱歉决定不使用MySQL增量id)
我尝试了 UUID 类,但它生成的数据似乎比我可以使用的多。
我发现了这个,但不确定它是否有效:
// seems no way to get int
UUID id = UUID.randomUUID();
System.out.println(id);
// not working either?
java.rmi.server.UID uid = new java.rmi.server.UID();
System.out.println(uid.toString());
// the one i am using
SecureRandom prng = SecureRandom.getInstance("SHA1PRNG");
prng.setSeed(System.currentTimeMillis());
int ret = prng.nextInt();
System.out.println(ret);