为开发者和系统设计批量生成多种版本(V1-V7)的唯一标识符UUID/GUID。
完全随机生成,最常用的版本
当您需要为数据库记录、API接口、分布式系统或文件创建全局唯一的标识符时,手动构造既容易冲突又不符合标准。UUID(通用唯一标识符)是一种由128位数字组成的字符串,用于在分布式系统中无需中央协调即可生成唯一ID。本工具支持批量生成从V1到V7共七种RFC标准版本的UUID,每种版本采用不同的生成算法,例如基于时间的V1、基于随机数的V4,或基于命名空间和名称哈希的V3/V5。
问:UUID版本V4和V1有什么区别?
V4基于随机数生成,完全随机,碰撞概率极低,适用于大多数无需时间顺序的场景。V1基于时间戳、MAC地址和序列号生成,能保证时间上的单调递增,适合需要按时间排序的日志或记录,但可能泄露生成主机信息。
问:什么是命名空间(Namespace)?它有什么用?
命名空间本身也是一个UUID,用于在生成V3(MD5)或V5(SHA-1)版本的UUID时,与一个“名称”(如URL、域名)共同进行哈希运算,从而为同一个名称在不同命名空间下生成不同的、但确定性(可重现)的UUID。例如,用DNS命名空间为“example.com”生成的V5 UUID,在任何地方、任何时间计算都是同一个值。
使用V3或V5版本时,必须提供有效的命名空间UUID和名称字符串。自定义命名空间必须为标准UUID格式(8-4-4-4-12的十六进制数字)。V1/V6/V7版本可选填时间戳、节点ID和时钟序列,若留空则使用当前系统时间与默认值。请注意,V3版本基于MD5哈希算法,其抗碰撞性弱于SHA-1,在对安全性要求极高的场景中,建议优先使用V5版本。
在选择UUID版本时,需权衡唯一性、可读性、排序需求和安全性。对于需要全局随机且无排序要求的场景(如会话ID、临时令牌),V4是最通用选择。若需要为同一资源(如用户邮箱)生成永久且可验证的唯一ID,应使用V5版本,并约定好命名空间(如使用公司特定的UUID)。一个典型示例是:使用DNS命名空间(6ba7b810-9dad-11d1-80b4-00c04fd430c8)和名称“user@example.com”,通过V5算法生成的UUID始终是“5df41881-3aed-3515-88a7-2f4a814cf09e”。批量生成用于测试数据时,注意单次上限为100个,如需更多可多次操作。