Day7 开发者工具箱

UUID / ULID / 随机密码生成

使用浏览器加密级随机数(crypto)批量生成,可一次生成 100 个

生成设置

生成结果 点击任意一行可复制该条

UUID、ULID 该选哪个

UUID v4 是完全随机生成的 128 位标识符,形如 9f1c2d3e-4a5b-6c7d-8e9f-0a1b2c3d4e5f,重复概率低到可以忽略,几乎不会重复。它的缺点是无序——把它当作数据库主键时,随机插入会导致 B+ 树页分裂频繁、索引碎片化,写入性能不如自增 ID。

ULID 由 48 位毫秒时间戳 + 80 位随机数组成,用 Crockford Base32 编码成 26 个字符(如 01J8ZP4K7Q9X2M3N5R6T8V0W1Y)。因为前缀是时间戳,同一毫秒内按字典序排列即等于按时间排序,做数据库主键既能避免冲突又能保持顺序写入,因此常用于分布式系统、日志 ID 和高并发订单号。此外 ULID 不区分大小写、去掉了容易读错的 I/L/O/U。

随机数来自哪里

本工具使用浏览器的 crypto.getRandomValues()crypto.randomUUID(),这类随机数由操作系统的密码学安全随机数发生器提供,不是 Math.random() 那种可预测的伪随机数,可以安全地用于生成密钥、token 和密码。

密码强度参考

密码的强度取决于长度和字符集大小。常用估算方式为「信息熵 = 长度 × log₂(字符集大小)」:8 位纯数字约 27 bit(瞬时破解),12 位大小写字母+数字约 71 bit(较安全),16 位含符号约 105 bit(非常安全)。长度比复杂度更重要,推荐日常使用 16 位以上。

常见问题

生成的 UUID 会重复吗?

UUID v4 有 122 位随机位,需要生成约 2.7×10¹⁸ 个 UUID 才有 50% 概率出现一次碰撞,实际业务中可视为不会重复。

能生成指定前缀 / 后缀的 ID 吗?

本工具支持自定义字符集和长度,生成后可自行拼接前缀;ULID 也是纯字符,方便加业务前缀如 order_01J8ZP…

生成过程联网吗?会被记录吗?

不联网。全部在浏览器本地生成,服务器不参与,也不会记录任何结果。