首页文本与开发 › UUID 在线生成器

UUID 在线生成器

一次生成 1–100 个符合 RFC 4122 的 UUID v4,可选大写或去掉连字符,使用加密级随机数。

   

UUID 是什么,各版本有什么区别

UUID(通用唯一识别码,微软体系称 GUID)是一个 128 位的标识符,通常写成 8-4-4-4-12 共 32 个十六进制字符的形式,例如 550e8400-e29b-41d4-a716-446655440000。第三组的第一个字符表示版本,第四组的第一个字符(8、9、a、b)表示变体。它不需要中心机构分配就能在全球范围内几乎不重复,常用作数据库主键、订单号、文件名、会话 ID。

v1 基于时间戳和网卡 MAC 地址生成,有序但会泄露生成时间和机器信息;v3/v5 由“命名空间 + 名字”做 MD5/SHA-1 散列得到,同样的输入永远得到同样的 UUID,适合把 URL、域名等映射成固定 ID;v4 除版本和变体位外全部为随机数,共 122 位随机,是目前最常用的版本;v7(RFC 9562,2024 年)前 48 位是毫秒时间戳,其余为随机数,既唯一又按时间大致有序,作为数据库主键时索引性能比 v4 好得多,新项目值得优先考虑。

本工具的实现与注意事项

本页生成的是 v4 版本:优先调用浏览器原生的 crypto.randomUUID(),不支持时用 crypto.getRandomValues 取 16 个随机字节,再把第 7 个字节高 4 位设为 0100(版本 4)、第 9 个字节高 2 位设为 10(RFC 变体),完全符合 RFC 4122。随机 UUID 的重复概率极低:即使每秒生成十亿个,也要连续生成约 85 年才有 50% 的概率出现一次重复,实践中可视为唯一。

格式上,UUID 不区分大小写,规范推荐输出小写;去掉连字符后为 32 位字符串,常用于文件名或数据库 char(32) 字段;带大括号的写法常见于 Windows 注册表和 .NET。存入 MySQL 时建议用 BINARY(16) 而非 CHAR(36) 以节省空间,并注意 v4 作为 InnoDB 主键会导致随机插入、页分裂,大表可改用 v7 或雪花 ID。

常见问题

UUID 会重复吗?

v4 有 122 位随机数,重复概率约为 2 的 -122 次方量级。以每秒 10 亿个的速度生成 85 年,出现一次重复的概率才到 50%,实际可视为不会重复。

UUID 和 GUID 有什么区别?

没有本质区别。GUID 是微软对 UUID 的叫法,格式和生成算法相同,只是 Windows 生态习惯用大写加大括号表示。

为什么数据库主键不推荐 v4?

v4 完全随机,导致 B+ 树索引随机插入、缓存命中率低。数据量大时建议用 v7(时间有序)或自增 ID、雪花 ID。

生成的 UUID 安全吗?

它使用浏览器加密级随机源,不可预测,可用作会话令牌的一部分。但 UUID 本身不是密码,不要仅凭它做身份验证。