JAVA UUID 生成
warning:
这篇文章距离上次修改已过215天,其中的内容可能已经有所变动。
Java 中的 UUID 是一个 128 位的数字,通常以 36 个字符的字符串形式表示,格式为 8-4-4-4-12,包括 32 个十六进制数,以连字符分隔。
Java 提供了一个 UUID 类,可以用于生成 UUID。
解决方案一:
import java.util.UUID;
public class Main {
public static void main(String[] args) {
UUID uuid = UUID.randomUUID();
System.out.println(uuid.toString());
}
}
解决方案二:
如果你想要去掉 UUID 中的连字符,可以使用以下代码:
import java.util.UUID;
public class Main {
public static void main(String[] args) {
UUID uuid = UUID.randomUUID();
String str = uuid.toString().replace("-", "");
System.out.println(str);
}
}
解决方案三:
如果你想要生成特定的 UUID 版本(如 MD5 或 SHA1 或者随机 UUID),可以使用如下代码:
import java.util.UUID;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class Main {
public static void main(String[] args) {
try {
String input = "test";
MessageDigest md = MessageDigest.getInstance("SHA-1");
byte[] digest = md.digest(input.getBytes(StandardCharsets.UTF_8));
String str = UUID.nameUUIDFromBytes(digest).toString().replace("-", "");
System.out.println(str);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
}
以上代码中,我们使用了 SHA-1 算法对字符串 "test" 进行了散列,然后使用 UUID 的 nameUUIDFromBytes 方法生成了一个 UUID。
解决方案四:
如果你想要生成一个以特定种子开始的 UUID 序列,可以使用如下代码:
import java.security.SecureRandom;
import java.util.UUID;
public class Main {
public static void main(String[] args) {
SecureRandom random = new SecureRandom();
byte[] seed = new byte[16];
random.nextBytes(seed);
UUID uuid = new UUID(random.nextLong(), random.nextLong());
System.out.println(uuid.toString());
}
}
以上代码中,我们首先创建了一个 SecureRandom 对象,然后使用 nextBytes 方法生成了一个随机的种子,然后使用这个种子生成了一个 UUID。
评论已关闭