什么是 UUID?
UUID(Universally Unique Identifier,通用唯一标识符),在微软体系中也叫 GUID,是一个 128 位的数值,用于在计算机系统中唯一地标识信息,且无需依赖任何中央管理机构来分配编号。本工具生成的是 版本 4(v4) 的 UUID,它几乎完全由随机数构成。由于其中包含 122 个随机比特位,两个 UUID 发生重复(碰撞)的概率小到几乎可以忽略不计,因此可以放心地将其视为全球唯一。这是一项与编程语言无关的通用国际标准(RFC 4122)。
如何使用本生成器
先选择你需要生成的 UUID 数量(1 到 50 个),再选择输出为小写还是大写,并决定是否保留标准的连字符。点击生成后即可复制结果。UUID 在很多场景中都非常实用,例如数据库主键、API 请求 ID、文件名、会话令牌(session token),以及在分布式系统中无法依赖自增计数器时所需的唯一标识。
格式详解
一个版本 4 的 UUID 由 32 位十六进制字符组成,按 8-4-4-4-12 的规则分为五组,组间用连字符分隔,例如 xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx。其中固定为 4 的那一位用来标识版本号;标记为 y 的那一位用来表示变体(variant),其取值必须是 8、9、a 或 b 之一。其余所有的 x 都是随机生成的十六进制字符。
$$\text{UUID} = \underbrace{\texttt{xxxxxxxx}}_{8}\text{-}\underbrace{\texttt{xxxx}}_{4}\text{-}\underbrace{\texttt{4xxx}}_{4}\text{-}\underbrace{\texttt{Yxxx}}_{4}\text{-}\underbrace{\texttt{xxxxxxxxxxxx}}_{12}\quad\times\,\text{Count}$$
实例演示
假设有一串随机十六进制字符,例如 3f9a7c1e b204 1d88 9c33 a7f019be24c1。要把它变成合法的 v4 UUID,我们需要把第 13 位强制设为 4,并把第 17 位设为一个合法的变体字符,于是得到例如 3f9a7c1e-b204-4d88-9c33-a7f019be24c1。可以注意到:第二个连字符后面是 4,第三个连字符后面是 9(一个合法的变体取值)。
常见问题
这些 UUID 在密码学上安全吗?它们使用所在平台的伪随机数源生成,作为普通标识符完全够用;但如果用于高安全级别的密钥或机密信息,建议改用专门的密码学安全随机数生成器。
两个 UUID 有没有可能完全相同?理论上有可能,但概率微乎其微——你需要每秒生成数十亿个、并持续很多年,才有实际意义上发生碰撞的可能。
去掉连字符会改变它的值吗?不会。连字符纯粹是为了便于阅读,去掉后底层的 128 位数据完全一致。