关于UUID / ULID 生成
UUID(Universally Unique Identifier,通用唯一识别符)是一个 128 位的标识符,在 RFC 4122 标准中定义,通常以 32 个十六进制字符表示,并按 8-4-4-4-12 格式分组(如 550e8400-e29b-41d4-a716-446655440000)。UUID 设计目标是在没有中心协调机构的情况下,仍能保证全局唯一性,因此被广泛应用于分布式系统、数据库主键、API 请求追踪等场景。
UUID 有多个版本,其中 UUID v4 使用随机数生成,是最常用的版本;UUID v1 基于时间戳与 MAC 地址;UUID v5 基于命名空间与名称的 SHA-1 哈希。本工具生成的是 UUID v4,使用浏览器原生 crypto.randomUUID() 函数(在支持该 API 的现代浏览器中)或基于 Math.random 的回退方案,确保生成的 UUID 具备足够的随机性与唯一性。
UUID v4 的随机性来源于密码学安全的随机数生成器,理论碰撞概率极低(同一台机器生成两个相同 UUID 的概率约为 1/2^122),即使在海量数据场景下也可视为唯一。所有生成操作在浏览器本地完成。
核心特性
遵循 RFC 4122 标准
生成的 UUID 严格符合 RFC 4122 v4 规范,可与所有主流数据库、框架、API 兼容。
密码学安全随机
优先使用浏览器原生 crypto.randomUUID API,基于密码学安全随机数生成器(CSPRNG)。
一键生成
无需输入任何内容,点击「生成」按钮立即获得一个新的 UUID v4。
本地生成无上传
所有 UUID 在浏览器内生成,不向服务器发送任何数据。
使用场景
数据库主键生成
在分布式系统中使用 UUID 作为数据库主键,避免自增 ID 在多节点写入时的冲突问题。
API 请求追踪
为每个 API 请求生成唯一 UUID 作为 trace_id,方便在日志系统中追踪请求全链路。
文件上传命名
用户上传文件时,使用 UUID 作为存储文件名,避免同名文件冲突与覆盖。
前端组件 Key
React、Vue 等前端框架渲染动态列表时,使用 UUID 作为 key 确保元素稳定标识。
常见问题
UUID 真的能保证唯一吗?
UUID v4 基于随机数生成,理论碰撞概率约为 1/2^122(约 3 × 10^-37),即使每秒生成 10 亿个 UUID 持续 85 年,碰撞概率也微乎其微。在实际应用中可视为全局唯一。
UUID 适合作为数据库主键吗?
UUID 作为主键可避免分布式写入冲突,但 36 字符长度会增加索引体积与查询开销。建议根据数据库类型选择:PostgreSQL 推荐 UUID 类型,MySQL 可使用 BINARY(16) 存储以节省空间。
UUID v4 与 UUID v1 有什么区别?
UUID v1 基于时间戳与 MAC 地址,可排序但暴露主机信息;UUID v4 完全随机,安全性更高但不可排序。绝大多数现代应用使用 UUID v4。
crypto.randomUUID 安全吗?
安全。crypto.randomUUID 是浏览器提供的密码学安全随机数生成 API,其随机性符合 RFC 4122 v4 要求,可安全用于会话 ID、CSRF Token 等安全敏感场景。