UUID 生成
批量 v4 与时间可排序 v7,随机源用 CSPRNG。
结果
UUID 是 128 位标识符,标准写法形如 8-4-4-4-12 的十六进制串。本页生成 RFC 9562(取代旧的 RFC 4122)定义的 v4(纯随机)与 v7(毫秒时间戳打头,天然有序),随机数来自 crypto.getRandomValues,也就是操作系统的密码学随机源,不是 Math.random。
版本只有 v4 与 v7,标准里的其他形式(例如全零的 Nil UUID)本页不生成。v7 在同一毫秒内用递增计数器保证顺序,也正因前 48 位就是 Unix 毫秒时间戳,它可预测,不适合用在编号会被枚举的场景(例如公开订单号)。
UUID 生成怎么用
- 批量生成:数量 1 到 100,每次点「重新生成」都会取一批新的随机值。
- 格式开关:可以关闭连字符得到 32 位紧凑串,或转成大写;RFC 对大小写不敏感。
- v7 时间有序:需要按插入顺序索引友好时选 v7,前 12 位十六进制就是毫秒时间戳,适合做数据库主键以避免索引页分裂。
常见问题
UUID 会撞车吗?
v4 有 122 位随机位,按生日悖论要生成约 26 亿个才有十亿分之一的碰撞概率,实际业务里可以当作唯一。
v7 能反推创建时间吗?
能,前 48 位就是 Unix 毫秒时间戳,因此它可预测,不适合用在编号会被枚举的场景(例如公开订单号)。
为什么要求安全上下文(HTTPS)?
crypto.randomUUID 只在安全上下文可用。本地 localhost 也算安全上下文,所以开发环境同样能生成。
对应功能编号 #74无需安装,手机端同样可用按 Ctrl + K 换工具