Class UUIDv3Generator

java.lang.Object
icu.congee.id.generator.uuid.UUIDv3Generator

public class UUIDv3Generator extends Object
UUIDv3生成器

该类用于生成符合UUIDv3规范的UUID。UUIDv3是一种基于名称空间的UUID版本, 它使用MD5哈希算法将名称空间UUID和名称字符串作为输入,生成确定性的UUID。 相同的名称空间和名称将始终生成相同的UUID。

Since:
2024-05-01
Version:
1.0
Author:
ixiongdi, ixiongdi
  • Field Details

    • NAMESPACE_DNS

      public static final UUID NAMESPACE_DNS
      预定义的DNS名称空间UUID
    • NAMESPACE_URL

      public static final UUID NAMESPACE_URL
      预定义的URL名称空间UUID
    • NAMESPACE_OID

      public static final UUID NAMESPACE_OID
      预定义的OID名称空间UUID
    • NAMESPACE_X500

      public static final UUID NAMESPACE_X500
      预定义的X500 DN名称空间UUID
  • Constructor Details

    • UUIDv3Generator

      public UUIDv3Generator()
  • Method Details

    • fromNamespaceAndName

      public static UUID fromNamespaceAndName(UUID namespace, String name)
      根据名称空间和名称生成UUIDv3

      该方法使用MD5哈希算法将名称空间UUID和名称字符串作为输入,生成确定性的UUID。 相同的名称空间和名称将始终生成相同的UUID。 UUIDv3的结构如下: - 最高有效位(MSB):从哈希的前64位中提取,并设置版本号(3) - 最低有效位(LSB):从哈希的后64位中提取,并设置变体标识

      Parameters:
      namespace - 名称空间UUID,用于提供上下文
      name - 要转换为UUID的名称字符串
      Returns:
      基于提供的名称空间和名称生成的UUIDv3实例
      Throws:
      RuntimeException - 如果MD5算法不可用
    • fromDNS

      public static UUID fromDNS(String name)
      使用DNS名称空间生成UUIDv3
      Parameters:
      name - 要转换为UUID的名称字符串
      Returns:
      基于DNS名称空间和提供的名称生成的UUIDv3实例
    • fromURL

      public static UUID fromURL(String name)
      使用URL名称空间生成UUIDv3
      Parameters:
      name - 要转换为UUID的名称字符串
      Returns:
      基于URL名称空间和提供的名称生成的UUIDv3实例
    • fromOID

      public static UUID fromOID(String name)
      使用OID名称空间生成UUIDv3
      Parameters:
      name - 要转换为UUID的名称字符串
      Returns:
      基于OID名称空间和提供的名称生成的UUIDv3实例
    • fromX500

      public static UUID fromX500(String name)
      使用X500 DN名称空间生成UUIDv3
      Parameters:
      name - 要转换为UUID的名称字符串
      Returns:
      基于X500 DN名称空间和提供的名称生成的UUIDv3实例