要点
- 01一次生成一个UUID或最多100个——非常适合测试夹具、种子数据和配置。
- 02UUID v4完全随机;UUID v7嵌入毫秒时间戳用于数据库中的时间顺序排序。
- 03每个UUID都使用浏览器的Web Crypto API生成——没有弱Math.random()回退。
- 04切换小写/大写、移除破折号或添加大括号以匹配你的确切环境。
什么是UUID以及为什么它们很重要
UUID(通用唯一标识符),有时称为GUID,是一个128位标识符,旨在在没有任何中央协调的情况下全球唯一。数据库、API、事件系统和分布式应用程序使用UUID为记录、对象和事件分配ID,而无需共享的自增计数器或往返数据库序列。
有多个UUID版本。版本4完全随机——最常见的通用ID选择。版本7是更新的标准,在前几个字节中嵌入毫秒精度的时间戳,以便顺序生成的ID按时间顺序排序。该属性大大改善了B树数据库索引中的插入性能,其中随机ID导致昂贵的页面分裂。
如何生成UUID
- 01
选择v4或v7
选择UUID v4以获得完全随机标识符,或选择UUID v7(如果你需要数据库主键的时间顺序标识符)。
- 02
设置数量
拖动滑块或输入数字以在单个批次中生成1到100个UUID。
- 03
自定义格式
切换小写或大写,启用或禁用破折号(xxxxxxxx-xxxx-...),并可选地用大括号({...})包装每个UUID,以匹配你的语言或框架期望的格式。
- 04
复制或下载
点击全部复制以将整个列表放在剪贴板上,或下载批次为.txt文件,用于测试夹具或种子脚本。
UUID格式选项一览
不同的生态系统期望相同128位值的略有不同的表示。
- 01带破折号的标准:550e8400-e29b-41d4-a716-446655440000(RFC 4122规范形式)。
- 02无破折号:550e8400e29b41d4a716446655440000(一些数据库和Redis密钥中常见)。
- 03大写:550E8400-E29B-41D4-A716-446655440000(用于某些Microsoft和Java环境)。
- 04大括号:{550e8400-e29b-41d4-a716-446655440000}(Microsoft GUID格式,用于.NET和COM)。
- 05所有格式都代表相同的128位值——选择你的系统期望的那个。
密码学安全且完全本地
每个UUID都使用crypto.randomUUID(v4)或crypto.getRandomValues(v7)生成——内置于每个现代浏览器的Web Crypto API。没有Math.random()、没有弱种子和没有服务器。生成器在页面加载后离线工作。
没有东西被传输或存储。关闭标签页,UUID消失,除非你保存了它们。Handytool不记录生成的值或要求账户。
UUID生成器常见问题
UUID是什么?
UUID(通用唯一标识符)是一个128位值,旨在在所有系统中唯一,不需要中央协调。UUID是在分布式系统中为数据库记录、API资源和事件分配ID的标准方式。
我应该使用UUID v4还是UUID v7?
当不需要排序时,使用v4以获得完全随机ID。将v7用作数据库主键——嵌入的时间戳使插入顺序,在规模上显著改善B树索引性能。
UUID碰撞有多可能?
实际上是不可能的。随机UUID v4有2^122个可能的值。你需要生成大约2.7百万亿个UUID才能有10亿分之一的碰撞概率。
生成的UUID是否密码学安全?
是的。生成器使用浏览器的Web Crypto API(crypto.randomUUID或crypto.getRandomValues),而不是较弱的Math.random()。UUID v4可安全用作会话ID或短期令牌。
我可以将UUID v7用于安全令牌吗?
需要谨慎。UUID v7嵌入创建时间戳,它透露何时生成。对于长期或敏感的安全令牌,首选v4或不泄露时间信息的专用令牌格式。
UUID是否被发送到服务器?
不是。每个UUID都使用浏览器的加密API本地生成。没有东西被上传、记录或存储。