Tarayıcınız güncel değil

Bu siteyi görüntülemek için tarayıcınızın veya cihazınızın işletim sisteminin güncellenmesi gerekiyor.

Your browser is out of date. Please update iOS or your browser to view this site.

跳转到主要内容
Gizke.com
博客

UUID 生成器

在你的设备上运行,不会发送任何内容。

版本

完全随机,不包含任何嵌入信息。最常用于通用唯一标识符。

大小写

生成的 UUID 将显示在此处

在浏览器本地批量生成并校验 v1、v3、v4、v5 和 v7 版本的 UUID。

UUID(通用唯一标识符)是一个 128 位的值,用于标识数据而无需中央机构分配 ID - 两个随机生成的 UUID 发生碰撞的概率极其微小。此工具可生成目前仍在广泛使用的四种 UUID 版本 - v1(基于时间戳)、v3 和 v5(确定性,由命名空间和名称派生)、v4(随机)以及 v7(按时间排序,越来越多地用于数据库主键)- 同时也能校验并解析您粘贴的任意 UUID,全部在浏览器本地完成。

常见问题

我应该使用哪个 UUID 版本?
对于大多数通用标识符,使用 v4 - 它是随机的,不携带任何信息。如果 UUID 将作为数据库主键或索引,v7 通常更好,因为它按时间顺序排序,能保持索引高效。当需要相同输入(如 URL 或名称)始终生成相同 UUID 时使用 v5;仅在确实需要在 ID 中嵌入时间戳时才使用 v1,并注意它可能暴露创建时间。
v3 和 v5 有什么区别?
两者都是确定性的:给定相同的命名空间和名称,总是生成相同的 UUID。唯一的区别是哈希函数 - v3 使用 MD5,v5 使用 SHA-1。由于 MD5 在密码学上已被攻破,任何新系统都建议使用 v5;v3 的存在主要是为了兼容旧系统。
为什么 v7 按时间顺序排序?
v7 UUID 在随机位之前以 48 位的 Unix 毫秒时间戳开头,因此当以普通字符串(或字节)比较 UUID 时,较早创建的会排在较晚创建的之前。随机的 v4 UUID 没有这种结构,这可能会使数据库索引碎片化,因为新的随机值会插入到整个键范围内,而不是末尾。
这里生成的 UUID 是否具有密码学级别的随机性?
是的。v4 以及 v1 和 v7 中的随机部分都使用 Web Crypto API 的 crypto.getRandomValues - 这是浏览器内置的密码学安全随机数生成器,而非 Math.random()。所有内容都不会在服务器上生成,也不会被发送到任何地方。
两个随机生成的 v4 UUID 发生碰撞的可能性有多大?
可能性极其微小。一个 v4 UUID 有 122 个随机比特位(另有 6 个比特位固定用于标记版本和变体),共有约 5.3 x 10^36 种可能的取值。即使以每秒生成十亿个 UUID 的速度持续 100 年,任何碰撞发生的概率仍然低于十亿分之一 - 这正是 v4 被信任为无需中央注册表即可保证唯一性的标识符的原因。
UUID 和 GUID 是同一回事吗?
在实际使用中是的 - GUID(全局唯一标识符)是微软对 UUID 标准(RFC 4122)所定义的同一种 128 位标识符格式的称呼。有些环境会将其写成大写字母,或用花括号({...})括起来,但其底层数值和结构是完全相同的,因此在这里生成的 UUID 同样也是有效的 GUID。

分享此工具

博客关于联系我们使用条款隐私政策