UUID
UUID,即通用唯一识别码(Universally Unique Identifier),是用于计算机系统中确保全世界范围内的唯一性。UUID 有几个版本,每个版本有其特定的生成方法和用途:
- UUID 1:基于时间的 UUID。它结合了计算机的 MAC 地址和当前时间戳,还包括一些时钟序列用来处理同一时刻生成多个 UUID 的情况。这个版本可以确保时间上的唯一性,但因为包含 MAC 地址,可能会暴露用户隐私。
- UUID 2:与 UUID 1 类似,但增加了 POSIX 的 UID/GID 来提供额外的唯一性。这个版本并不常用。
- UUID 3:基于名字的 UUID,使用 MD5 散列算法。这个版本通过散列一个命名空间(例如 URL 或域名)和一个特定名字生成 UUID。UUID 3 是确定性的,同样的名字和命名空间会生成同样的 UUID。
- UUID 4:随机生成的 UUID。它通过随机或伪随机数生成器产生。UUID 4 的随机性和唯一性主要依赖于生成器的质量。标准的 UUID 4 应该使用足够安全的随机数源以避免重复。
- UUID 5:与 UUID 3 类似,但使用 SHA-1 散列算法代替 MD5,提供了更好的安全性。
对于 UUID 4,其随机性通常由操作系统提供的加密安全伪随机数生成器(CSPRNG)来保证。这些生成器设计用来提供高度随机且不可预测的输出,从而使得每个生成的 UUID 都具有高度的唯一性。具体实现可能会根据不同的编程环境和库有所不同,但一般来说,UUID 4 的生成算法涉及填充 128 位长的字段,其中 122 位由随机数填充(因为某些位用于表示版本和变体信息)。这样的设计几乎保证了在实际应用中不会产生重复的 UUID。