java.util.UUID.randomUUID().toString()length

Yar*_*lav 32 java string random uuid string-length

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

我无法找到相关信息.这里只说以下内容:

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

这没type 4告诉我什么.我不知道在这种情况下4型是什么意思.

ruh*_*hul 53

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

是!!它是.

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

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

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


更新:

我不知道在这种情况下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使用随机或伪随机数生成.

  • 是的.36 char长串. (3认同)

小智 5

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