java.util.UUID.randomUUID().toString() 长度

新手上路,请多包涵

java.util.UUID.randomUUID().toString() 长度是否总是等于 36?

我找不到相关信息。 这里 只说以下几点:

public static UUID randomUUID() 用于检索类型 4(伪随机生成)UUID 的静态工厂。 UUID 是使用加密强度高的伪随机数生成器生成的。返回:随机生成的 UUID

type 4 什么也没告诉我。我不知道 type 4 在这种情况下意味着什么。

原文由 Yaroslav 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 3.6k
2 个回答

java.util.UUID.randomUUID().toString() 长度是否总是等于 36?

是的!! 这是。

A UUID 实际上是一个 128 位值(2 长)。要将 128 位表示为十六进制字符串,将有 128/4=32 字符(每个字符长 4 位)。在字符串格式中,它还包含 4 ( - ) 这就是长度为 36 的原因。

示例: 54947df8-0e9e-4471-a2f9-9af509fb5889

32 个十六进制字符 + 4 个连字符字符 = 36 个字符。所以长度总是一样的。


更新:

我不知道 type 4 在这种情况下意味着什么。?

仅供参考:有几种生成 UUID 的方法。这里类型 4 表示此 uuid 是使用随机数或伪随机数生成的。来自 wiki - Universally_unique_identifier#Versions

版本

对于变体 1 和 2,标准中定义了五个“版本”,在特定用例中每个版本都可能比其他版本更合适。版本由字符串表示中的 M 指示。

版本 1 UUID 由时间和节点 ID(通常是 MAC 地址)生成;

版本 2 UUID 由标识符(通常是组或用户 ID)、时间和节点 ID 生成;

版本 3 和 5 生成确定性 UUID,通过散列命名空间标识符和名称生成;

版本 4 UUID 是使用随机数或伪随机数生成的。

原文由 MD Ruhul Amin 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以使用 base64 将 UUIDv4 16 字节二进制转换为 24 字节 ascii,而不是编码为 ascii-hex(32 字节)

原文由 Daniel Almeida 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题