🆔 UUID生成器
UUID v4 · 批量生成 · 多种格式
UUID v4 · 批量生成 · 多种格式
UUID(通用唯一识别码)是128位标识符,格式如550e8400-e29b-41d4-a716-446655440000。v4版本用随机数生成,碰撞概率极低(约2.71×10^18个UUID才有50%碰撞概率)。
v4使用crypto安全随机源生成,适合会话ID、文件名、数据库主键。但不适合加密密钥(用crypto.getRandomValues生成256位随机数)。
v4有122位随机比特,理论上约需生成2.71×10^18个UUID才有50%概率出现一次碰撞。实际场景下碰撞概率几乎可以忽略,所以广泛用作唯一标识。
常见有v1(基于时间戳+MAC)、v3/v5(基于命名空间+哈希)、v4(纯随机)。本工具生成v4,最常用、无需记录时间戳和MAC,隐私性最好。v1因含MAC地址有隐私风险。
两种表示的UUID完全相同,只是格式不同。标准格式带连字符(e.g. 550e8400-e29b-41d4-a716-446655440000),去掉连字符成32位十六进制串。有些系统/数据库存储要求不带连字符。
可以,优点是全局唯一、适合分布式系统。缺点是相比自增ID占空间更大、且乱序会影响索引性能(可用有序UUID缓解)。小项目用自增ID即可,分布式用UUID。
基本是同一回事。GUID是微软对UUID的称呼(Global Unique Identifier),实现上略有差异但概念相同。把GUID当UUID用即可。
每次生成都独立调用随机源,即使一次生成100个,互相重复的概率也近乎为零。若要做严格去重,可套用"去重"逻辑,但通常没必要。
UUID是128位(16字节)标识符。v4版本中,第7字节的高4位固定为0100(版本4),第9字节的高2位固定为10(variant),其余122位都是随机。
| 版本 | 生成方式 | 特点 |
|---|---|---|
| v1 | 时间戳+MAC/MAC随机 | 含时间信息,可预测 |
| v3 | MD5哈希 | 命名空间确定性 |
| v4 | 纯随机 | 最常用、隐私好 |
| v5 | SHA-1哈希 | 命名空间确定性 |
v4有约122位随机,随机空间超大。碰撞概率随生成数量平方增长,但到10^18数量级才到50%,现实中不会达到。
| 格式 | 示例 |
|---|---|
| 标准带连字符 | 550e8400-e29b-41d4-a716-446655440000 |
| 不带连字符 | 550e8400e29b41d4a716446655440000 |
| 大写 | 550E8400-E29B-41D4-A716-446655440000 |
| 带花括号 | {550e8400-e29b-41d4-a716-446655440000} |
| 对比项 | UUID | 自增ID |
|---|---|---|
| 全局唯一 | 是 | 否(单库唯一) |
| 分布式友好 | 高 | 低 |
| 存储空间 | 32字符 | 小 |
| 可预测 | 否 | 是 |
| 索引性能 | 略差 | 优 |
1. 设置生成数量。
2. 选择格式(带/不带连字符)。
3. 点击生成。
4. 复制结果。