UUID 生成器
UUID v4 · 密码学安全随机
在线UUID生成器
免费在线UUID/GUID生成工具。基于密码学安全随机数生成UUID v4,支持批量生成、大小写切换、多种格式输出。完全本地处理。
密码学安全随机
使用浏览器原生 crypto.getRandomValues() API 生成真随机数。符合RFC 4122标准的UUID v4格式,碰撞概率极低(约2¹²²分之一)。
批量生成
支持一次生成5到100个UUID。可选择大写/小写、标准格式/无横线/花括号等多种输出格式。一键复制全部结果。
完全本地处理
所有UUID在浏览器本地生成,不依赖任何服务器。生成的UUID不会被记录或传输,适合生成敏感系统的标识符。
UUID 版本详解
了解不同版本UUID的特点与适用场景。
UUID v1
基于时间戳+MAC
使用当前时间戳和网卡MAC地址生成。UUID中包含生成时间信息,可按时间排序。缺点是会暴露MAC地址和生成时间,有隐私风险。
UUID v4
完全随机 ★推荐
122位完全随机生成(6位用于版本和变体标识)。不包含任何可识别信息,是最常用的版本。碰撞概率约为2¹²²分之一,实际可忽略不计。
UUID v3/v5
基于命名空间+名称
v3使用MD5、v5使用SHA-1对命名空间和名称进行哈希。相同输入产生相同UUID,适合需要确定性ID的场景。v5安全性优于v3。
UUID v6
可排序时间戳
v1的改进版,重新排列时间戳位使其可按字典序排序。保留了时间信息但改善了数据库索引效率。2022年正式发布。
UUID v7
时间排序+随机 ★新标准
使用Unix毫秒时间戳+随机数。天然按时间排序,非常适合数据库主键。比v4有更好的索引性能,是新项目的推荐选择。
GUID
UUID的微软实现
GUID(全局唯一标识符)是微软对UUID的实现。格式完全相同,通常用花括号包裹显示如 {xxxxxxxx-xxxx-...}。在.NET/COM中广泛使用。
应用场景
数据库主键
替代自增ID作为数据库主键。分布式系统中无需协调即可生成唯一ID,避免ID冲突。
API资源标识
RESTful API中用UUID标识资源。不可预测的ID防止用户遍历资源,增强安全性。
会话与令牌
生成会话ID、CSRF Token、一次性令牌等安全标识。随机性确保不可被猜测。
分布式系统
微服务之间的消息ID、事件ID、链路追踪ID。无中心节点即可全局唯一。
UUID 专业知识
UUID 碰撞概率
UUID v4有122位随机空间,需要生成约2.71×10¹⁸个UUID才有50%概率出现碰撞。按每秒生成10亿个计算,需要约85年才可能碰撞。实际使用中碰撞风险可忽略不计。
UUID 格式结构
标准格式为 8-4-4-4-12 共32个十六进制字符加4个横线。第13位字符表示版本(v4为"4"),第17位字符高两位为"10"表示变体。总共128位(16字节)。
UUID vs 自增ID
UUID优势:分布式安全、不泄露业务信息、不可预测。劣势:占用空间大(16字节vs4/8字节)、无序导致数据库B+树索引效率较低。UUID v7通过时间排序改善了索引问题。
UUID vs Snowflake
Snowflake ID是Twitter设计的64位分布式ID。优势是有序、紧凑。但需要机器ID分配机制。UUID无依赖更简单,Snowflake适合高性能场景。新标准UUID v7结合了两者优点。
常见问题
Q.UUID会重复吗?
UUID v4有122位随机空间(约5.3×10³⁶种可能),碰撞概率极低。按每秒生成10亿个UUID计算,约85年才有50%概率碰撞。实际使用中完全可以认为不会重复。
Q.UUID和GUID有什么区别?
没有本质区别。GUID(全局唯一标识符)是微软对UUID的称呼。格式完全相同,只是GUID通常用花括号包裹显示。本工具支持花括号格式输出。
Q.UUID适合做数据库主键吗?
可以,但有注意事项。UUID v4完全随机,在B+树索引中会导致频繁的页分裂。如果在意索引性能,建议使用UUID v7(时间排序)或将UUID存储为二进制格式而非字符串。
Q.在线生成UUID安全吗?
完全安全。本工具使用浏览器原生 crypto.getRandomValues() API生成密码学安全随机数,UUID在本地生成,不会发送到任何服务器。即使断网也能正常使用。