UUID 生成器

生成 UUID 第 4 版或第 7 版。第 4 版是随机的。第 7 版开头是当前时间,后生成的编号会排在前面生成的后面。

第 4 版是随机的,第 7 版开头是时间

UUID 是写成十六进制的 128 位。第 4 版是随机的,多数数据库要的仍是这一种。第 7 版把当前的 Unix 毫秒放在前面,后生成的编号按文本或索引排序时会排在后面。生成在浏览器里完成。它不会帮你查这个编号在数据库里是否已经存在。

怎么用

  1. 选第 4 版或第 7 版。打开页面就会有结果,改任何一个选项也会重新生成。
  2. 「生成几个」从 1 到 100。每按一次「生成」都是新的一组。
  3. 「大写」改变十六进制字母。「连字符」默认开着,关掉就是 32 位十六进制。「花括号」加上 { 和 }。「urn:uuid: 前缀」把这个方案名加在前面。
  4. 复制结果即可。没有输入框,因为这里不是在转换已有的文字。

编号的形状

连字符开着时,形式是 8-4-4-4-12。版本那一位是 4 或 7。变体那一位按 RFC 4122,所以第四组的第一个十六进制数字是 8、9、a 或 b。第 7 版的前 48 位是当前的 Unix 毫秒,因此同一毫秒之外生成的两个编号,按文本比较时会按时间排。其余是随机的。浏览器提供加密随机源时,页面会用它。

什么时候用

  • 测试库里即将插入的一行要一个主键。
  • 日志里要一个请求编号。
  • 希望新行按时间聚在一起、又不想另做创建时间排序时,用第 7 版。

常见问题

连点两次会不会相同?

第 4 版有 122 个随机位,撞上不现实。第 7 版在同一毫秒里可以共享时间前缀,随机的后半段仍然不同。

这是秘密吗?

不是。UUID 用来标识一行。不要把它当密码或访问令牌。