UUID 生成器

生成版本1、3、4、5、6和7的UUID。选择版本,配置选项并点击生成。所有处理均在浏览器中本地完成。

已复制!

反过来读一个

UUID版本说明

版本方法用途
v1时间戳(100纳秒)+ 随机节点时间排序的ID;嵌入创建时间
v4加密随机通用唯一ID——最常用
v5命名空间 + 名称的SHA-1哈希类似v3但使用SHA-1(推荐优先于v3)
v6重排序的v1时间戳数据库友好的时间排序ID
v7Unix毫秒时间戳 + 随机现代时间排序,单调递增,最适合数据库

默认该拿的是版本 4:它整个就是随机位,什么都不泄露,碰撞只存在于理论上。版本 7 值得了解,因为它把时间放在最前面,于是一列这样的值会按行创建的先后排好,数据库索引保持紧凑,写入不会到处乱撒。版本 1 和 6 嵌的是同一个时间戳外加一个节点字段;这里的节点是设了多播位的随机数,因此永远不会是真实的网络地址。把任意 UUID 粘进查看框,它会告诉你版本,以及在有的情况下,它被造出来的那一刻。

又在手工整理数据?

每次都要在浏览器标签页里修一遍的数据,本该交给代码。我们构建在系统之间搬运数据的集成、解析器和服务,也修好那些在半路上悄悄把数据弄坏的东西。

告诉我们你在搬什么

常见问题

我该用哪个版本?
没有别的理由就用版本 4。它是随机的,什么也不透露。如果这些值要进一个带索引的数据库列,就选版本 7:它按创建时间排序,能让索引保持紧凑,而不是让每次插入散落到各处。
可以拿它们当密钥用吗?
不行。版本 4 的 UUID 由密码学安全的随机源生成,因此猜不出来,但它的设计初衷就是被显示、被记录、被到处传递。请把它当作标识符,绝不要当密码或会话令牌。
版本 3 去哪了?
随 MD5 一起被拿掉了。版本 3 按定义就是 MD5,而 MD5 存在可行的碰撞攻击。版本 5 用 SHA-1 做同样的事,接受同样的命名空间和名称,所以切过去只是改一个设置。
会有两个人生成出同一个 UUID 吗?
对版本 4 来说,实际上不会。里面有 122 个随机位,多到你得一辈子每秒生成几十亿个,碰撞才开始变得有可能。版本 1、6、7 还额外依赖时间,在同一台机器内碰撞的机会更小。
节点字段为什么是随机的?
版本 1 和 6 原本在那里放机器的网络地址,这会泄露一个值出自何处。本页面用随机字节填充它并设置多播位,这正是规范规定的、用来标记一个并非真实硬件地址的节点的做法。