UUID / ULID 生成器
为数据库列、事件、记录、网址和测试 fixture 创建单一 ID 或一批 ID。
数量:
当前: UUID-V4数量: 0
UUID 是什么?
UUID 是 128-bit identifier,常以 32 个十六进制字符并用连字号分隔呈现。它设计目标是在不询问中央服务下一个 ID 的情况下,提供实务上足够唯一的识别码。
UUID v4(建议): 随机生成。在一般应用工作负载中碰撞机率极低,因此 UUID v4 很适合作为 database rows、events、test fixtures 和公开 object IDs 的默认选择。
UUID v1: 由 timestamp 和 node 相关信息生成。排序性较好,但可能揭露时间和机器细节,因此通常不是公开 IDs 的第一选择。
ULID 是什么?
ULID 是可依字典序排序的 UUID 替代方案,维持同样 128-bit 大小,同时生成更容易依时间排序的 IDs。
可排序: ULID 会自然依生成时间排序,有助于 indexing 和记录检查。
网址安全: ULIDs 使用 Crockford Base32,避开 I、L、O、U 等容易混淆字符。
可互通: 它们维持精简,也对许多 UUID 常见工作负载提供足够唯一性。
常见问题
UUID v4 有可能碰撞吗?
理论上有可能,但机率低到在实务应用工作负载中可忽略。
应该用 UUID 还是 ULID?
需要时间排序时使用 ULID。想要最熟悉、支持最广的随机 identifier 格式时,使用 UUID v4。
这个生成器安全吗?
是。IDs 会在浏览器本机生成,不会送到服务器。
可以把 UUID 当 secret token 吗?
不要把一般 UUID 当成 secret。它们是识别码,不是验证凭证。密码重置链接、API key 和 session secret 应使用专门的 cryptographic token。
为什么有些团队喜欢用 ULID 做数据库记录?
ULID 会依创建时间排序,让记录、event stream 和部分 index 更容易检查。代价是 ID 会暴露生成时间。